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.
Before you start
Section titled “Before you start”- Import the repository itself. Forge imports every branch and tag from an
https://URL or from a Git bundle, see Your first repository. - Create a GitLab access token with the
read_apiandread_repositoryscopes for the project. - Make sure the GitLab address is public and uses HTTPS. Forge refuses private, loopback and link-local addresses and does not follow redirects.
Import merge requests
Section titled “Import merge requests”- Open the repository’s Git access tab and the Import from GitLab panel.
- Enter the GitLab instance, the project (its path or its ID) and the token.
- 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.
What comes over
Section titled “What comes over”| 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.
Download issues as a CSV file
Section titled “Download issues as a CSV file”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.