馃帹 Design: Transfer groups to organizations
Problem
Many "organizations" GitLab included have multiple top-level groups. Since they have independent billing and potentially different admins, combing them together in a single organization could be challenging. There are 2 paths to correct this:
- Find a way to do this programmatically (likely not possible because or separate billing and admins)
- Build a mechanism to move or associate top-level groups into a single organization.
MVC Use Cases to solve for
- Users have an existing top-level group and want to create an organization on top of it, ideally in as few steps as possible.
- A more complex case will be this: An existing admin has more than 1 top-level group on SaaS to manage. With the introduction of the organization they see an opportunity to bring these groups together under one umbrella. The workflow could look as such that the organization is created above one of the existing top-level groups, and the other group is then moved into the organization.
Future use case (non-MVC)
- Potentially very complex cases, but possibly rare: Mergers and acquisitions. Two companies were operating independently in separate organizations. A merger happens and as a result they would like to bring the organizations together. Two different admins need to coordinate the process. Because we want to avoid having to create another umbrella on top of the organization, the only option we have left is to move all the top-level groups from one organization to the other.
Design proposal
Build on the existing "transfer groups" form in Settings > General such that:
- Existing top-level groups have an additional dropdown option in the form, to transfer the group to an organization. This additional dropdown will only be visible to group owners.
- The group owners will be able to choose to transfer their group either to another group or to another organization, but not both.
- The group owners will also have the option of creating a new organization to transfer their group into. As part of this process, they will also be able to add additional top-level groups to their organization, too.
- The new organization is effectively a shell on top of the existing groups, at least initially. All groups will retain their existing settings/members. The original group owner will become the new organization owner.
- Before the transfer process starts, we'll need to identify any breaking dependencies and warn the user to see if they want to continue. An example warning is shown below. Another warning could be:
You are trying to move "Fruits" but it contains several links to issues in "Vegetables". If you move this group without moving "Vegetables" these links will be lost.
Here is a prototype of how this might look.
Screen details
Note: we may need an additional warning screen for forks if it's determined that they'll break. That discussion is happening in POC: Handle forks on Group transfer to Organiza... (#419026). If it's determined they will break, we will introduce an additional warning message, following the pattern of the warning message shown above.
Edited by Amelia Bauerly






