paritytech / pr-custom-review

GitHub Action for complex pull request approval cases that are not currently supported by the Branch protection feature in GitHub.
MIT License
8 stars 4 forks source link

Options to assign Fellows to PRs automatically #116

Closed Bullrich closed 1 year ago

Bullrich commented 1 year ago

The request from paritytech/opstooling#245 request to get the fellows from on-chain data and assign them to the PR based on the ranking.

This is achievable, but how we do it will greatly impact (or spam) the end users

The CAPI team has provided us the solution to obtain the members of the fellowship and their ranking (with metadata included)

(Thanks, @harrysolovay, for that!)

We are still blocked until the fellowship updates the data, so it includes their GitHub account.

We have two options

Assign the fellowship members per user

When a PR is created, the system will fetch all the users from on-chain data and assign them to the PR if they are required.

This will be quite noisy because, if we need a review from, let’s say, rank 3 or above, the system will individually assign all the users who fulfill this requirement. That means that 15 individual users will be assigned to the PR.

We could do some kind of round-robin assignment, but we don’t have any way of knowing or circumvent in the case that a user is OOF or unavailable.

Pros

This will help limit individual assignments (and spam) and will look cleaner in the GUI, but could also, theoretically, be circumvented by admins of the organization.

Pros


Based on the sensibility of this change, I believe that @opstooling should not be the team to decide this change, as it won’t affect us directly, compared to the members of the fellowship.

rzadp commented 1 year ago

I'd like to clarify one thing.

You say that assigning (all) users Will spam the users a lot, and assigning teams Produces less spam. But if the users are in those teams, they will get notification emails. So the amount of spam / notification emails, will be exactly the same in those two options?

If I get that right, then the only downside of assigning all individual users would be visual clutter in the UI, correct?

mutantcornholio commented 1 year ago

If I get that right, then the only downside of assigning all individual users would be visual clutter in the UI, correct?

What happens when sufficient reviews have been submitted? Should pr-custom-review unassign all other users that were assigned?

Bullrich commented 1 year ago

If I get that right, then the only downside of assigning all individual users would be visual clutter in the UI, correct?

Yes, as we would not be able to see the ranks unless we check the logs.

There is also the trouble of either assigning everyone or only a few.

I don't know if there is a limit with how many users can be assigned.

I'm always against cluttering a process with information because it makes us less prone to detect error.

If I get that right, then the only downside of assigning all individual users would be visual clutter in the UI, correct?

What happens when sufficient reviews have been submitted? Should pr-custom-review unassign all other users that were assigned?

That is a very good question! What should we do there?

Bullrich commented 1 year ago

Notes from the meeting with the @paritytech/opstooling team:

Not assign reviewers

Trust CAPI

Having an admin assign team members

CI Files

Mix Teams and Fellows

bkchr commented 1 year ago

As I already have commented on the initial issue: https://github.com/paritytech/opstooling/issues/245#issuecomment-1604151329

We don't need to assign any one. At least not right now. This is not a requirement.

mutantcornholio commented 1 year ago

Well, let's close the issue, as we aren't doing it