Esta versão do GitHub Enterprise foi descontinuada em 2021-09-23. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, melhorar a segurança e novos recursos, upgrade to the latest version of GitHub Enterprise. Para ajuda com a atualização, contact GitHub Enterprise support.

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. Para acessar a API de Migrações, você deve informar um tipo de mídia personalizado no cabeçalho Accept: application/vnd.github.wyandotte-preview+json. Os exemplos abaixo incluem o tipo de mídia personalizado.

Gerar arquivos de migração

Aviso: Bloquear um repositório impede todos os acessos de leitura ou 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. 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.wyandotte-preview+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.wyandotte-preview+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 "Accept: application/vnd.github.wyandotte-preview+json" \
      -u GITHUB_USERNAME:GITHUB_ACCESS_TOKEN \
      -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.wyandotte-preview+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".