If you are using different CI/CD tools and are considering migrating over to GitLab, you may be wondering about
the difficulty of the migration process. Migration is usually a concern for DevSecOps teams when considering a new solution.
This is due to the fact that migrating may involve heavy lifting. However, migrating to the GitLab AI-powered DevSecOps Platform can be extremely simple and I will show you how step by step.
In this blog post, we will go over how to migrate from GitHub to GitLab using our project import functionality. Manually
migrating GitHub Actions to GitLab pipelines will be covered as well. I have also created a video going over the migration process for those who prefer that format:
What data can be migrated from GitHub to GitLab?
GitLab's built-in importer allows for GitHub projects to be automatically migrated into GitLab. The built-in importer
is accessed directly from GitLab's project creation UI. From the UI, you can select what data you wish to migrate to GitLab.
The data that can be migrated includes the following:
- Repository description
- Git repository data
- Branch protection rules
- Collaborators (members)
- Issues
- Pull requests
- Wiki pages
- Milestones
- Labels
- Release notes content
- Release notes attachments
- Comment attachments
- Issue description attachments
- Pull request description attachments
- Pull request review comments
- Regular issue and pull request comments
- Git Large File Storage (LFS) objects
- Pull request reviews
- Pull request assigned reviewers
- Pull request “merged by” information
- Pull request comments replies in discussions
- Pull request review comments suggestions
- Issue events and pull requests events
GitHub and GitLab have different naming conventions and concepts, so a mapping must be performed during the migration.
For example, when collaborators/members are migrated, roles from GitHub are mapped to the appropriate GitLab roles as follows:
GitHub role | GitLab role |
---|