Skip to main content

Enterprise Server 3.15 está disponível no momento como versão release candidate.

Exportar dados de migração do GitHub.com

Você pode exportar dados de migração de uma organização no GitHub.com usando a API para selecionar repositórios a serem migrados e, em seguida, gerando um arquivo de migração que pode ser importado em uma instância do GitHub Enterprise Server.

Preparar a organização de origem em GitHub

  1. Verifique se você tem permissões de proprietário nos repositórios da organização de origem.

  2. Gerar um token de acesso com os escopos repo e admin:org no GitHub.com.

  3. Para minimizar o tempo de inatividade, faça uma lista de repositórios que você deseja exportar a partir da instância de origem. É possível adicionar vários repositórios a uma exportação de uma vez usando um arquivo de texto que lista a URL de cada repositório em uma linha separada.

Exportar repositórios da organização

Observação: as relações de fork não são persistentes após uma migração.

Para exportar dados de repositório por meio do GitHub.com, use a API de Migrações.

No momento, a API de Migrações está em período de exibição. Ou seja, os pontos de extremidade e os parâmetros podem mudar no futuro.

Gerar arquivos de migração

Observação: bloquear um repositório impede todo o acesso de gravação ao repositório. Não é possível associar novas equipes ou colaboradores a um repositório bloqueado.

Se você estiver realizando uma execução de teste, você não precisará bloquear o repositório. Quando você migra dados de um repositório que está em uso, o GitHub recomenda o bloqueio do repositório. Para obter mais informações, confira "Sobre o ghe-migrator".

  1. Informe os integrantes da organização que você fará uma migração. Dependendo do número de repositórios exportados, a exportação pode levar vários minutos. A migração completa (com importação) pode levar horas. Portanto, é recomendável fazer uma avaliação para determinar a duração do processo completo. Para obter mais informações, confira "Sobre o ghe-migrator".

  2. Inicie uma migração enviando uma solicitação POST ao ponto de extremidade da migração. Você precisará de:

    • Token de acesso para autenticação;

    • Uma lista dos repositórios que você deseja migrar:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \
      https://api.github.com/orgs/ORG_NAME/migrations
      
    • Caso deseje bloquear os repositórios antes de migrá-los, defina lock_repositories como true. Fazer isso é altamente recomendável.

    • Você pode excluir anexos de arquivo transmitindo exclude_attachments: true para o ponto de extremidade. Anexos de arquivos podem ser grandes e gerar um volume desnecessário no seu arquivo de migração final. O tamanho do arquivo final precisa ter menos de 20 GB.

    Essa solicitação retorna uma id exclusiva que representa a migração. Você precisará dele em ações subsequentes que envolvam a API de Migrações.

  3. Envie uma solicitação GET ao ponto de extremidade de status da migração para buscar o status de uma migração. Você precisará de:

    • Token de acesso para autenticação;

    • A id exclusiva da migração:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID
      

    Os estados das migrações são os seguintes:

    • pending, que significa que a migração ainda não foi iniciada.
    • exporting, que significa que a migração está em andamento.
    • exported, que significa que a migração foi concluída com êxito.
    • failed, que significa que a migração falhou.
  4. Depois que a migração for exportada, baixe o arquivo de migração enviando uma solicitação GET ao ponto de extremidade de download da migração. Você precisará de:

    • Token de acesso para autenticação;

    • A id exclusiva da migração:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  5. O arquivo de migração é excluído automaticamente após sete dias. Se preferir excluí-lo mais cedo, envie uma solicitação DELETE ao ponto de extremidade de exclusão do arquivo de migração. Você precisará de:

    • Token de acesso para autenticação;

    • A id exclusiva da migração:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X DELETE \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  6. Para preparar os dados de migração arquivados para importação para uma instância do GitHub Enterprise Server, confira "Como migrar dados para o GitHub Enterprise Server".