Preparar la orgnanización origen en GitHub
-
Asegúrate de tener permisos de propietario en los repositorios de la organización de origen.
-
Genera un acceso de token con los alcances
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 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".
-
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".
-
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_repositories
esté establecido entrue
(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. -
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ó.
-
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
-
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
-
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".