Esta versão do GitHub Enterprise foi descontinuada em 2021-06-09. 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

Note: Locking a repository prevents all read or write access to the repository. You cannot associate new teams or collaborators with a locked repository. If you're performing a trial run, you do not need to lock the repository. When you migrate data from a repository that's in use,

GitHub strongly recommends locking the repository. 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".