Skip to main content

Gerenciando o acesso para uma migração entre produtos GitHub

Antes de usar o GitHub Enterprise Importer, verifique se você tem acesso apropriado à origem e ao destino da migração.

Sobre o acesso necessário do GitHub Enterprise Importer

Para proteger seus dados, o GitHub impõe requisitos de acesso específicos para o uso do GitHub Enterprise Importer. Esses requisitos variam de acordo com a tarefa que você está tentando executar. Para evitar erros, leia este artigo com atenção e verifique se você atende a todos os requisitos da tarefa que deseja concluir.

Para executar uma migração, você precisa ter acesso suficiente à origem e ao destino da migração.

Qual é a origem e o destino?

A origem é a organização em GitHub.com ou GitHub Enterprise Server da qual você quer migrar.

O destino pode ser:

  • Uma conta da organização no GitHub.com ou no GHE.com, caso você esteja migrando repositórios
  • Uma conta empresarial no GitHub.com ou no GHE.com, caso você esteja migrando uma organização inteira

De qual acesso é preciso?

Para ter acesso suficiente à origem e ao destino da migração, você precisa dos itens a seguir.

  • Uma função necessária na conta da organização ou empresa
  • Um personal access token que pode acessar a conta da organização ou da empresa
    • O personal access token precisa ter todos os escopos necessários, que dependem da sua função e da tarefa que você deseja concluir.
    • Se a origem ou o destino usar o logon único do SAML para o GitHub.com, você precisará autorizar o personal access token para SSO.

Além disso, caso você use listas de permissões de IP com a origem ou o destino, talvez seja necessário configurar as listas de permissões para permitir o acesso do GitHub Enterprise Importer.

Se você estiver migrando do GitHub Enterprise Server 3.8 ou superior pela primeira vez, você também precisa de alguém com acesso ao Console de Gerenciamento para configurar o armazenamento de blobs para sua instância do GitHub Enterprise Server.

Sobre a função de migrador

Para remover a necessidade de os proprietários da organização concluírem as migrações, o GitHub inclui uma função distinta para usar o GitHub Enterprise Importer.

A concessão da função de migrador permite designar outras equipes ou pessoas para lidar com as migrações.

  • Você só pode conceder a função de migrador para uma organização no GitHub.com ou no GHE.com.
  • Você pode conceder a função de migrador a um usuário individual ou a uma equipe. Recomendamos fortemente que você atribua a função de migrador a uma equipe. Em seguida, você poderá personalizar ainda mais quem pode executar uma migração ajustando a associação à equipe. Consulte "Adicionar integrantes da organização a uma equipe" ou "Remover integrantes da organização de uma equipe".
  • O migrador precisa usar um personal access token que atenda a todos os requisitos para executar migrações.

Warning

Ao conceder a função de migrador em uma organização a um usuário ou equipe, você está concedendo a ele a capacidade de importar ou exportar qualquer repositório nessa organização.

Para conceder a função de migrador, consulte "Como conceder a função de migrador".

Note

  • Se você estiver migrando um repositório entre duas organizações, poderá conceder a função de migrador à mesma pessoa ou equipe para as duas organizações, mas precisará conceder cada uma separadamente.
  • Não é possível conceder a função de migrador a contas corporativas. Portanto, você só poderá executar uma migração da organização se for proprietário da empresa de destino. No entanto, você pode conceder a função de migrador a esse proprietário da empresa para a organização de origem.
  • A GitHub CLI não dá suporte à concessão da função de migrador para organizações do GitHub Enterprise Server, ou seja, você precisa ser um proprietário da organização de origem para migrar repositórios do GitHub Enterprise Server.

Funções necessárias

Para a origem e o destino da migração, são necessárias funções diferentes para tarefas diferentes.

Organização de origem

A tabela a seguir lista quais funções podem executar quais tarefas.

TarefaProprietário da organizaçãoMigrador
Executar uma migração
Como atribuir a função de migrador para migrações de repositório

Organização ou empresa de destino

A tabela a seguir lista quais funções podem executar quais tarefas.

TarefaProprietário corporativoProprietário da organizaçãoMigrador
Migrando organizações para uma empresa
Como atribuir a função de migrador para migrações de repositório
Migrando repositórios para uma organização
Como baixar um log de migração
Como recuperar manequins

Escopos necessários para os personal access tokens

Para executar uma migração, você precisa de um personal access token que possa acessar a organização de destino (para as migrações de repositório) ou a conta corporativa (para as migrações da organização). Você também precisa de outro personal access token que possa acessar a organização de origem.

Para outras tarefas, como baixar um log de migração, você só precisa de um personal access token que possa acessar o destino da operação.

Os escopos necessários para o GitHub personal access token (classic) dependem da sua função e da tarefa que você deseja concluir.

Note

Você só pode usar um personal access token (classic), não um fine-grained personal access token. Isso significa que você não pode usar o GitHub Enterprise Importer se sua organização usa a política "Restrict personal access tokens (classic) from accessing your organizations". Para saber mais, confira Como impor políticas para tokens de acesso pessoal na empresa.

TarefaProprietário corporativoProprietário da organizaçãoMigrador
Como atribuir a função de migrador para migrações de repositórioadmin:org
Como executar uma migração de repositório (organização de destino)repo, admin:org, workflowrepo, read:org, workflow
Como baixar um log de migraçãorepo, admin:org, workflowrepo, read:org, workflow
Como recuperar manequinsadmin:org
Como executar uma migração (organização de origem)admin:org, repoadmin:org, repo
Como executar uma migração de organização (empresa de destino)read:enterprise, admin:org, repo, workflow

Concedendo a função de migrador

Para permitir que alguém que não seja um proprietário da organização execute uma migração de repositório ou faça download de logs de migração, você pode conceder a função de migrador a um usuário ou equipe. Para obter mais informações sobre a função de migrador, confira Sobre a função de migrador.

Você pode conceder a função de migrador usando o GEI extension of the GitHub CLI ou a API do GraphQL.

Como conceder a função de migrador com a GEI extension

Para conceder a função de migrador usando a CLI, você deve ter instalado o GEI extension of the GitHub CLI. Para saber mais, confira Como migrar repositórios do GitHub.com para o GitHub Enterprise Cloud.

  1. No GitHub.com, crie e registre um personal access token que atenda a todos os requisitos para conceder a função de migrador. Para obter mais informações, confira Como criar um personal access token para GitHub Enterprise Importer.

  2. Defina o personal access token como uma variável de ambiente, substituindo TOKEN nos comandos abaixo pelos personal access token que você registrou acima.

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

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

      Shell
      $env:GH_PAT="TOKEN"
      
  3. Use o comando gh gei grant-migrator-role, substituindo ORGANIZATION pela organização à qual você deseja conceder a função de migrador, ACTOR pelo nome do usuário ou da equipe e TYPE por USER ou TEAM.

    Shell
    gh gei grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
    

    Note

    Se você estiver concedendo a função de migrador para o GHE.com, também precisará incluir a URL de API de destino para o subdomínio da sua empresa. Por exemplo: --target-api-url https://api.octocorp.ghe.com.

Como conceder a função de migrador com a API do GraphQL

Use a mutação grantMigratorRole do GraphQL para atribuir a função de migrador e a mutação revokeMigratorRole para revogar a função de migrador.

Você precisa usar um PAT (personal access token) que atenda a todos os requisitos de acesso. Para obter mais informações, consulte "Escopos necessários para os personal access tokens".

Mutação grantMigratorRole

Essa mutação do GraphQL define a função de migração.

mutation grantMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  grantMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}
Variável da consultaDescrição
organizationIdA ownerId (ou ID da organização) para sua organização, da consulta GetOrgInfo.
actorO nome da equipe ou do usuário ao qual você deseja atribuir a função de migração.
actor_typeEspecifique se o migrador é um USER ou uma TEAM.

Mutação revokeMigratorRole

Essa mutação remove a função de migrador.

mutation revokeMigratorRole (
  $organizationId: ID!,
  $actor: String!,
  $actor_type: ActorType!
) {
  revokeMigratorRole( input: {
    organizationId: $organizationId,
    actor: $actor,
    actorType: $actor_type
  })
   { success }
}

Como criar um personal access token para o GitHub Enterprise Importer

  1. Verifique se você tem uma função suficiente para a tarefa que deseja concluir. Para obter mais informações, confira "Funções necessárias".
  2. Crie um personal access token (classic), lembrando-se de conceder todos os escopos necessários para a tarefa que deseja concluir. Você só pode usar um personal access token (classic), não um fine-grained personal access token. Para obter mais informações, "Gerenciar seus tokens de acesso pessoal" e "Escopos necessários para o personal access token".
  3. Se o logon único do SAML for imposto para as organizações que você precisa acessar, autorize o personal access token para SSO. Para obter mais informações, confira "Autorizar o uso de um token de acesso pessoal para uso com logon único SAML".

Como configurar listas de permissões de IP para migrações

Se a origem ou o destino da sua migração usa uma lista de permissões de IP, o recurso de lista de permissões de IP (do GitHub ou as restrições de lista de permissões de IP do IdP [provedor de identidade], como o CAP do Azure), você precisa configurar listas de permissões de IP no GitHub. Consulte "Gerenciar endereços IP permitidos para sua organização" e "Como restringir o tráfego de rede para sua empresa com uma lista de permissões de IP".

  • Se você usar o recurso de lista de permissões de IP do GitHub, precisará adicionar os intervalos de IP do GitHub abaixo à lista de permissões para as organizações de origem e/ou de destino.
  • Se você usar a lista de permissões de IP do IdP para restringir o acesso à sua empresa no GitHub, desabilite essas restrições nas configurações da conta corporativa até que a migração seja concluída.

Os intervalos de IP podem variar, dependendo se o destino da migração é o GitHub.com ou o GHE.com.

Se a origem da migração for o GitHub Enterprise Server, você não precisará adicionar nenhum intervalo de IP do GitHub à configuração do firewall ou à lista de permissões de IP no sua instância do GitHub Enterprise Server. No entanto, dependendo da configuração do provedor de armazenamento de blobs, talvez seja necessário atualizar a configuração do provedor de armazenamento de blobs para permitir o acesso aos intervalos de IP do GitHub abaixo.

Intervalos de IP do GitHub.com

Você precisará adicionar os seguintes intervalos de IP às listas de IPs permitidos:

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 40.71.233.224/28
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 20.125.12.8/29 (ativo a partir das 00h00min UTC de 8 de novembro de 2023)

Você pode obter uma lista atualizada de intervalos de IP usados pelo GitHub Enterprise Importer a qualuqer momento com o ponto de extremidade "Obter metainformações do GitHub da API REST.

A chave github_enterprise_importer na resposta contém uma lista de intervalos de IP usados para as migrações.

Para obter mais informações, confira "Pontos de extremidade da API REST para metadados".

Intervalos de IP do GHE.com

Você precisará adicionar os seguintes intervalos de IP às listas de IPs permitidos:

  • 192.30.252.0/22
  • 185.199.108.0/22
  • 140.82.112.0/20
  • 143.55.64.0/20
  • 2a0a:a440::/29
  • 2606:50c0::/32
  • 4.231.155.80/29
  • 4.225.9.96/29
  • 51.12.144.32/29
  • 20.199.1.232/29
  • 51.12.152.184/29
  • 20.199.6.80/29
  • 51.12.152.240/29
  • 20.19.101.136/29
  • 51.12.252.16/28
  • 74.241.131.48/28
  • 20.240.211.176/28
  • 108.143.221.96/28
  • 20.61.46.32/28
  • 20.224.62.160/28

Além disso, se você estiver migrando do GitHub Enterprise Server e usando uma conta de armazenamento de blobs com regras de firewall:

  • Você precisa permitir o acesso aos intervalos de IP de saída para o GHE.com. Confira "Detalhes de rede do GHE.com".
  • Caso você esteja usando o Armazenamento de Blobs do Azure, talvez seja necessário fazer uma configuração adicional. Entre em contato com o Suporte do GitHub.

Leitura adicional