Skip to main content

Migrar repositórios do Azure DevOps para o GitHub Enterprise Cloud

Você pode migrar repositórios do Azure DevOps para o GitHub Enterprise Cloud usando o 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 do Azure DevOps para o GitHub Enterprise Cloud.
  • 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 do Azure DevOps para o GitHub Enterprise Cloud.
  • 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.
  • Para a organização de destino no GitHub, você precisa ser um proprietário da organização ou ter a função de migrador. Para obter mais informações sobre a função de migrador, confira Gerenciando o acesso para uma migração do Azure DevOps.

Etapa 1: instalar o ADO2GH extension of the GitHub CLI

Se essa for sua primeira migração, você precisará instalar o ADO2GH extension of the GitHub CLI. Para obter mais informações sobre o 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-ado2gh. Você pode executar esse 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.

    Note

    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. Instalar o ADO2GH extension.

    Shell
    gh extension install github/gh-ado2gh
    

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

Etapa 2: atualizar o ADO2GH extension of the GitHub CLI

O ADO2GH extension of the GitHub CLI é atualizado semanalmente. Para garantir que você esteja usando a última versão, atualize a extensão.

Shell
gh extension upgrade github/gh-ado2gh

Etapa 3: Definir variáveis de ambiente

Para usar o ADO2GH extension para migrar para o GitHub Enterprise Cloud, você precisará 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 (classic) que será autenticado para a organização de destino no GitHub Enterprise Cloud, verificando se o token atende a todos os requisitos. Para saber mais, confira Gerenciando o acesso para uma migração do Azure DevOps.

  2. Crie e registre um personal access token que será autenticado para a organização de origem no Azure DevOps, verificando se esse token atende a todos os requisitos. Para saber mais, confira Gerenciando o acesso para uma migração do Azure DevOps.

  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 ADO_PAT para a organização de origem.

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

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

      Shell
      $env:GH_PAT="TOKEN"
      $env:ADO_PAT="TOKEN"
      
  4. Se você estiver migrando para o GitHub Enterprise Cloud com residência de dados, por questões de conveniência, defina uma variável de ambiente para a URL de API base da sua empresa. Por exemplo:

    Shell
    export TARGET_API_URL="https://api.octocorp.ghe.com"
    

    Você usará essa variável com a opção --target-api-url em comandos executados com a GitHub CLI.

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.

Note

Gerar 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 ado2gh generate-script.

Shell
gh ado2gh generate-script --ado-org SOURCE --github-org DESTINATION --output FILENAME

Espaços reservados

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.

Argumentos adicionais

ArgumentDescrição
--target-api-url TARGET-API-URLSe você estiver migrando para o GHE.com, adicione --target-api-url TARGET-API-URL, em que TARGET-API-URL é a URL da API base para o subdomínio da sua empresa. Por exemplo: https://api.octocorp.ghe.com.
--allAdicione outras funcionalidades ao script, como religação de pipelines, criação de equipes e configuração de integrações do Azure Boards.
--download-migration-logsBaixe o log de migração de cada repositório migrado. Para obter mais informações sobre os logs de migração, confira Como acessar os logs de migração do GitHub Enterprise Importer.

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.
  • Se você quiser alterar a visibilidade do novo repositório, atualize o valor do sinalizador --target-repo-visibility correspondente. Por padrão, o script define a mesma visibilidade que o repositório de origem.

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

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 ado2gh 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 ado2gh migrate-repo.

Shell
gh ado2gh migrate-repo --ado-org SOURCE --ado-team-project TEAM-PROJECT --ado-repo CURRENT-NAME --github-org DESTINATION --github-repo NEW-NAME

Note

Se você estiver migrando para o GHE.com, adicione --target-api-url TARGET-API-URL, em que TARGET-API-URL é a URL da API base para o subdomínio da sua empresa. Por exemplo: https://api.octocorp.ghe.com.

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
TEAM-PROJECTNome do projeto de equipe do repositório que você deseja migrar

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

Shell
gh ado2gh 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 saber mais, 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.