Skip to content

Import from GitLab

Forge can import the merge requests of a project on another GitLab, with their discussion threads and comments. It can also download that project’s issues as a CSV file that Orbit’s import understands. This page is for project administrators who move a team from GitLab to Orbit.

Both actions are in the Import from GitLab panel on the repository’s Git access tab. The panel covers the project’s merge requests and issues, not the Git data. Bring the code first with the repository import.

  1. Import the repository itself. Forge imports every branch and tag from an https:// URL or from a Git bundle, see Your first repository.
  2. Create a GitLab access token with the read_api and read_repository scopes for the project.
  3. Make sure the GitLab address is public and uses HTTPS. Forge refuses private, loopback and link-local addresses and does not follow redirects.
  1. Open the repository’s Git access tab and the Import from GitLab panel.
  2. Enter the GitLab instance, the project (its path or its ID) and the token.
  3. Start the import.

The import runs in the background and reads up to 2,000 merge requests with their discussions. For each closed or merged request, Forge also fetches the head commit, so the commits and the diff stay readable after the branch is gone. Running the import again skips what it already brought.

Brought over Left behind
Title, description and state Approvals and reviewers
Source and target branches Labels and milestones
Commits and dates System notes
Line threads, with their position and whether they are resolved Issue comments
Comments

Forge skips three kinds of request and records the reason. These are open requests whose branches are not in Forge yet, open requests from a GitLab fork, and requests without a head or base commit.

GitLab people are not Orbit identities, and Forge creates none. You, the administrator who runs the import, are the author of record. Each description and comment names its GitLab author, for example “@alice on GitLab”.

  • An imported request starts no pipeline, scan, trigger or Lumen review.
  • A closed request keeps its diff and commits but cannot be reopened.
  • Forge keeps the token in memory for the run. It does not store or log it.

The same panel downloads the project’s issues as a CSV file with the columns that Orbit’s import recognizes.

Column Content
External ID The GitLab ID
Summary The title
Description The text, naming the GitLab author and dates
Status To Do or Done
Labels The labels

Then import the file into the Orbit project with the CSV import wizard. The file stays within Orbit’s limits of 2,000 rows and 5 MB. A second import skips or updates rows by their external ID, so you can run it again safely.

If the project’s workflow has neither status name, Orbit’s import check reports an error. You can map the status column to your own statuses there. See CSV import and export.