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.
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
.
-
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
. -
Instalar o ADO2GH extension.
Shell gh extension install github/gh-ado2gh
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.
gh extension upgrade github/gh-ado2gh
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.
-
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.
-
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.
-
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 eADO_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"
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"
$env:GH_PAT="TOKEN" $env:ADO_PAT="TOKEN"
-
-
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"
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
.
gh ado2gh generate-script --ado-org SOURCE --github-org DESTINATION --output FILENAME
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 reservado | Valor |
---|---|
SOURCE | Nome da organização de origem |
DESTINATION | Nome da organização de destino |
FILENAME | Um 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
Argument | Descrição |
---|---|
--target-api-url TARGET-API-URL | 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:/ . |
--all | Adicione outras funcionalidades ao script, como religação de pipelines, criação de equipes e configuração de integrações do Azure Boards. |
--download-migration-logs | Baixe 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
./FILENAME
-
Se estiver usando o PowerShell, use
.\
.Shell .\FILENAME
.\FILENAME
Migrar um repositório individual
Para migrar um repositório individual, use o comando gh ado2gh migrate-repo
.
gh ado2gh migrate-repo --ado-org SOURCE --ado-team-project TEAM-PROJECT --ado-repo CURRENT-NAME --github-org DESTINATION --github-repo NEW-NAME
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 reservado | Valor |
---|---|
SOURCE | Nome da organização de origem |
CURRENT-NAME | O nome do repositório que você deseja migrar |
DESTINATION | Nome da organização de destino |
NEW-NAME | O nome que você deseja dar ao repositório migrado |
TEAM-PROJECT | Nome 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
.
gh ado2gh abort-migration --migration-id MIGRATION-ID
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.