Determina cuánto tienes que migrar
Descubra primero la escala de tiempo, ya que dará forma en gran medida al enfoque. El primer paso para determinar la escala de tiempo consiste en obtener un inventario de lo que necesitas migrar.
- Número de repositorios (proyectos)
- Número de solicitudes de combinación
Nota:
El tiempo de migración se basa en gran medida en el número de solicitudes de combinación de un repositorio. Si quiere migrar 1000 repositorios y cada repositorio tiene 100 solicitudes de combinación en promedio, es probable que la migración sea muy rápida. Si solo quiere migrar 100 repositorios, pero cada uno tiene 75 000 solicitudes de combinación en promedio, la migración tardará mucho más y requerirá más planeación y pruebas.
Recomendamos el comando inventory-report en el GL2GH extension of the GitHub CLI. Este comando se conecta a la API de GitLab y crea dos archivos CSV.
groups.csv enumera los grupos de GitLab y projects.csv enumera los proyectos, incluido el número de solicitudes de combinación.
Para generar los archivos CSV, use el comando siguiente, reemplazando GITLAB_SERVER_URL por la dirección URL del servidor de GitLab (por ejemplo, https://gitlab.com) y YOUR_GITLAB_GROUP por el grupo en el que desea informar. Para informar sobre todos los proyectos a los que puede acceder, omita --gitlab-group. Para todas las opciones disponibles, ejecute gh gl2gh inventory-report --help.
gh gl2gh inventory-report --gitlab-server-url GITLAB_SERVER_URL --gitlab-group YOUR_GITLAB_GROUP
gh gl2gh inventory-report --gitlab-server-url GITLAB_SERVER_URL --gitlab-group YOUR_GITLAB_GROUP
Después de realizar el inventario de los repositorios que necesita migrar, compara los datos del inventario contra tu cronograma deseado.
- Si la organización puede soportar un mayor grado de cambio, es posible que puedas migrar todos los repositorios a la vez, y completar los esfuerzos de migración en unos días.
- Si tiene equipos que no pueden migrar al mismo tiempo, es posible que quiera procesar por lotes y escalonar las migraciones para que se ajusten a las escalas de tiempo de los equipos, lo que amplía el esfuerzo de migración.
Determinación de la GitHub estructura organizativa
A continuación, planee la estructura organizativa que creará en GitHub. GitLab y GitHub tienen diferentes formas de organizar el trabajo de una empresa.
- GitLab: grupos de > de instancia > subgrupos (que se pueden anidar hasta 20 niveles de profundidad) > proyectos (repositorios)
- GitHub: repositorios de > de la organización > empresarial
Después de migrar a GitHub, solo debe tener una cuenta empresarial y una serie de organizaciones que pertenecen a esa empresa. Cada grupo de nivel superior de GitLab normalmente corresponde a una sola organización en GitHub. Para obtener instrucciones sobre el número de organizaciones que se van a crear, consulte Procedimientos recomendados para organizar el trabajo en su empresa.
Nota:
GitHub no tiene un equivalente a los subgrupos anidados de GitLab. No se recomienda crear una organización en GitHub para cada subgrupo, ya que esto puede dar lugar a una gran lista de repositorios sin agrupar dentro de cada organización. En su lugar, puede administrar el acceso a grupos de repositorios mediante la creación de equipos.
Si desea dividir el esfuerzo de migración en lotes, la nueva estructura puede ayudarle a determinarlos. Si tiene más de un grupo en GitLab y los repositorios de cada grupo tienen un tamaño razonable, considere la posibilidad de realizar lotes por grupo.
- Decida cuál será la nueva estructura de la organización.
- Decida si necesitas dividir el esfuerzo de migración en lotes más pequeños.
- Si es así, decide cómo quieres dividir las migraciones.
Configuración de permisos de repositorio
Dado que los permisos funcionan de forma diferente en GitHub que en GitLab, GitHub Enterprise Importer no migra los permisos de repositorio, la configuración de grupo ni la pertenencia a grupos desde GitLab.
En GitLab, a los miembros se les conceden roles (como Invitado, Periodista, Desarrollador, Mantenedor o Propietario) en el grupo, subgrupo o nivel de proyecto, y estos roles se heredan de la jerarquía. Estos roles no se asignan directamente a GitHub, por lo que deberá volver a crear el acceso después de migrar.
Para conceder a los usuarios acceso a repositorios migrados en GitHub, se recomienda crear equipos y conceder a cada equipo el nivel de acceso adecuado a las organizaciones y repositorios pertinentes. A continuación, puede agregar personas a esos equipos. Consulte Equipos en una empresa.