GitHub-to-GitLab migration the easy way

iamspoilt1 pts0 comments

GitHub-to-GitLab migration the easy way

Close

To search repositories and projects, login to gitlab.com.

SuggestionsGitLab Duo Agent PlatformCode Suggestions (AI)CI/CDGitLab on AWSGitLab on Google CloudWhy GitLab?

The intelligent orchestration platform for DevSecOps<br>Explore our Platform Agentic AI for the entire software lifecycle<br>Meet GitLab Duo See the top reasons enterprises choose GitLab<br>Learn more

ProductAutomation<br>CI/CD<br>GitLab Duo Agent Platform<br>Source Code Management<br>Automated Software Delivery<br>Security<br>Application Security Testing<br>Software Supply Chain Security<br>Software Compliance<br>Measurement<br>Visibility & Measurement<br>Value Stream Management<br>Analytics & Insights

View all Solutions<br>GitLab for<br>Enterprise<br>Small Business<br>Public Sector

Pricing<br>ResourcesGetting started<br>Install<br>Quick start guides<br>Learn<br>Product documentation<br>Best practice videos<br>Integrations<br>Discover<br>Customer success stories<br>Blog<br>Demo Hub<br>The Source<br>Remote<br>Connect<br>GitLab Services<br>Contribute<br>Community<br>Forum<br>Events<br>Partners

View all resources<br>Stay updated with our latest features and improvements.

Read the latest

Company<br>About<br>Jobs<br>Events<br>Leadership<br>Handbook<br>Investor relations<br>Trust Center<br>AI Transparency Center<br>Newsletter<br>Press

Contact us<br>Talk to sales<br>Support portal<br>Customer portal

Request a demoGet free trialSign in

English<br>Deutsch<br>Français<br>日本語

Updated on: August 18, 2026<br>12 min read

GitHub-to-GitLab migration the easy way<br>Learn how easy it is to migrate from GitHub to GitLab using GitLab's project importer and GitLab Duo AI.

Fernando Diaz<br>CI/CD<br>tutorial<br>DevSecOps<br>DevSecOps platform<br>AI

If you're evaluating a move to GitLab, the first question is almost always the same: How hard is the migration? For most DevSecOps teams, the fear of "heavy lifting" is the biggest obstacle between them and a single, AI-native DevSecOps platform.<br>Migrating to GitLab is easier than ever. GitLab's built-in importer moves the vast majority of your project data automatically and in the background. Additionally, translating your CI/CD pipeline, one part that has traditionally required a human, is now largely handled by GitLab Duo. Duo, our AI-native assistant, can convert GitHub Actions workflows into GitLab CI/CD.<br>In this post, I'll walk through the full migration end to end:<br>What data migrates, and which items are automatic , work with caveats , or are manual<br>The prerequisites you actually need in GitLab 18.x (fewer than you might think)<br>Three ways to run the import: UI (OAuth), personal access token, and the REST API for bulk moves<br>How to convert GitHub Actions to GitLab CI/CD — the traditional way and the fast way with GitLab Duo<br>Other platforms GitLab can import from<br>Let's get started.<br>What data migrates from GitHub to GitLab?<br>GitLab's built-in GitHub importer is accessed directly from<br>GitLab's project creation UI, and it runs as a background job, meaning you can kick off an import and walk away.<br>Most of your project data comes across automatically. A smaller set of items are optional toggles or have caveats<br>worth knowing about up front.<br>The table below breaks down what migrates and how:<br>DataStatusGit repository, branches, tags, and commit history✅ Automatic. Includes fork branches for open pull requests.Issues✅ AutomaticPull requests (become merge requests)✅ Automatic. Includes reviews, review comments, suggestions, assigned reviewers, and "merged by" info.Issue and pull request comments✅ AutomaticLabels and milestones✅ AutomaticRelease notes content✅ AutomaticWiki pages✅ AutomaticBranch protection rules✅ AutomaticIssue and pull request events✅ AutomaticCollaborators (members)⚠️ With caveats. Optional toggle (on by default). Requires the read:org scope; GitHub roles are mapped to GitLab roles (see below). GitHub Enterprise Cloud custom roles aren't supported and are added manually.Markdown attachments (in descriptions, comments, releases)⚠️ With caveats. Optional toggle. Attachments in private repos from before May 2023 can't be imported (a GitHub limitation); GitHub Enterprise Server imports only images and video.Large comment volumes (~30,000+)⚠️ With caveats. Enable the alternative comments import to work around GitHub's per-issue API limits. Comments from before 2017 may import as separate threads.Git LFS objects⚠️ With caveats. LFS must be enabled on the destination project before the import runs, or objects are silently skipped.GitHub Actions workflows🛠️ Manual (AI-assisted). Converted to .gitlab-ci.yml. GitLab Duo can do most of this for you.Secrets → CI/CD variables🛠️ Manual. Recreate secrets as CI/CD variables (mark them masked/protected) before running pipelines.Required status checks🛠️ Manual. Recreate as external status checks.GitHub Organizations / groupings❌ Not migrated. Structure GitLab groups and subgroups to match.How roles are mapped<br>GitHub and GitLab use different naming conventions, so a mapping is performed during migration. When collaborators are imported, GitHub roles map to GitLab roles as follows:<br>GitHub...

gitlab github migration from caveats import

Related Articles