Introducción
Este manual estable los pasos para llevar a cabo la migración de repositorios de GitHub con la herramienta gh desde la línea de comandos en la versión de GitHub Enterprise Cloud.
El proceso que se ha seguido ha sido el definido en la documentación: Migrating repositories from GitHub.com to GitHub Enterprise Cloud.
Especifico este manual, porque siguiendo los puntos de la anterior documentación, me han salido ciertas dudas que dejo aquí resueltas.
El objetivo es copiar un repositorio de Git entre GitHubs de una forma que posteriormente me permita de “programática” la migración masiva.
Pasos del proceso
Paso 0. Parto de la base que ya tengo instalado el gh en la línea de comandos. Para mas información al respecto se debería consultar en: GitHub Cli Installation.
Paso 1. Se tiene que instalar la extensión gh-gei mediante el siguiente comando
sudo gh extension install https://www.github.com/github/gh-gei
Paso 2. Crea las variables de entorno para autenticar:
export GH_PAT="TOKEN" (Para la organización destino)
export GH_SOURCE_PAT="TOKEN" (Para la organización origen)
Paso 3. En caso de acceder a una cuenta GH Enterprise con Data Residency, se debe especificar la API a utilizar:
export TARGET_API_URL="https://api.SUBDOMAIN.ghe.com"
Paso 4 – Toda una organización. Generar un script de migración, en caso de querer migrar una organización completa.
gh gei generate-script --github-source-org SOURCE --github-target-org DESTINATION --output FILENAME
Paso 4 – Migración de un solo repositorio. Para realizar la migración de un solo repositorio, lo realizaríamos como:
gh gei migrate-repo --github-source-org SOURCE --source-repo CURRENT-NAME --github-target-org DESTINATION --target-repo NEW-NAME
Permisos para ejecutar la migración
Para llevar a cabo la migración, se han de tener los privilegios de “organization owner” o bien de “CreateMigrationSource”. En caso contrario aparece el error siguiente al intentar hacer la migración:
jrv ~/Documents $ gh gei migrate-repo --github-source-org ORG_ORI --source-repo repo-to-migrate --github-target-org ORG_TARGET --target-repo new-repo
[2025-11-05 18:18:44] [INFO] You are running an up-to-date version of the gei CLI [v1.20.0]
[2025-11-05 18:18:44] [INFO] GITHUB SOURCE ORG: ORG_ORI
[2025-11-05 18:18:44] [INFO] SOURCE REPO: repo-to-migrate
[2025-11-05 18:18:44] [INFO] GITHUB TARGET ORG: ORG_TARGET
[2025-11-05 18:18:44] [INFO] TARGET REPO: new-repo
[2025-11-05 18:18:44] [INFO] Migrating Repo…
[2025-11-05 18:18:45] [ERROR] my_user does not have the correct permissions to execute CreateMigrationSource. Please check that:
(a) you are a member of the ORG_TARGET organization,
(b) you are an organization owner or you have been granted the migrator role and
(c) your personal access token has the correct scopes.
For more information, see https://docs.github.com/en/migrations/using-github-enterprise-importer/preparing-to-migrate-with-github-enterprise-importer/managing-access-for-github-enterprise-importer.
Revisando la documentación del link indicado en el error, se tiene que dar privilegios mediante el comando:
jrv ~/Documents $ gh gei grant-migrator-role --github-org ORG_TARGET --actor my_user --actor-type USE
Esta documentación la puedes repasar en: managing-access-for-github-enterprise-importer
Enjoy!!!