GitLab Group Migration - MVC
The Problem
Migrating Groups and Projects is available in the GitLab UI and through the API. It involves exporting and importing individual data files for each group and project. There is currently no way to migrate members.
In order to migrate an entire group with projects, the user has to coordinate multiple API calls and do a lot of manual data manipulation. This user experience creates a lot of friction for the data migration between two GitLab instances.
Additionally, the current solution is not scalable, nor resilient and it provides little feedback on any failures.
See the full discussion of the problem and the proposed solution in this epic.
Goal
The goal of this issue is to make the first step toward the GitLab Group Migration - Full Solution feature:
A one-stop-shop for migrating all or parts of your GitLab instance. Select a group or just a project and start a one-click migration. This solution would allow migration of group, project, and user data. The user would not have to download or upload files.
Proposed MVC
Create a very simple (basic epic fields only) group migration tool that is based on the API-only approach. This solution would be initiated on the destination server, using the current UX metaphor to select this new type of import.
The following functionality would be in scope for the MVC:
- Initiate Group migration
- Provide credentials to the source instance of GitLab (URL and token)
- Show list of available top-level groups
- Allow selection one top-level group to be migrated (no check is done to prevent re-import)
- Create the group (and all the associated subgroups) in the destination instance
- Migrate only the epics for that group tree (consisting only of the basic epic fields only - at the minimum epic titles)
Out of scope for MVC
These features were discussed for MVC, but are currently deemed out of scope (issues to be created):
- Ability to authenticate with the other instance of GitLab
- Ability to select multiple groups for migration
- Search/filter for the group list
- Status column in the group list
Future iterations
Future iterations would add more objects, more depth to each object, and more relationships.
Finalized prototypes
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.