Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

This version of GitHub Enterprise was discontinued on 2023-03-15. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Managing access for GitHub Enterprise Importer

Before you use GitHub Enterprise Importer, make sure you have appropriate access to both the source and destination of your migration.

About required access for GitHub Enterprise Importer

To protect your data, GitHub enforces specific access requirements to use GitHub Enterprise Importer. To prevent errors, you should review this article carefully and verify that you meet all of the requirements for the task you want to complete.

To run a migration, you need sufficient access to both the source and the destination for your migration. For repository migrations, the destination is an organization. For organization migrations, the destination is an enterprise account.

Before you can migrate from GitHub Enterprise Server 3.8 or higher for the first time, you also need someone with access to the Management Console to set up blob storage for your GitHub Enterprise Server instance.

For other tasks, you only need access to the target of the operation. For example, to grant the migrator role for an organization, you only need access to that organization.

To have sufficient access for either the source or destination, you need both of the following:

  • A required role in the GitHub organization or enterprise account
  • For Bitbucket Server, required permissions and SFTP or SMB access
  • For GitHub products and Azure DevOps, a personal access token that can access the organization or enterprise account
    • The personal access token must have all the required scopes, which depend on your role and the task you want to complete.
    • If the source or destination uses SAML single sign-on for GitHub.com, you must authorize the personal access token for SSO.

Additionally, if you use IP allow lists with the source or destination, you may need to configure the allow lists to allow access by GitHub Enterprise Importer.

Required roles for GitHub

When migrating to or from GitHub products, different roles are required for different tasks.

TaskEnterprise ownerOrganization ownerMigrator
Running a migration (source organization)
XX
Running an organization migration (destination enterprise)X
Assigning the migrator role for repository migrations
X
Running a repository migration (destination organization)
XX
Downloading a migration log
XX
Reclaiming mannequins
X

Required permissions for Bitbucket Server

To migrate from Bitbucket Server, you need:

  • The username and password of a Bitbucket Server account that has admin or super admin permissions
  • If your Bitbucket Server instances runs on Linux, SFTP access to the Bitbucket Server instance (see "SSH keys"). In general, if you can access the server via SSH, then you can also use SFTP.
  • If your Bitbucket Server instance runs on Windows, file sharing (SMB) access to the Bitbucket Server instance

SSH keys

If your Bitbucket Server instance runs on Linux, you must use an SSH key that meets the following requirements:

  • Does not have a passphrase
  • Uses one of the following ciphers
    • aes256-ctr
    • 3des-cbc
    • aes128-cbc
    • aes192-cbc
    • aes256-cbc
    • blowfish-cbc
    • twofish-cbc
    • twofish192-cbc
    • twofish128-cbc
    • twofish256-cbc
    • arcfour
    • arcfour128
    • arcfour256
    • cast128-cbc
    • aes128-ctr
    • aes192-ctr

If you receive an error like cipher name aes256-ctr for openssh key file is not supported when running a migration, your SSH private key uses an unsupported cipher. For more information about how to generate a compatible private key, see "Troubleshooting your migration with GitHub Enterprise Importer."

Required scopes for personal access tokens

To run a migration, you need a personal access token that can access the destination organization (for repository migrations) or enterprise account (for organization migrations). If your source is a GitHub product or Azure DevOps, you also need another personal access token that can access the source organization.

For other tasks, such as downloading a migration log, you only need one personal access token that can access the target of the operation.

Personal access tokens for GitHub products

The scopes that are required for your GitHub personal access token depend on your role and the task you want to complete.

Note: You can only use a personal access token, not a fine-grained personal access token.

TaskEnterprise ownerOrganization ownerMigrator
Running a migration (source organization)-read:org, reporead:org, repo