Tiered merge request approvals
Problem to solve
In larger organizations that require many approvals or have policies around final review and sign off, making sure the right people review in the merge request in the right order relies on norms and process outside of GitLab. I want a way to represent these in GitLab for efficiency and policy reasons.
Right now I have 10 developers from my company (3 senior and 7 junior developers) and 10 developers from vendor company (4 senior and 6 junior developers ) working on a same project. I'm using approvals to force code quality checking, with first line checking being on vendor side, and after that on company side. I would like to set merge approvals in such way that for request to be accepted, at least one of company senior developers and one of vendor senior developers must accept request. Right now, I can only set that in three ways, and it's not good enough:
- Set approvals required on 2 and add senior developers from my company and vendor company to approvers, but then two of vendor developers can accept merge and code will pass without senior developers from my company checking the code.
- Set approvals on 5 and add senior developers from my company and vendor company to approvers, so at least one senior developer from company must accept changes, but then I'm risking project delays if five senior developers are not accessible at the moment.
- Give approvals only to my company senior developers, but then I'm losing first line code checking that I would like to force to vendors.
Allow an approval chain can be configured so that approvals must happen in a certain order.