Skip to content

Instantly share code, notes, and snippets.

@jeviet
jeviet / self-service-gitlab-migrations.md
Last active July 20, 2026 15:31
Migration from GitLab to GitHub

Self-Service Migration from GitLab to GitHub

Current Status

GitLab to GitHub migrations through gh gl2gh is not yet generally available (GA), so please set your expectations accordingly. It is being built and hardened as a first‑class, self‑serve migration path, but it is currently in private preview, so supported entities and limits may change. The tool supports non-EoL versions of GitLab products.

How the migration works

gh gl2gh is a thin, cross‑platform command‑line wrapper around the GitHub migration APIs. When you migrate a repository, the CLI performs the following sequence for you:

  1. Export - The CLI calls the GitLab project‑export API to produce a .tar.gz archive containing the Git bundle plus project metadata (issues, merge requests, labels, milestones, releases, and so on) as NDJSON.
  2. Stage locally - The archive is downloaded to the machine where you run the command and will be deleted after a successful upload unless --keep-archive is specified.
  3. **Uploa