Skip to main content

Esta versão do GitHub Enterprise Server foi descontinuada em 2024-07-09. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise Server. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Como migrar repositórios do GitHub.com para o GitHub Enterprise Cloud

Você pode migrar repositórios do GitHub.com para o GitHub Enterprise Cloud usando a GitHub CLI ou a API do GraphQL.

Tool navigation

Sobre as migrações de repositório com o GitHub Enterprise Importer

Você pode executar a migração com a GitHub CLI ou a API.

A GitHub CLI simplifica o processo de migração e é recomendada para a maioria dos clientes. Os clientes avançados com necessidades de personalização intensiva podem usar a API para criar integrações próprias ao GitHub Enterprise Importer.

Para ver instruções para usar a API, use o alternador de ferramentas na parte superior da página.

Pré-requisitos

  • Recomendamos fortemente que você faça uma execução de avaliação da migração e conclua a migração de produção logo em seguida. Para saber mais sobre execuções de avaliação, confira "Visão geral de uma migração entre produtos GitHub".
  • Certifique-se de entender os dados que serão migrados e as limitações de suporte conhecidas do Importador. Para obter mais informações, confira "Sobre migrações entre produtos GitHub".
  • Embora não seja necessário, recomendamos interromper o trabalho durante a migração de produção. O Importer não dá suporte a migrações delta, ou seja, as alterações que ocorrerem durante a migração não serão migradas. Se você optar por não interromper o trabalho durante a migração de produção, precisará migrar manualmente essas alterações.
  • Na organização de origem e de destino, você precisa ser um proprietário da organização ou receber a função de migrador. Para obter mais informações, confira "Gerenciando o acesso para uma migração entre produtos GitHub".

Etapa 1: Instalar a GEI extension of the GitHub CLI

Se essa for sua primeira migração, você precisará instalar a GEI extension of the GitHub CLI. Para obter mais informações sobre a GitHub CLI, confira "Sobre o a CLI do GitHub".

Como alternativa, você pode baixar um binário autônomo na página de versões do repositório github/gh-gei. Você pode executar o binário diretamente, sem o prefixo gh.

  1. Instale a GitHub CLI. Para obter instruções de instalação para GitHub CLI, veja o repositório GitHub CLI.

    Observação: você precisa ter a versão 2.4.0 ou mais recente da GitHub CLI. Verifique a versão instalada com o comando gh --version.

  2. Instale o GEI extension.

    Shell
    gh extension install github/gh-gei
    

Sempre que precisar de ajuda com a GEI extension, use o sinalizador --help com um comando. Por exemplo, gh gei --help listará todos os comandos disponíveis, e gh gei migrate-repo --help listará todas as opções disponíveis para o comando migrate-repo.

Etapa 2: Atualizar a GEI extension of the GitHub CLI

A GEI extension é atualizada semanalmente. Para garantir que você esteja usando a última versão, atualize a extensão.

gh extension upgrade github/gh-gei

Etapa 3: Definir variáveis de ambiente

Para usar a GEI extension para migrar para o GitHub Enterprise Cloud, você precisa criar personal access tokens que possam acessar as organizações de origem e de destino e definir os personal access tokens como variáveis de ambiente.

  1. Crie e registre um personal access token que será autenticado para a organização de destino no GitHub Enterprise Cloud, verificando se o token atende a todos os requisitos. Para obter mais informações, confira "Gerenciando o acesso para uma migração entre produtos GitHub".

  2. Crie e registre um personal access token que será autenticado para a organização de origem, verificando se esse token também atende a todos os mesmos requisitos.

  3. Defina variáveis de ambiente para o personal access tokens, substituindo TOKEN nos comandos abaixo pelos personal access tokens que você registrou acima. Use GH_PAT para a organização de destino e GH_SOURCE_PAT para a organização de origem.

    • Se você estiver usando o Terminal, use o comando export.

      Shell
      export GH_PAT="TOKEN"
      export GH_SOURCE_PAT="TOKEN"
      
    • Se você estiver usando o PowerShell, use o comando $env.

      Shell
      $env:GH_PAT="TOKEN"
      $env:GH_SOURCE_PAT="TOKEN"
      

Etapa 4: Gerar um script de migração

Caso você deseje migrar vários repositórios para o GitHub Enterprise Cloud ao mesmo tempo, use a GitHub CLI para gerar um script de migração. O script resultante conterá uma lista de comandos de migração, um por repositório.

Observação: a geração de um script produz um script do PowerShell. Se você estiver usando o Terminal, precisará gerar o script com a extensão de arquivo .ps1 e instalar o PowerShell para Mac ou Linux para executá-lo.

Caso você deseje migrar um repositório individual, vá para a próxima etapa.

Como gerar um script de migração

Para gerar um script de migração, execute o comando gh gei generate-script.

Shell
gh gei generate-script --github-source-org SOURCE --github-target-org DESTINATION --output FILENAME

Caso você deseje que o script baixe o log de migração para cada repositório migrado, adicione o sinalizador --download-migration-logs. Para obter mais informações sobre os logs de migração, confira "Como acessar os logs de migração do GitHub Enterprise Importer".

Substitua os espaços reservados no comando acima pelos valores a seguir.

Espaço reservadoValor
SOURCENome da organização de origem
DESTINATIONNome da organização de destino
FILENAMEUm nome de arquivo para o script de migração resultante

Se estiver usando o Terminal, use uma extensão de arquivo .ps1, pois o script gerado exige a execução do PowerShell. Você pode instalar o PowerShell para Mac ou Linux.

Se você baixou GEI como um binário autônomo em vez de como uma extensão para o GitHub CLI, será necessário atualizar o script gerado para executar o binário em vez de gh gei.

Como revisar o script de migração

Depois de gerar o script, analise o arquivo e, opcionalmente, edite o script.

  • Se houver repositórios que você não deseja migrar, exclua ou remova os comentários das linhas correspondentes.
  • Caso você deseje que algum repositório tenha um nome diferente na organização de destino, atualize o valor do sinalizador --target-repo correspondente.

Observação: se o repositório tiver mais de 10 GB de dados de versões, as versões não poderão ser migradas. Use o sinalizador --skip-releases para migrar o repositório sem versões.

Se você baixou GEI como um binário autônomo em vez de como uma extensão para o GitHub CLI, será necessário atualizar o script gerado para executar o binário em vez de gh gei.

Etapa 5: Migrar repositórios

Você pode migrar vários repositórios com um script de migração ou um repositório individual com o comando gh gei migrate-repo.

Migrar vários repositórios

Para migrar vários repositórios, execute o script gerado acima. Substitua FILENAME nos comandos abaixo pelo nome do arquivo que você forneceu ao gerar o script.

  • Se estiver usando o Terminal, use ./.

    Shell
    ./FILENAME
    
  • Se estiver usando o PowerShell, use .\.

    Shell
    .\FILENAME
    

Migrar um repositório individual

Para migrar um repositório individual, use o comando gh gei migrate-repo.

Shell
gh gei migrate-repo --github-source-org SOURCE --source-repo CURRENT-NAME --github-target-org DESTINATION --target-repo NEW-NAME

Observação: se o repositório tiver mais de 10 GB de dados de versões, as versões não poderão ser migradas. Use o sinalizador --skip-releases para migrar o repositório sem versões.

Substitua os espaços reservados no comando acima pelos valores a seguir.

Espaço reservadoValor
SOURCENome da organização de origem
CURRENT-NAMEO nome do repositório que você deseja migrar
DESTINATIONNome da organização de destino
NEW-NAMEO nome que você deseja dar ao repositório migrado

Se você quiser cancelar uma migração, use o comando abort-migration, substituindo MIGRATION-ID pelo ID retornado de migrate-repo.

Shell
gh gei abort-migration --migration-id MIGRATION-ID

Etapa 6: Validar a migração e verificar o log de erros

Quando a migração for concluída, recomendaremos analisar o log de migração. Para obter mais informações, confira "Como acessar os logs de migração do GitHub Enterprise Importer".

Recomendamos que você analise os repositórios migrados para uma verificação de integridade.

Pressione alt+up para ativar