Require approval from all reviewers
Proposal
We currently have an approval rule saying that each MR must be approved by at least one member of our group. (We also have "Prevent approval by author" enabled.)
Sometimes we want to send an MR to more than one team member for review. For example, UI changes often go to another developer for code review, and to a designer to check that the implementation matches what was designed. In these cases, we set multiple reviewers.
Every now and then, an MR gets merged once the first approval comes in, and before the second reviewer has a chance to finish their review.
I want a way to configure a project or group so that merges "require an approval from every reviewer"
I don't think CODEOWNERS does what we want either. CODEOWNERS requires that there is a strong correlation between the file system layout and who should approve what.
That isn't always the case. Many/most files in our front end may affect the UI, but not all changes to those files actually do affect the UI. We don't want to bog down UI by having them review every change that touches any of those files.
Example: Creating an MR and thinking "I remember Sam had some experience with X, so I'd like them to take a look at the part of this MR that deals with X, even though Robin is the main reviewer, as they're most familiar with this code", adding Sam as a reviewer, and then merging right after Robin approves, because the need for Sam's input slipped the author's mind by that point.
In general, we trust people on our team to pick the right set of reviewers, but it would be nice if GitLab could confirm that everyone listed as a reviewer actually approved the change, much like it already requires that all threads be resolved, before a merge is allowed.
An example implementation of this could look like the following as part of approval rules that could set at the local or global level:
