Design: Group level MR approval rules for `All Protected Branches`
Proposal
Design issue for MVC: Allow group-level MR approval rules for 'A... (&11451)
Introducing the ability to add group-level merge request approval rules. The design at the group level is derived from a blend of the current merge request approval flow and the branch rule editing &8075 (closed).
- Empty by default
- Add approval rule has two options:
- Minimum required approval
- Once this rule is added then it is hidden from the menu because it can only be added once.
- Custom approval rule
- Minimum required approval
- Modal of current merge request approval rule is used for adding a custom merge approval rule.
- Target branch is defaulted to "All protected branches"
- Dropdown is disabled to prevent user editing
- Show toast when an approval is added/updated/deleted
- Project level shows a popover on the lock icon for inherited rules
No designs are shown here for the delete flow because it should flow the current flow for deleting a merge request approval rule. Only difference is the additional toast message "Approval rule deleted" being displayed after deletion.
| Dropdown add options | Group level merge request rules | Project level inheritance |
|---|---|---|
![]() |
![]() |
![]() |
Considerations
Minimum required approvals added by default
Considered displaying zero for minimum required approvals. This makes the dropdown similar because it is only a button "Add approval rule" and we don't need to introduce a term called "custom rule". If we go with this approach if the number of required approvers is zero then this should not be displayed at project level. This might cause unnecessary confusion when displaying zero value rule at the project level especially if the group did not intentionally add it and it was there by default.
| Minimum required approvals default | Proposed: Dropdown approach |
|---|---|
![]() |
![]() |
Drawer for add/update approval rule
We could use this issue as a way to build out the drawer experience for editing approval rule as this is the direction of [MVC] Branch Rules Editing (&8075 - closed). Only reason this was not made part of this issue proposal was to reduce scope.
| Drawer editing | Proposed: Modal editing |
|---|---|
![]() |
![]() |
At project level, minimum required approvers is a minimum value of input
Rather than a readonly field as most inherited settings is displayed. The minimum required approvers value is for a number input. It is possible that a child project of a group would want to have a higher number of required approvers than the minimum required approvers that is set at a group level. So the number input can't be lower than the number set up at a group level minimum value.
| Minimum input | Proposed: Readonly value |
|---|---|
![]() |
![]() |








