Group-level merge requests (Super Merge)
- Many organizations want a way to do development and code review across multiple repositories.
- So we need a way to manage a "request" to merge code across multiple projects.
- So we want a wrapper object that is essentially multiple merge requests across multiple projects.
- We would call this a "group-level merge request".
- When you create the merge request, you select multiple projects inside a group.
- For each project in that group, you select a source branch and a target branch.
- You do code review on the group-level merge request itself.
- When you merge the group-level merge request, you merge all the constituent project merge requests itself.
- Reuse existing GitLab functionality as much as possible.
- Design the feature so you essentially just have a wrapper for multiple project merge requests.
- When the user clicks merge, behind the scenes, it is just merging all the constituent project merge requests.
- If any of the behind-the-scenes project merge requests fail, the entire group-level merge request fails. It is transactional. So behind the scenes, if one of the merge requests are merged, it is rolled back.
- The behind-the-scenes individual project merge requests are not visible to the user.