Create a pre-migration check report
Problem to solve
When migrating large groups from one instance of GitLab to another, there can be known issues with data compatibility that can cause import failure or partial success. The user only finds out about any of these once they initiate the migration, which causes the user to waste time and not have confidence in the migration process.
Proposed solution
Create a pre-migration check (report) that runs all the known verifications that we normally run during import and report to the user:
- List with counts of each object that will be migrated.
- Any data that will not be imported due to missing required data.
- Any data that will be partially imported.
This report would be available for each group available for migration. As an initial iteration, we should provide a link to the report in the group list (see illustration below).
Check ideas
- Source repo size larger than allowed on destination (max repo size).
- User is permitted to create all the projects from the source on the destination (i.e. license limiting number of projects the user is allowed to create). - #293949
- User's license doesn't allow for epics in the destination, but there are epics in the source instance.
Illustrations
(please ignore the reference to GitHub projects in the screenshot above, this image is for illustration only)
Example report
Pre-migration check for my-group:
- Group my-group will be imported, along with 32 subgroups.
- 12 groups are private and their avatars will not be migrated.
- 83 epics will be imported.
- 216 projects will be imported.
- 120 issues will be imported.
- 10 milestones will be imported.
- 3450 pull requests will be imported.
- 12 pull requests no longer have valid corresponding commits and will not be imported.
- 3 users do not exist in the destination and will not be mapped:
- [email protected], [email protected], [email protected]
Future considerations
As a future iteration, we could run the pre-check automatically and display the result summary in the list (provided no/acceptable performance impact).