Skip to main content

Gerenciar o acesso para uma migração do Bitbucket Server

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 migrar um repositório do Bitbucket Server para o GitHub, você precisa de acesso suficiente à origem (sua instância do Bitbucket Server) e ao destino (uma organização no GitHub). Para ter acesso suficiente, você precisará de todas as seguintes coisas.

  • Uma função necessária na organização de destino em GitHub
  • Um personal access token que pode acessar a organização de destino no GitHub
    • 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 organização de destino usar o logon único do SAML para o GitHub, você precisará autorizar o personal access token para SSO.
  • No Bitbucket Server, as permissões necessárias e o acesso ao SFTP ou ao SMB

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

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".

Funções necessárias para o GitHub

Para a organização de destino no GitHub, funções diferentes são necessárias para tarefas diferentes.

A tabela a seguir lista quais tarefas podem ser executadas por qual função.

TarefaProprietário da organizaçãoMigrador
Como atribuir a função de migrador para migrações de repositório
Executar uma migração de repositório
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 no GitHub.

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 obter mais informações, confira "Como impor políticas para tokens de acesso pessoal na empresa".

TarefaProprietá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

Permissões necessárias para o Bitbucket Server

Para migrar do Bitbucket Server, você precisa do seguinte:

  • O nome de usuário e a senha de uma conta do Bitbucket Server que tenha permissões de administrador ou de superadministrador
  • Se as instâncias do Bitbucket Server forem executadas no Linux, o acesso ao SFTP na instância do Bitbucket Server (confira "Chaves SSH"). Em geral, se você puder acessar o servidor por meio do SSH, também poderá usar o SFTP.
  • Se a instância do Bitbucket Server for executada no Windows, o acesso de compartilhamento de arquivos (SMB) à instância do Bitbucket Server

Chaves SSH

Se a instância do Bitbucket Server for executada no Linux, você precisará usar uma chave SSH que atenda aos seguintes requisitos:

  • Não tem uma frase secreta
  • Usa uma das criptografias a seguir
    • aes256-ctr
    • 3des-cbc
    • aes128-cbc
    • aes192-cbc
    • aes256-cbc
    • blowfish-cbc
    • twofish-cbc
    • twofish192-cbc
    • twofish128-cbc
    • twofish256-cbc
    • arcfour
    • arcfour128
    • arcfour256
    • cast128-cbc
    • aes128-ctr
    • aes192-ctr

Se você receber um erro como cipher name aes256-ctr for openssh key file is not supported ao executar uma migração, sua chave privada SSH usará uma criptografia sem suporte. Para obter mais informações sobre como gerar uma chave privada compatível, confira "Solução de problemas de migração com o GitHub Enterprise Importer".

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 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, consulte "Sobre a função de migrador".

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

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

Para conceder a função de migrador usando a CLI, você deve ter instalado a BBS2GH extension of the GitHub CLI. Para obter mais informações, confira "Como migrar repositórios do GitHub Enterprise Server para o GitHub Enterprise Cloud".

  1. No GitHub, 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, consulte "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 bbs2gh 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 bbs2gh 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 o destino da migração usar uma lista de permissões de IP (o recurso de lista de permissões de IP de GitHub ou as restrições da lista de permissões de IP do provedor de identidade [IdP]), você precisará configurar listas de permissões de IP no GitHub.

  • 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 a organização 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.

Para obter mais informações, confira "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."

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 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