Skip to main content

Planeje sua migração do GitLab para GitHub

Planeje sua migração entendendo sua linha do tempo, quais dados serão migrados e sua estrutura organizacional.

Determinar quanto você precisa migrar

Descubra sua linha do tempo primeiro, pois ela moldará em grande parte sua abordagem. A primeira etapa para determinar seu cronograma é obter um inventário do que você precisa migrar.

  • Número de repositórios (projetos)
  • Número de solicitações de mesclagem

Observação

O tempo de migração é em grande parte baseado no número de solicitações de mesclagem em um repositório. Se você quiser migrar 1.000 repositórios e cada repositório tiver em média 100 solicitações de mesclagem, sua migração provavelmente será muito rápida. Se você quiser migrar apenas 100 repositórios, mas cada um dos repositórios tiver 75.000 solicitações de mesclagem, a migração levará muito mais tempo e exigirá mais planejamento e teste.

Recomendamos o comando inventory-report no GL2GH extension of the GitHub CLI. Esse comando se conecta à API do GitLab e cria dois arquivos CSV. groups.csv lista seus grupos do GitLab e projects.csv lista seus projetos, incluindo o número de solicitações de mesclagem.

Para produzir os arquivos CSV, use o comando a seguir, substituindo GITLAB_SERVER_URL pela URL do servidor GitLab (por exemplo) https://gitlab.come YOUR_GITLAB_GROUP pelo grupo no qual você deseja relatar. Para relatar todos os projetos que você pode acessar, omita --gitlab-group. Para todas as opções disponíveis, execute gh gl2gh inventory-report --help.

Shell
gh gl2gh inventory-report --gitlab-server-url GITLAB_SERVER_URL --gitlab-group YOUR_GITLAB_GROUP

Depois de fazer o inventário dos repositórios necessários para migrar, avalie os dados de inventário em relação à linha do tempo desejada.

  • Se a sua organização puder suportar um grau mais alto de alteração, você poderá migrar todos os repositórios de uma só vez, concluindo os esforços de migração em alguns dias.
  • Se você tiver equipes que não podem migrar ao mesmo tempo, convém colocar em lote e escalonar suas migrações para se ajustarem às linhas do tempo das equipes, estendendo seu esforço de migração.

Determinar GitHub a estrutura organizacional

Em seguida, planeje a estrutura organizacional que você criará em GitHub. O GitLab tem GitHub diferentes maneiras de organizar o trabalho de uma empresa.

  • GitLab: grupos de > de instância > subgrupos (que podem ser aninhados com até 20 níveis de profundidade) > projetos (repositórios)
  • GitHub: repositórios > da organização do > empresarial

Depois de migrar para GitHub, você deve ter apenas uma conta corporativa e várias organizações pertencentes a essa empresa. Cada grupo de nível superior do GitLab normalmente corresponde a uma única organização em GitHub. Para obter diretrizes sobre quantas organizações criar, consulte Práticas recomendadas para organizar o trabalho em sua empresa.

Observação

GitHub não tem um equivalente de subgrupos aninhados do GitLab. Não recomendamos a criação de uma organização GitHub para cada subgrupo, pois isso pode resultar em uma grande lista de repositórios desagrupados em cada organização. Em vez disso, você pode gerenciar o acesso a grupos de repositórios criando equipes.

Se você quiser dividir seu esforço de migração em lotes, a nova estrutura poderá ajudá-lo a determine-los. Se você tiver mais de um grupo no GitLab e os repositórios de cada grupo forem lotes de tamanho razoável, considere o envio em lote por grupo.

  1. Decida qual será sua nova estrutura organizacional.
  2. Decida se você precisa dividir seu esforço de migração em lotes menores.
  3. Nesse caso, decida como deseja interromper as migrações.

Configurando permissões de repositório

Como as permissões funcionam de forma diferente do que no GitHub GitLab, GitHub Enterprise Importer não migra permissões de repositório, configurações de grupo ou associação de grupo do GitLab.

No GitLab, os membros recebem funções (como Convidado, Repórter, Desenvolvedor, Mantenedor ou Proprietário) no nível de grupo, subgrupo ou projeto e essas funções são herdadas na hierarquia. Essas funções não são mapeadas diretamente para GitHub, portanto, você precisará recriar o acesso após a migração.

Para dar às pessoas acesso a repositórios GitHubmigrados, recomendamos criar equipes e conceder a cada equipe o nível apropriado de acesso às organizações e repositórios relevantes. Em seguida, você pode adicionar pessoas a essas equipes. Consulte Equipes em uma empresa.