Preparar la orgnanización origen en GitHub
-
Asegúrese de que tiene permisos de propietario en los repositorios de la organización de origen.
-
Generación de un token de acceso con los ámbitos
repo
yadmin:org
en GitHub.com. -
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».
-
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».
-
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 entrue
. 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. -
-
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.
-
-
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
-
-
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
-
-
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".