Published on: July 31, 2025
4 min read
Learn how to migrate GitLab groups and projects efficiently between GitLab instances with performant and secure migration by direct transfer.
Migrating GitLab groups and projects by direct transfer is now generally available from GitLab 18.3. This brings an easy-to-use and automated way of migrating GitLab resources between GitLab instances to an even broader audience.
Using direct transfer enables you to easily create a copy of chosen GitLab resources on the same or another GitLab instance. You can use either the UI or API. The UI is intuitive and straightforward, while the API gives you additional flexibility in terms of choosing resources to be copied.
Migrating by direct transfer is a major improvement from migrating groups and projects using file exports because of the following:
Imported
badge on items in the GitLab UI.We’ve come a long way since GitLab 14.3 when we started supporting the direct migration of the group resources. In GitLab 15.8, we extended this functionality to projects as a beta. Since then, we have worked to improve the efficiency and reliability of importing, especially for large projects. We thoroughly reviewed the feature from a security and instance stability standpoint.
To give an example of the sizes of the groups and projects we've tested with, and their import duration, we've seen successful imports of:
On GitLab.com, migrating by direct transfer is enabled by default. On GitLab Self-Managed and on GitLab Dedicated, an administrator must enable the feature in application settings.
Migrating by direct transfer requires network connection between instances or GitLab.com. Therefore, customers that use air-gapped networks with no connectivity between their GitLab instances still have to use file exports to copy their GitLab data. They will be able to use migrating groups and projects by direct transfer after we extend this solution to also support offline instances.
Before you attempt a migration, review documentation, including prerequisites, group items, and project items that are migrated. Some items are excluded from migration or not yet supported.
We recommend migrating between versions that are as recent as possible. Update the source and destination instances to take advantage of all improvements and bug fixes we’ve added over time.
Familiarize yourself with user contribution and membership mapping process so you know what to expect after migration completes and what are the next steps for you to take.
Depending on where you’re migrating to, GitLab.com, a self-managed instance, or Dedicated, you can employ various strategies to reduce the migration duration.
You can view all groups and projects migrated by you by direct transfer listed on the group import history page. For each group and project, you can view statistics for imported items and dig down into details in case some items were not imported. Alternatively, you can use API endpoints to do the same.
In cases where most of your projects completed successfully but one or two end up missing some relations, like merge requests or issues, we recommend that you try re-importing those projects by using the API.
We are excited to bring migration by direct transfer to general availability and hope you are too! We want to hear from you. What's the most important missing piece for you? What else can we improve? Let us know in the migration by direct transfer feedback issue and we'll keep iterating!