Group-level merge requests
- 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.
Design
- Reuse existing GitLab functionality as much as possible.
- Design the feature so you essentially just have a wrapper for multiple merge requests.
- For example, when you specify the source branches and target branches in the multiple projects, and create the group-level merge request, behind the scenes, GitLab is just creating multiple project merge requests.
- We need a dedicated view/UI to combine all the merge requests' code diffs together so a developer can review all the changes together in one UI.
- When the user clicks merge, behind the scenes, it is just merging all the constituent merge requests.
- We need functionality and UI to handle edge cases. But the strategy is to reuse components.