Import groups from another instance of GitLab

Version history
cautionThis feature is under construction, and migrates only some of the group data. Refer to the following information for the list of what’s included in the migration.

Using GitLab Group Migration, you can migrate existing top-level groups from or a self-managed instance. Groups can be migrated to a target instance, as a top-level group, or as a subgroup of any existing top-level group.

The following resources are migrated to the target instance:

Any other items are not migrated.

Enable or disable GitLab Group Migration

Support for GitLab Group Migration is under development and not ready for production use. It is deployed behind a feature flag that is disabled by default. GitLab administrators with access to the GitLab Rails console can enable it.

To enable it:


To disable it:


Import your groups into GitLab

Before you begin, ensure that the target instance of GitLab can communicate with the source over HTTPS (HTTP is not supported).

noteThis might involve reconfiguring your firewall to prevent blocking connection on the side of self-managed instance.

Connect to the remote GitLab instance

  1. Navigate to the New Group page, either via the + button in the top navigation bar, or the New subgroup button on an existing group’s page.

    Navigation paths to create a new group

  2. On the New Group page, select the Import group tab.

    Fill in import details

  3. Fill in source URL of your GitLab.
  4. Fill in personal access token for remote GitLab instance.
  5. Click “Connect instance”.

Selecting which groups to import

After you have authorized access to GitLab instance, you are redirected to the GitLab Group Migration importer page and your remote GitLab groups are listed.

  1. By default, the proposed group namespaces match the names as they exist in remote instance, but based on your permissions, you can choose to edit these names before you proceed to import any of them.

  2. Select the Import button next to any number of groups.

  3. The Status column shows the import status of each group. You can choose to leave the page open and it will update in real-time.

  4. Once a group has been imported, click its GitLab path to open its GitLab URL.

Group Importer page