Exportar os repositórios da organização do GitHub.com
Usando a API de Migrações, é possível exportar os repositórios de uma organização. Após a exportação dos repositórios, você vai baixar o arquivo de migração usado para o processo de importação.
Note: Fork relationships do not persist after a migration.
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 users from pushing to the repository or modifying a repository's resources, like issues, labels, milestones, wikis, and comments. New teams and collaborators can't be associated with a locked repository.
If you're performing a trial run, you don't need to lock repositories. Otherwise, it's highly recommended. Para obter mais informações, consulte "Sobre migrações".
- 
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". 
- 
Comece a migração fazendo POSTno 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_repositoriesestá definido comotrue. Fazer isso é altamente recomendável.
- 
Você pode excluir anexos de arquivos adicionando exclude_attachments: trueao 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 5 GB.A solicitação retorna um idexclusivo que representa a migração. Você precisará dele em ações subsequentes que envolvam a API de Migrações.
 
- 
- 
Envie uma solicitação GETpara 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;
- 
idexclusivo 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.
 
- 
Depois de exportar a migração, baixe o aquivo de migração enviando uma solicitação GETpara o ponto de extremidade de download da migração. Você precisará do seguinte:- Token de acesso para autenticação;
- 
idexclusivo 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
 
- 
O arquivo de migração é excluído automaticamente após sete dias. Para excluí-lo antes, você pode enviar a solicitação DELETEpara o ponto de extremidade de exclusão do arquivo de migração. Você precisará do seguinte:- Token de acesso para autenticação;
- 
idexclusivo 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
 
- 
To import the archived migration data to a GitHub Enterprise Server instance, see "Importing migration data to GitHub Enterprise Server".