Multiple blocking approver groups
Some organizations require all changes to be reviewed and approved by specific groups of people before a change can be merged (e.g. every change must be approved by at least: 1 staff engineer, 1 product manager, 1 production engineer). GitLab only supports selecting users (and groups) who can approve the change and a minimum number of approvals required. In this structure it is impossible to enforce the sign off structure in the example above.
This feature is supported by Phabricator by being able to mark a reviewer as "blocking" and is also supported by BitBucket. GitLab should support blocking approver groups so that organizations can be sure the right people review each change.
Original descriptionWe currently use phabricator for our code reviews, and one of the more useful features it has is the ability to mark a reviewer as "blocking", meaning the change is not ready to be released until that specific person approves it. This is extremely important and useful to us, because our release workflow for one of our products requires changes to be signed off on by at least one person from two or more groups. Gitlab supports approval groups now, but no way to add multiple groups to a review; nor does it have the ability to mark a reviewer as blocking. The proposal to add blocking comments kinda would work for this, but honestly, it's not an ideal solution.
Currently GitLab allows an overall approval count to be set. (
At least m approvals overall required)
Extend the approval model to allow:
individual approvals to be required (
Approval from @user required)
group approvals to be required (
At least n approvals from @group members required)
Default approval requirements can be set on the project, and additional requirements can be added to each merge request.
Challenges: this makes approval requirements more complex to calculate, particularly for a selection of merge requests (e.g. showing
X of Y approvals in the merge request list).