Skip to main content

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 de origem da organização.

  2. Generate an access token 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

Nota: Relações de bifurcação não persistem após a migração.

Para exportar os dados do repositório 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

Note: Locking a repository prevents all write access to the repository. 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. Ao fazer a migração dos dados de um repositório que está em uso,

GitHub recomenda fortemente o bloqueio do repositório. Para obter mais informações, consulte "Sobre migrações".

  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, consulte "Sobre migrações".

  2. Comece a migração enviando uma solicitação de POST no ponto de extremidade da migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • Uma lista de repositórios que você pretende migrar:
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \
      https://api.github.com/orgs/orgname/migrations
    • Se quiser bloquear os repositórios antes da migração, verifique se lock_repositories está definido como true. Fazer isso é altamente recomendável.
    • Você pode excluir anexos de arquivos adicionando exclude_attachments: true ao 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 deve ser menor do que 20 GB.

    A solicitação retorna um id exclusivo 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 para o ponto de extremidade de status da migração para fazer fetch do status da migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • id exclusivo da migração.
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/orgname/migrations/id

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

    • pending, a migração ainda não começou;
    • exporting, a migração está em andamento;
    • exported, a migração foi concluída com êxito;
    • failed, houve falha na migração.
  4. Depois de exportar a migração, baixe o aquivo de migração enviando uma solicitação GET para o ponto de extremidade de download da migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • id exclusivo da migração.
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/orgname/migrations/id/archive
  5. O arquivo de migração é excluído automaticamente após sete dias. Para excluí-lo antes, você pode enviar a solicitação DELETE para o ponto de extremidade de exclusão do arquivo de migração. Você precisará do seguinte:

    • Token de acesso para autenticação;
    • id exclusivo da migração.
      curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \
      -X DELETE \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/orgname/migrations/id/archive
  6. Para preparar os dados de migração arquivados para fazer a importação para uma instância de GitHub Enterprise Server, consulte "Preparar-se para migrar dados para a sua empresa".