Skip to main content

Enterprise Server 3.15 actualmente está disponible como versión candidata para lanzamiento.

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úrese de que tiene permisos de propietario en los repositorios de la organización de origen.

  2. Generación de un token de acceso con los ámbitos 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 bifurcación no se conservan después de una migración.

Para exportar datos de repositorio desde GitHub.com, use Migrations API.

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.

Generar un archivo de migración

Nota: El bloqueo de un repositorio impedirá todos los accesos de escritura al mismo. 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. Al migrar datos de un repositorio que está en uso, GitHub recomienda encarecidamente bloquear el repositorio. Para obtener más información, vea «Acerca de ghe-migrator».

  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, vea «Acerca de ghe-migrator».

  2. Para iniciar una migración, envíe una solicitud POST al punto de conexión de migración. Necesitará:

    • Tu token de acceso para autenticación.

    • Una lista de los repositorios que quiere migrar:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \
      https://api.github.com/orgs/ORG_NAME/migrations
      
    • Si quiere bloquear los repositorios antes de migrarlos, asegúrese de que lock_repositories está establecido en true. Esto es altamente recomendable.

    • Puede excluir los datos adjuntos de archivo si pasa exclude_attachments: true al punto de conexión. 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 valor id único que representa la migración. Lo necesitarás para solicitudes posteriores a la API de Migraciones.

  3. Envíe una solicitud GET al punto de conexión de estado de migración para capturar el estado de una migración. Necesitará:

    • Tu token de acceso para autenticación.

    • Valor id único de la migración:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID
      

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

    • pending, que significa que la migración todavía no se ha iniciado.
    • exporting, que significa que la migración está en curso.
    • exported, que significa que la migración ha finalizado correctamente.
    • failed, que significa que se ha producido un error en la migración.
  4. Una vez que se exporte la migración, descargue el archivo de migración mediante el envío de una solicitud GET al punto de conexión de descarga de migración. Necesitará:

    • Tu token de acceso para autenticación.

    • Valor id único de la migración:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  5. El archivo de migración se elimina automáticamente después de siete días. Si prefiere eliminarla antes, puede enviar una solicitud DELETE al punto de conexión de eliminación del archivo de migración. Necesitará:

    • Tu token de acceso para autenticación.

    • Valor id único de la migración:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X DELETE \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  6. A fin de preparar los datos de migración archivados para la importación en una instancia de GitHub Enterprise Server, consulta "Migración de datos a GitHub Enterprise Server".