When the source GitLab instance has no network access to Deckhouse Code, importing a project by URL is not possible. Export the project to a file on the source instance, then import that file into Deckhouse Code.

Prerequisites

  • The GitLab version on the source instance is the same as, or up to two minor versions older than, the GitLab version Deckhouse Code runs. For example, if Deckhouse Code runs GitLab 19.1, exports from GitLab 19.1, 19.0, and 18.11 are compatible.
  • You have the Maintainer or Owner role on the project you want to export.
  • You have the Maintainer or Owner role on the destination group in Deckhouse Code.

Import steps

Step 1. Enable project export on the source instance

An administrator of the source GitLab instance enables the export feature:

  1. Go to “Admin” → “Settings” → “General”.
  2. Expand “Import and export settings”.
  3. Under “Project export”, select “Enabled”.
  4. Select “Save changes”.

If project export is already enabled on the source instance, skip this step.

Step 2. Export the project

  1. Open the project you want to transfer.
  2. Go to “Settings” → “General”.
  3. Expand “Advanced”.
  4. Select “Export project”.
  5. After the export is generated, download the resulting file (a .tar.gz archive) through the email link, or by selecting “Download export” on the same page.

Save the exported file to your workstation: you upload it to Deckhouse Code in the next step.

Step 3. Enable GitLab export as an import source

An administrator of the Deckhouse Code instance enables the import source:

  1. Go to “Admin” → “Settings” → “General”.
  2. Expand “Import and export settings”.
  3. Under “Import sources”, select the “GitLab export” checkbox.
  4. Select “Save changes”.

Step 4. Import the project

  1. In the top-right corner, select “Create new” (+) → “New project/repository”.
  2. Select “Import project”.
  3. In “Import project from”, select “GitLab export”.
  4. Enter the project name and URL, then select the exported file.
  5. Select “Import project”.

You can check the import status through the project import API.

For large projects, use Rake tasks for project import instead of the web interface.

What transfers and what does not

Transferred: repository, wiki, issues, merge requests, labels, milestones, snippets, releases, direct project members, LFS objects, issue boards, archived CI/CD pipelines, protected branches and tags, push rules.

Not transferred: CI/CD variables, webhooks, CI/CD job traces and artifacts, package and container registry images, encrypted tokens, deploy keys, pipeline triggers, security policies.

For the full list of exported and non-exported items, see the GitLab project export and import reference.