Observação: atualmente, o GitHub Enterprise Importer está em versão beta pública e sujeito a alterações.
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
- Para garantir que você entendeu as limitações de suporte conhecidas do Importer, leia "Sobre o GitHub Enterprise Importer".
- We strongly recommend that you perform a trial run of your migration and complete your production migration soon after. To learn more about trial run best practices, see "Como se preparar para executar uma migração com o GitHub Enterprise Importer."
- 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, você precisa ser um proprietário da organização ou ter a função de migrador. Para obter mais informações, confira "Como conceder a função de migrador ao GitHub Enterprise Importer".
- Na conta empresarial de destino, você precisa ser um proprietário da empresa.
Etapa 0: Preparar-se para usar a API do GraphQL do GitHub
Para fazer consultas do GraphQL, você precisará escrever seus scripts ou usar um cliente HTTP como o Insomnia.
Para saber mais sobre como começar a usar a API do GraphQL do GitHub, incluindo como se autenticar, confira "Realizar chamadas com o GraphQL".
Etapa 1: Obter a ID da empresa do destino de migração
Como proprietário da empresa no GitHub.com, use a consulta a seguir para retornar a ID da conta empresarial da qual você deseja ser o proprietário da organização migrada. Você precisará da ID da empresa para identificar o destino de migração.
query(
$slug: String!
){
enterprise (slug: $slug)
{
slug
id
}
}
Variável da consulta | Descrição |
---|---|
slug | O campo de dados dinâmico da conta empresarial, que você pode identificar examinando a URL da sua empresa, https://github.com/enterprises/SLUG . |
Etapa 2: Iniciar a migração da sua organização
Quando você inicia uma migração, uma organização individual e os respectivos dados complementares são migrados para uma nova organização com a empresa de destino identificada por você.
mutation startOrganizationMigration (
$sourceOrgUrl: URI!,
$targetOrgName: String!,
$targetEnterpriseId: ID!,
$sourceAccessToken: String!,
$targetAccessToken: String!
){
startOrganizationMigration( input: {
sourceOrgUrl: $sourceOrgUrl,
targetOrgName: $targetOrgName,
targetEnterpriseId: $targetEnterpriseId,
sourceAccessToken: $sourceAccessToken,
targetAccessToken: $targetAccessToken
}) {
orgMigration {
id
}
}
}
Variável da consulta | Descrição |
---|---|
sourceOrgUrl | A URL da organização de origem, como https://github.com/octo-org . |
targetOrgName | O nome que você deseja dar à nova organização. Precisa ser exclusivo no GitHub.com. |
targetEnterpriseId | A ID da empresa na qual você deseja criar a organização, retornada pela etapa 2. |
sourceAccessToken | O personal access token da organização de origem. Para ver os requisitos, confira "Como gerenciar o acesso do GitHub Enterprise Importer". |
targetAccessToken | O personal access token da empresa de destino. |
Na próxima etapa, você usará a ID de migração retornada da mutação startOrganizationMigration
para verificar o status da migração.
Etapa 3: Verificar o status da migração
Para detectar falhas de migração e garantir que a migração esteja funcionando, consulte as OrganizationMigration
s que você criou para ver o status de migração usando a consulta getMigration
.
A consulta será retornada com um status para que você saiba se a migração é queued
, in progress
, failed
ou completed
, além de informações sobre quantos repositórios estão esperando para serem migrados. Em caso de falha na migração, o Importer fornecerá um motivo para a falha.
query (
$id: ID!
){
node( id: $id ) {
... on OrganizationMigration {
id
sourceOrgUrl
targetOrgName
state
failure_reason
remaining_repositories_count
total_repositories_count
}
}
}
Variável da consulta | Descrição |
---|---|
id | A id da migração. |
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".
-
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
.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. To make sure you're using the latest version, update the extension.
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, crie personal access tokens que possam acessar a organização de origem e a empresa de destino e defina os personal access tokens como variáveis de ambiente.
-
Crie e registre um personal access token que atenda a todos os requisitos para autenticação da organização de origem para as migrações da organização. Para obter mais informações, confira "Como gerenciar o acesso do GitHub Enterprise Importer".
-
Crie e registre um personal access token que atenda a todos os requisitos para autenticação da empresa de destino para as migrações da organização.
-
Defina variáveis de ambiente para os personal access tokens, substituindo TOKEN nos comandos abaixo pelos personal access tokens que você registrou acima. Use
GH_PAT
para a empresa de destino eGH_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: Migrar sua organização
Para migrar uma organização, use o comando gh gei migrate-org
.
gh gei migrate-org --github-source-org SOURCE --github-target-org DESTINATION --github-target-enterprise ENTERPRISE
Substitua os espaços reservados no comando acima pelos valores a seguir.
Espaço reservado | Valor |
----------- | ----- | SOURCE | Nome da organização de origem DESTINO | O nome que você deseja dar à nova organização. Precisa ser exclusivo no GitHub.com.
ENTERPRISE | O campo de dados dinâmico da empresa de destino, que você pode identificar examinando a URL da sua conta empresarial, https://github.com/enterprises/SLUG
.
Etapa 5: Validar a migração e verificar o log de erros
Após a conclusão da migração, recomendamos que você verifique o repositório do log de migração. Para obter mais informações, confira "Como acessar os logs de migração do GitHub Enterprise Importer".
Por fim, recomendamos que você faça uma verificação de integridade da sua organização e dos repositórios migrados.