Step 1: Install the ADO2GH extension of the GitHub CLI
GitHub Enterprise Importer is a collection of extensions for GitHub CLI. If this is your first migration, you'll need to install GitHub CLI and the ADO2GH extension.
-
Install the GitHub CLI.
- For installation instructions for GitHub CLI, see the GitHub CLI repository.
- If you already have GitHub CLI installed, run
gh --versionto ensure you're running version 2.4.0 or newer. If you have an older version, visit the GitHub CLI repository for upgrade instructions.
-
Install the ADO2GH extension.
Shell gh extension install github/gh-ado2gh
gh extension install github/gh-ado2gh -
The ADO2GH extension of the GitHub CLI is updated weekly. To make sure you're using the latest version, update the extension.
Shell gh extension upgrade github/gh-ado2gh
gh extension upgrade github/gh-ado2gh
Any time you need help with the ADO2GH extension, you can use the --help flag with a command. For example, gh ado2gh --help will list all the available commands, and gh ado2gh migrate-repo --help will list all the options available for the migrate-repo command.
Step 2: Set environment variables
Before you can use the ADO2GH extension to migrate to GitHub Enterprise Cloud, you must create personal access tokens that can access the source and destination organizations, then set the personal access tokens as environment variables.
-
Make sure you have your personal access tokens for both GitHub and Azure DevOps ready. See Phase 2. Manage access.
-
Set environment variables for the personal access tokens, replacing TOKEN in the commands below with the personal access tokens you previously created. Use
GH_PATfor the destination organization andADO_PATfor the source organization.-
If you're using Terminal, use the
exportcommand.Shell export GH_PAT="TOKEN" export ADO_PAT="TOKEN"
export GH_PAT="TOKEN" export ADO_PAT="TOKEN" -
If you're using PowerShell, use the
$envcommand.Shell $env:GH_PAT="TOKEN" $env:ADO_PAT="TOKEN"
$env:GH_PAT="TOKEN" $env:ADO_PAT="TOKEN"
-
-
If you're migrating to GitHub Enterprise Cloud with data residency, for convenience, set an environment variable for the base API URL for your enterprise.
Ensure you replace
SUBDOMAINwith your enterprise's subdomain. For example, if your enterprise's subdomain isacme, theTARGET_API_URLvalue would behttps://api.acme.ghe.com.-
If you're using Terminal, use the
exportcommand.Shell export TARGET_API_URL="https://api.SUBDOMAIN.ghe.com"
export TARGET_API_URL="https://api.SUBDOMAIN.ghe.com" -
If you're using PowerShell, use the
$envcommand.Shell $env:TARGET_API_URL="https://api.SUBDOMAIN.ghe.com"
$env:TARGET_API_URL="https://api.SUBDOMAIN.ghe.com"
You'll use this variable with the
--target-api-urloption in commands you run with the GitHub CLI. -
Next steps
In the next phase, you'll use GitHub Enterprise Cloud to prepare for the migration. See Phase 4. Prepare for your migration from Azure DevOps to GitHub.