Organization rollout - Migrate GitLab into separate Organization
This issue captures the steps necessary for a successful migration of GitLab - the company - into its own Organization away from the default Organization. This would include migrating all top-level groups currently managed by GitLab the company into a separate GitLab Organization.
Phases and steps
See also Discussion: Rollout for Organizations (#402771 - closed).
TBD
Impact on contributor experience
Organizations are by design isolated. This means:
- Users who want to contribute to public projects of an Organization have to become members of that project.
- Groups and projects cannot be discovered via a global Explore. The existing Explore functionality will only work within the constraints of the Organization.
Risks
This change affects both the public groups and projects hosted by GitLab the company, but also other open source projects. As long as they are assigned to the default Organization, they will remain discoverable via the Explore in the default Organization. Once these groups and projects move into a separate Organization, they will only be discoverable by knowing the URL. Reduced discoverability might lead to a reduction in community contributions for GitLab the company and might make collaboration on open source projects more difficult.
Options to mitigate
- Global Explore
- We add a Global Explore to the product that enables users to search across Organizations. This might be costly and could raise demand for more features spanning across Organizations, which we would like to avoid. It also poses the navigational challenge to host two different Explore options.
- Community Organization
- We introduce a community Organization to host all open source groups and projects.
- Disadvantages are that Organizations might not want to host their open source projects in an Organization external to their own. They would need to manage their groups and projects across two different Organizations.
- Open questions:
- Who would manage the Community Organization?
- Would ownership of groups and projects be clear?
- Community Page
- We build a community page, that is not pulling data, but is its own database and really just links to public projects.
- The community page becomes part of the product.
- In the long-term, we could introduce a setting for public groups and projects to automatically be published on the community page. This would leave control of whether or not someone would like to appear there in the hands of the user. The advantage would be that self-managed public groups and projects could also appear there.
- This page can already be built independent of the Organization MVC.