Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

Exportar datos de migración desde GitHub.com

Puedes exportar los dtos de migración desde una organización en GitHub.com si utilizas la API para seleccionar los repositorios que deseas migrar y luego generas un archivo de migración que puedas importar en una instancia de GitHub Enterprise Server.

Preparar la orgnanización origen en GitHub

  1. Asegúrate de tener permisos de propietario en los repositorios de la organización de origen.

  2. Genera un acceso de token con los alcances repo y admin:org en GitHub.com.

  3. Para minimizar los tiempos de inactividad, haz una lista de repositorios que deseas exportar desde la instancia de origen. Puedes agregar múltiples repositorios a una exportación a la vez usando un archivo de texto que muestra la URL de cada repositorio en una línea separada.

Exportar los repositorios de la organización

Nota: Las relaciones de las bifurcaciones no persisten después de una migración.

Para exportar datos del repositorio desde GitHub.com, usa la API de Migraciones.

La API de Migraciones se encuentra actualmente en un período de previsualización, lo que significa que los puntos finales y los parámetros pueden cambiar en el futuro. Para acceder a la API de Migraciones, debes proporcionar un tipo de medio personalizado en el encabezado Accept (Aceptar): application/vnd.github.wyandotte-preview+json. Los ejemplos a continuación incluyen el tipo de medio personalizado.

Generar un archivo de migración

Nota: El bloquear un repositorio previene todo acceso de lectura y escritura al repositorio. No puedes asociar equipos o colaboradores nuevos con un repositorio bloqueado. Si estás llevando a cabo una ejecución de prueba, no necesitas bloquear el repositorio. Cuando migras los datos desde un repositorio que está en uso,

GitHub recomienda fuertemente que lo bloquees. Para obtener más información, consulta "Acerca de las migraciones".

  1. Notifica a los miembros de tu organización que harás una migración. La exportación puede durar varios minutos, en función de la cantidad de repositorios que se exporten. La migración completa, incluida la importación, puede durar varias horas. Por lo tanto, te recomendamos que hagas una prueba para determinar cuánto tiempo tomará el proceso completo. Para obtener más información, consulta "Acerca de las migraciones".

  2. Inicia una migración enviando una solicitud de POST a la terminal de migración. Necesitarás:

    • Tu token de acceso para autenticación.
    • Una lista de los repositorios que deseas migrar:
      curl -H "Autorización: token GITHUB_ACCESS_TOKEN" -X POST \
      -H "Aceptar: application/vnd.github.wyandotte-preview+json" \
      -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \
      https://api.github.com/orgs/orgname/migrations
    • Si deseas bloquear los repositorios antes de migrarlos, asegúrate de que lock_repositoriesesté establecido en true (true). Esto es altamente recomendable.
    • Puedes excluir archivos adjuntos pasando exclude_attachments: true al punto final. Los archivos adjuntos pueden resultar muy grandes y es posible que sobrecarguen tu archivo de migración final de manera innecesaria. El tamaño final del archivo debe ser inferior a 20 GB.

    Esta solicitud devuelve un id único que representa tu migración. Lo necesitarás para solicitudes posteriores a la API de Migraciones.

  3. Envía una solicitud de GET al punto final del estado de la migración para extraer el estado de una migración. Necesitarás:

    • Tu token de acceso para autenticación.
    • El id único de la migración:
      curl -H "Autorización: token GITHUB_ACCESS_TOKEN" \
      -H "Aceptar: application/vnd.github.wyandotte-preview+json" \
      https://api.github.com/orgs/orgname/migrations/id

    Una migración puede estar en uno de los siguientes estados:

    • pending (pendiente), lo que significa que la migración aún no se ha iniciado.
    • exporting (exportando), lo que significa que la migración está en curso.
    • exported (exportada), lo que significa que la migración finalizó correctamente.
    • failed (fallida), lo que significa que la migración falló.
  4. Una vez que se haya exportado tu migración, descarga el archivo de migración enviando una solicitud de GET al punto final de descarga de migración. Necesitarás:

    • Tu token de acceso para autenticación.
    • El id único de la migración:
      curl -H "Aceptar: application/vnd.github.wyandotte-preview+json" \
      -u GITHUB_USERNAME:GITHUB_ACCESS_TOKEN \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/orgname/migrations/id/archive
  5. El archivo de migración se elimina automáticamente después de siete días. Si prefieres eliminarlo antes, puedes enviar una solicitud DELETE al punto final de eliminación del archivo de migración. Necesitarás:

    • Tu token de acceso para autenticación.
    • El id único de la migración:
      curl -H "Autorización: token GITHUB_ACCESS_TOKEN" -X DELETE \
      -H "Aceptar: application/vnd.github.wyandotte-preview+json" \
      https://api.github.com/orgs/orgname/migrations/id/archive
  6. Para preparar los datos de migración archivados para importarlos a la instancia de GitHub Enterprise Server, consulta la sección "Prepararse para migrar los datos a tu empresa".