Allow multiple Merge Request reviewers, a default Reviewer list per project and a min Approvals, max Rejections to allow merge
Description
Currently we can only assign a single reviewer to an Merge Request (MR) and we have to know who has time to do the review before the MR can be created.
How we work: When an MR is raised in a project, there are multiple team members able to perform reviews for that repository - we expect that all of these reviewers are made aware of MRs when created or updated (including comments, approvals, rejections, new commits).
- An MR can't be merged if there are outstanding questions or the MR has been declined. (not mergeable)
- It can be merged if two or more reviewers have approved the MR. (mergeable)
- A mergeable MR can be merged by a reviewer or the submitter.
This is somewhat achievable on Bitbucket but currently we do almost all of this management manually in GitLab CE and other streams of communication.
Proposal
- Allow a 'Reviewer' list of project members for each Repository group or Repository.
- Specify by Repository Group or Repository, a minimum number of Approvals, A maximum number of Rejections to allow merging.
- When an MR is raised, a list of reviewers is autofilled from the Repository Group or Repository list (nearest wins)
- The submitter may add or remove from this automatically filled list of reviewers for the MR (A flag on the project could control whether this is editable by the submitter, only appendable or fixed).
- Creation and updates of an MR are notified to all reviewers (and submitter)
- When the MR becomes 'mergeable' (or stops being mergeable due to rejections) the Merge option becomes available.
Documentation blurb
(Write the start of the documentation of this feature here, include:
- Why should someone use it; what's the underlying problem.
- Faster MR creation as you don't need to find and confirm the availability of a reviewer first.
- Allows reviewers as a 'floating resource' in the team rather than an individual definitely assigned at MR creation time.
- When you need to set a minimum level of visibility (multiple reviews) in a project.
- What is the solution.
- List the Reviewers as a known resource pool in the project (repository or group).
- Have multiple Reviewers automatically added (but optionally editable) to a new MR.
- Notify review activity to this list as well as the Submitter.
- Set and enforce thresholds for approved reviews before allowing merge of an MR.