Approval rules based on labels
Proposal
Allow approvers to be determined by a merge request's labels.
For example, a merge request with UX, frontend, and database labels would require an approval from each of those groups.
Further details
We already have the ability to set up approval rules based on the files that were changed in a merge request using CODEOWNERS.
In some cases, determining approvals based on the files that were changed isn't enough. For example, at GitLab, every user-facing change needs to be reviewed by UX. However, it's not possible to determine whether or not a change is user-facing simply by looking at the files that were changed. A change to a Vue file might change the interface (which would require UX approval), or it might be internal refactor that has no effect on the interface (which would not require UX approval).
In the example above, it would be more accurate to determine the approvers based on labels. A merge request with the UX label should include a UX approver.
Intended users
Persona: Software developer Persona: Product Designer
What does success look like, and how can we measure that?
We could use this feature internally to ensure that our merge requests always follow the appropriate approval process.