Prerequisites
- Debe haber completado todas las fases anteriores de esta guía.
- El proyecto de GitLab debe estar habilitado para las exportaciones. Consulte Habilitar la exportación de proyectos y la configuración de Sidekiq para las importaciones en la documentación de GitLab.
- Asegúrate de comprender los datos que se migrarán y las limitaciones de compatibilidad conocidas del importador. Para obtener más información, consulte Descripción de las migraciones de GitLab a GitHub.
- Aunque no es necesario, se recomienda detener el trabajo durante la migración de producción. Importer no admite migraciones diferenciales, por lo que los cambios que se produzcan durante la migración no se migrarán. Si decides no detener el trabajo durante la migración de producción, tendrás que migrar manualmente estos cambios.
Realización de una ejecución de prueba
Para ayudar a descubrir problemas que podrían ser únicos para su empresa, se recomienda encarecidamente realizar una ejecución de prueba de la migración. Con una ejecución de prueba, aprenderá lo siguiente:
- Si la migración de un repositorio determinado se puede completar correctamente.
- Si puede restaurar el repositorio migrado a un estado operativo.
- Cuánto tiempo tardará una migración en ejecutarse.
Las ejecuciones de prueba se pueden realizar en cualquier momento y no es necesario detener el trabajo durante la migración. A fin de reducir el tiempo necesario para completar las migraciones de prueba, puedes programar los lotes de las ejecuciones de prueba de manera consecutiva. Después, los usuarios de esos repositorios pueden validar los resultados por su cuenta.
-
Configura una organización organizativa de prueba para tus migraciones de prueba.
Puedes usar una sola organización para todas las ejecuciones de prueba, o bien puedes crear una organización de prueba para cada organización de destino prevista. Considera la posibilidad de incluir
-sandboxal final de los nombres de la organización, para aclarar que las organizaciones solo están pensadas para la validación de la migración y no para producción. Puedes eliminar las organizaciones de prueba cuando hayas terminado. -
Ejecuta las migraciones de prueba.
-
Confirme que puede completar las tareas de seguimiento en Tareas de seguimiento.
-
Pide a los usuarios que validen los resultados de las migraciones.
-
Resuelve las incidencias detectadas por las migraciones de prueba.
-
Opcionalmente, elimina la organización de prueba.
Migración de un único repositorio
Para migrar un repositorio, use el gh gl2gh migrate-repo comando .
gh gl2gh migrate-repo \ --gitlab-server-url GITLAB_SERVER_URL \ --gitlab-group SOURCE_GROUP \ --gitlab-project SOURCE_PROJECT \ --github-org DESTINATION \ --github-repo NEW_REPO_NAME \ --use-github-storage
gh gl2gh migrate-repo \
--gitlab-server-url GITLAB_SERVER_URL \
--gitlab-group SOURCE_GROUP \
--gitlab-project SOURCE_PROJECT \
--github-org DESTINATION \
--github-repo NEW_REPO_NAME \
--use-github-storage
Reemplaza los marcadores de posición del comando anterior por los valores siguientes.
| Marcador de posición | Value |
|---|---|
| GITLAB_SERVER_URL | Dirección URL completa de la instancia de GitLab, como https:/ o https:/. |
| SOURCE_GROUP | Ruta de acceso completa del grupo o espacio de nombres que contiene el proyecto. En el caso de los subgrupos anidados, use la ruta de acceso completa, como parent-group/. |
| SOURCE_PROJECT | Proyecto de GitLab que se va a migrar. |
| DESTINO | Organización de destino en GitHub. |
| NEW_REPO_NAME | Nombre del repositorio en GitHub. |
Si no usa GitHub-owned blob storage, consulte Configuración de Blob Storage.
Argumentos adicionales
| Argument | Description |
|---|---|
--target-repo-visibility | Establece la visibilidad del nuevo repositorio en public, privateo internal. Tiene como valor predeterminado private. |
--target-api-url TARGET-API-URL | Si vas a migrar a GHE.com, agrega --target-api-url TARGET-API-URL, donde TARGET-API-URL es la dirección URL de la API base para el subdominio de la empresa. Por ejemplo: https:/. |
--target-uploads-url TARGET-UPLOADS-URL | Si va a migrar a GHE.com y usa GitHub-owned blob storage, agregue --target-uploads-url TARGET-UPLOADS-URLtambién , donde TARGET-UPLOADS-URL es la dirección URL de la API de carga base para el subdominio de la empresa. Por ejemplo: https:/. Este valor predeterminado es https:/. |
--no-ssl-verify | Deshabilita la comprobación ssl cuando se comunica con la GL2GH extension instancia de GitLab. Use esto solo si la instancia de GitLab usa un certificado autofirmado. Todos los demás pasos siguen comprobando SSL. |
--archive-url URL | Importa un archivo exportado previamente desde una dirección URL, en lugar de volver a exportar el proyecto desde GitLab. |
--archive-path PATH | Importa un archivo exportado previamente desde una ruta de acceso de archivo local, en lugar de volver a exportar el proyecto desde GitLab. |
--keep-archive | Conserva el archivo de exportación localmente en lugar de eliminarlo después de una carga correcta. |
Generación de un script de migración
Si desea migrar varios repositorios a GitHub Enterprise Cloud la vez, use para GitHub CLI generar un script de migración. El script resultante contiene un migrate-repo comando por repositorio.
Para generar un script de migración, ejecuta el comando gh gl2gh generate-script.
gh gl2gh generate-script \ --gitlab-server-url GITLAB_SERVER_URL \ --github-org DESTINATION \ --output FILENAME \ --use-github-storage
gh gl2gh generate-script \
--gitlab-server-url GITLAB_SERVER_URL \
--github-org DESTINATION \
--output FILENAME \
--use-github-storage
Reemplaza los marcadores de posición del comando anterior por los valores siguientes.
| Marcador de posición | Value |
|---|---|
| GITLAB_SERVER_URL | Dirección URL completa de la instancia de GitLab, como https:/ o https:/. |
| DESTINO | Organización de destino en GitHub. |
| FILENAME | Nombre de archivo para el script de migración resultante Si usas Terminal, utiliza una extensión de archivo .ps1, ya que el script generado necesita que se ejecute PowerShell. Puedes instalar PowerShell para Mac o Linux. |
De forma predeterminada, el script incluye todos los proyectos a los que puede acceder el token. Para definir el ámbito del script, agregue --gitlab-group GROUPo --gitlab-group GROUP --gitlab-project PROJECT para un solo proyecto.
Si no usa GitHub-owned blob storage, consulte Configuración de Blob Storage.
Argumentos adicionales
| Argument | Description |
|---|---|
--target-api-url TARGET-API-URL | Si vas a migrar a GHE.com, agrega --target-api-url TARGET-API-URL, donde TARGET-API-URL es la dirección URL de la API base para el subdominio de la empresa. Por ejemplo: https:/. |
--target-uploads-url TARGET-UPLOADS-URL | Si va a migrar a GHE.com y usa GitHub-owned blob storage, agregue --target-uploads-url TARGET-UPLOADS-URLtambién , donde TARGET-UPLOADS-URL es la dirección URL de la API de carga base para el subdominio de la empresa. Por ejemplo: https:/. Este valor predeterminado es https:/. |
Revisión del script de migración
Después de generar el script, revisa el archivo y, opcionalmente, edita el script.
- Si hay repositorios que no quieras migrar, elimina o comenta las líneas correspondientes.
- Si quieres que los repositorios tengan otro nombre en la organización de destino, actualiza el valor de la marca
--github-repocorrespondiente. - Si desea cambiar la visibilidad de un nuevo repositorio, agregue o actualice la marca correspondiente
--target-repo-visibility.
Migración de repositorios
Si la ejecución de prueba se realizó correctamente y pudo completar las tareas de seguimiento, puede continuar con la migración real.
Advertencia
Recomendamos detener cualquier trabajo en los repositorios que esté migrando. Los cambios realizados durante o después de la migración deberán migrarse manualmente.
Ejecute el script que generó. Reemplaza FILENAME en los comandos siguientes por el nombre de archivo que has proporcionado al generar el script.
-
Si usas Terminal, utiliza
./.Shell ./FILENAME
./FILENAME -
Si usas PowerShell, utiliza
.\.Shell .\FILENAME
.\FILENAME