Skip to main content

Migración de repositorios desde Azure DevOps a GitHub Enterprise Cloud

Puedes migrar repositorios desde Azure DevOps a GitHub Enterprise Cloud, con GitHub CLI o GraphQL API.

Tool navigation

Acerca de las migraciones de repositorios con GitHub Enterprise Importer

Puedes ejecutar la migración con la GitHub CLI o la API.

La GitHub CLI simplifica el proceso de migración y se recomienda para la mayoría de los clientes. Los clientes avanzados con necesidades de personalización intensivas pueden usar la API para crear sus propias integraciones con GitHub Enterprise Importer.

A fin de ver instrucciones para usar la API, utiliza el conmutador de herramientas en la parte superior de la página.

Requisitos previos

  • Se recomienda encarecidamente realizar una ejecución de prueba de la migración y completar la migración de producción poco después. Para más información sobre las ejecuciones de prueba, consulta Introducción a una migración desde Azure DevOps a GitHub Enterprise Cloud.
  • Asegúrate de comprender los datos que se migrarán y las limitaciones de compatibilidad conocidas del importador. Para obtener más información, consulta Información sobre migraciones desde Azure DevOps a GitHub Enterprise Cloud.
  • Aunque no es necesario, se recomienda detener el trabajo durante la migración de producción. Importer no admite migraciones diferenciales, por lo que los cambios que se produzcan durante la migración no se migrarán. Si decides no detener el trabajo durante la migración de producción, tendrás que migrar manualmente estos cambios.
  • Para la organización de destino en GitHub, debe ser propietario de la organización o tener el rol de migración. Para más información sobre el rol de migración, consulta Administración del acceso para una migración desde Azure DevOps.

Paso 1: Instalación de ADO2GH extension of the GitHub CLI

Si se trata de la primera migración, tendrás que instalar ADO2GH extension of the GitHub CLI. Para más información sobre la GitHub CLI, consulta Acerca del CLI de GitHub.

Como alternativa, puede descargar un binario independiente desde la página de versiones del repositorio github/gh-ado2gh. Puede ejecutar el archivo binario directamente, sin el prefijo gh.

  1. Instala la GitHub CLI. A fin de obtener instrucciones de instalación para GitHub CLI, vea el repositorio de GitHub CLI.

    Note

    Necesitas la versión 2.4.0 o posterior de GitHub CLI. Puedes comprobar la versión instalada con el comando gh --version.

  2. Instalación de ADO2GH extension.

    Shell
    gh extension install github/gh-ado2gh
    

Cada vez que necesites ayuda con ADO2GH extension, puedes usar la marca --help con un comando. Por ejemplo, gh ado2gh --help enumerará todos los comandos disponibles y gh ado2gh migrate-repo --help todas las opciones disponibles para el comando migrate-repo.

Paso 2: Actualización de ADO2GH extension of the GitHub CLI

ADO2GH extension of the GitHub CLI se actualiza semanalmente. Para asegurarte de que usas la versión más reciente, actualiza la extensión.

Shell
gh extension upgrade github/gh-ado2gh

Paso 3: Establecimiento de variables de entorno

Para poder usar la ADO2GH extension para la migración a GitHub Enterprise Cloud, debes crear instancias de personal access token que puedan acceder a las organizaciones de origen y destino y, después, establecer las instancias de personal access token como variables de entorno.

  1. Crea y registra una instancia de personal access token (classic) que se autenticará para la organización de destino en GitHub Enterprise Cloud, y asegúrate de que el token cumple todos los requisitos. Para más información, consulta Administración del acceso para una migración desde Azure DevOps.

  2. Crea y registra una instancia de personal access token que se autenticará para la organización de origen en Azure DevOps, y asegúrate de que este token cumple todos los requisitos. Para más información, consulta Administración del acceso para una migración desde Azure DevOps.

  3. Establece variables de entorno para personal access token, y reemplaza TOKEN en los comandos siguientes por los valores personal access token que has registrado antes. Usa GH_PAT para la organización de destino y ADO_PAT para la de origen.

    • Si usas Terminal, utiliza el comando export.

      Shell
      export GH_PAT="TOKEN"
      export ADO_PAT="TOKEN"
      
    • Si usas PowerShell, utiliza el comando $env.

      Shell
      $env:GH_PAT="TOKEN"
      $env:ADO_PAT="TOKEN"
      
  4. Si vas a migrar a Nube de GitHub Enterprise con residencia de datos, para mayor comodidad, establece una variable de entorno para la dirección URL de la API base para tu empresa. Por ejemplo:

    Shell
    export TARGET_API_URL="https://api.octocorp.ghe.com"
    

    Usarás esta variable con la opción --target-api-url en los comandos que ejecutes con la GitHub CLI.

Paso 4: Generación de un script de migración

Si quieres migrar varios repositorios a GitHub Enterprise Cloud a la vez, usa la GitHub CLI para generar un script de migración. El script resultante contendrá una lista de comandos de migración, uno por cada repositorio.

Note

La generación de un script da como resultado un script de PowerShell. Si usas Terminal, tendrás que generar el script con la extensión de archivo .ps1 e instalar PowerShell para Mac o Linux para ejecutarlo.

Si quieres migrar un único repositorio, pasa al paso siguiente.

Generación de un script de migración

Para generar un script de migración, ejecuta el comando gh ado2gh generate-script.

Shell
gh ado2gh generate-script --ado-org SOURCE --github-org DESTINATION --output FILENAME

Marcadores de posición

Reemplaza los marcadores de posición del comando anterior por los valores siguientes.

Marcador de posiciónValue
SOURCENombre de la organización de origen
DESTINATIONNombre de la organización de destino
FILENAMENombre de archivo para el script de migración resultante

Si usas Terminal, utiliza una extensión de archivo .ps1, ya que el script generado necesita que se ejecute PowerShell. Puedes instalar PowerShell para Mac o Linux.

Argumentos adicionales

ArgumentoDescripción
--target-api-url TARGET-API-URLSi vas a migrar a GHE.com, agrega --target-api-url TARGET-API-URL, donde TARGET-API-URL es la dirección URL de la API base para el subdominio de la empresa. Por ejemplo: https://api.octocorp.ghe.com.
--allAgregue funcionalidad adicional al script, como las canalizaciones de reintento, la creación de equipos y la configuración de integraciones Azure Boards.
--download-migration-logsDescarga el registro de migración para cada repositorio migrado. Para más información sobre los registros de migración, consulta Acceso a los registros de migración para GitHub Enterprise Importer.

Revisión del script de migración

Después de generar el script, revisa el archivo y, opcionalmente, edita el script.

  • Si hay repositorios que no quieras migrar, elimina o convierte en comentario las líneas correspondientes.
  • Si quieres que los repositorios tengan otro nombre en la organización de destino, actualiza el valor de la marca --target-repo correspondiente.
  • Si desea cambiar la visibilidad del nuevo repositorio, actualice el valor de la marca --target-repo-visibility correspondiente. De manera predeterminada, el script establece la misma visibilidad que el repositorio de origen.

Si descargó ADO2GH como un binario independiente en lugar de como una extensión para los GitHub CLI, deberá actualizar el script generado para ejecutar el binario en lugar de gh ado2gh.

Paso 5: Migración de repositorios

Puedes migrar varios repositorios con un script de migración, o bien un único repositorio con el comando gh ado2gh migrate-repo.

Migración de varios repositorios

Para migrar varios repositorios, ejecuta el script que has generado antes. Reemplaza FILENAME en los comandos siguientes por el nombre de archivo que has proporcionado al generar el script.

  • Si usas Terminal, utiliza ./.

    Shell
    ./FILENAME
    
  • Si usas PowerShell, utiliza .\.

    Shell
    .\FILENAME
    

Migración de un único repositorio

Para migrar un único repositorio, usa el comando gh ado2gh migrate-repo.

Shell
gh ado2gh migrate-repo --ado-org SOURCE --ado-team-project TEAM-PROJECT --ado-repo CURRENT-NAME --github-org DESTINATION --github-repo NEW-NAME

Note

Si vas a migrar a GHE.com, agrega --target-api-url TARGET-API-URL, donde TARGET-API-URL es la dirección URL de la API base para el subdominio de la empresa. Por ejemplo: https://api.octocorp.ghe.com.

Reemplaza los marcadores de posición del comando anterior por los valores siguientes.

Marcador de posiciónValue
SOURCENombre de la organización de origen
CURRENT-NAMENombre del repositorio que quieres migrar
DESTINATIONNombre de la organización de destino
NEW-NAMENombre que quieres que tenga el repositorio migrado
TEAM-PROJECTNombre del proyecto de equipo del repositorio que quieres migrar

Si deseas cancelar una migración, usa el comando abort-migration, reemplazando MIGRATION-ID por el identificador devuelto de migrate-repo.

Shell
gh ado2gh abort-migration --migration-id MIGRATION-ID

Paso 6: Validación de la migración y comprobación del registro de errores

Una vez que se complete la migración, se recomienda revisar el registro de migración. Para más información, consulta Acceso a los registros de migración para GitHub Enterprise Importer.

Se recomienda revisar los repositorios migrados para obtener una comprobación de solidez.