gitlab-org--gitlab-foss/doc/workflow/importing/import_projects_from_github.md

2.8 KiB
Raw Blame History

Import your project from GitHub to GitLab

Note: In order to enable the GitHub import setting, you may also want to enable the GitHub integration in your GitLab instance. This configuration is optional, you will be able import your GitHub repositories with a Personal Access Token.

At its current state, GitHub importer can import:

  • the repository description (introduced in GitLab 7.7)
  • the git repository data (introduced in GitLab 7.7)
  • the issues (introduced in GitLab 7.7)
  • the pull requests (introduced in GitLab 8.4)
  • the wiki pages (introduced in GitLab 8.4)
  • the milestones (introduced in GitLab 8.7)
  • the labels (introduced in GitLab 8.7)
  • the release note descriptions (introduced in GitLab 8.12)

With GitLab 8.7+, references to pull requests and issues are preserved.

The importer page is visible when you create a new project. Click on the GitHub link and, if you are logged in via the GitHub integration, you will be redirected to GitHub for permission to access your projects. After accepting, you'll be automatically redirected to the importer.

If you are not using the GitHub integration, you can still perform a one-off authorization with GitHub to access your projects.

Alternatively, you can also enter a GitHub Personal Access Token. Once you enter your token, you'll be taken to the importer.

New project page on GitLab


While at the GitHub importer page, you can see the import statuses of your GitHub projects. Those that are being imported will show a started status, those already imported will be green, whereas those that are not yet imported have an Import button on the right side of the table. If you want, you can import all your GitHub projects in one go by hitting Import all projects in the upper left corner.

GitHub importer page


The importer will create any new namespaces if they don't exist or in the case the namespace is taken, the project will be imported on the user's namespace.

Note

When we are importing Issues/Pull Requests we try to find the original author or assignee using the Github Id, but for this to work the original author or assignee should had signed in before on the GitLab instance and associated their GitHub account. If we dont find the user in our database we set the project creator (most of the times the current user that started the import process) as the author but we keep a reference on the issue about the original author.