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.
Tarefa | Proprietário da organização | Migrador |
---|---|---|
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".
Tarefa | Proprietário da organização | Migrador |
---|---|---|
Como atribuir a função de migrador para migrações de repositório | admin:org | |
Como executar uma migração de repositório (organização de destino) | repo , admin:org , workflow | repo , read:org , workflow |
Como baixar um log de migração | repo , admin:org , workflow | repo , read:org , workflow |
Como recuperar manequins | admin: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"
- "Como conceder a função de migrador com 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".
-
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".
-
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"
export GH_PAT="TOKEN"
-
Se você estiver usando o PowerShell, use o comando
$env
.Shell $env:GH_PAT="TOKEN"
$env:GH_PAT="TOKEN"
-
-
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 porUSER
ouTEAM
.Shell gh bbs2gh grant-migrator-role --github-org ORGANIZATION --actor ACTOR --actor-type TYPE
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 consulta | Descrição |
---|---|
organizationId | A ownerId (ou ID da organização) para sua organização, da consulta GetOrgInfo . |
actor | O nome da equipe ou do usuário ao qual você deseja atribuir a função de migração. |
actor_type | Especifique 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
- Verifique se você tem uma função suficiente para a tarefa que deseja concluir. Para obter mais informações, confira "Funções necessárias".
- 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".
- 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.