Preparing the source organization on 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.
Exporting the organization's repositories
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:Cerrar un repositorio previene que los usuarios suban información al mismo o que modifiquen sus recursos como informes de problemas, etiquetas, hitos, wikis, y comentarios. Los nuevos equipos y colaboradores no podrán asociarse con un repositorio cerrado.
Si estás realizando una ejecución de prueba, no necesitas cerrar el repositorio. En el resto de los casos, se recomienda ampliamente. 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 mediante
POST
al punto final 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 importar los datos de migración archivados a una instancia de GitHub Enterprise Server , consulta "Importando datos de migración a GitHub Enterprise Server".