Are you sure you want to delete this access key?
title | intro | redirect_from | versions |
---|---|---|---|
Exporting migration data from GitHub.com | You can export migration data from an organization on {% data variables.product.prodname_dotcom_the_website %} by using the API to select repositories to migrate, then generating a migration archive that you can import into a {% data variables.product.prodname_ghe_server %} instance. | [/enterprise/admin/guides/migrations/exporting-migration-data-from-github-com /enterprise/admin/migrations/exporting-migration-data-from-githubcom /enterprise/admin/migrations/preparing-the-githubcom-source-organization /enterprise/admin/migrations/exporting-the-githubcom-organizations-repositories /enterprise/admin/guides/migrations/preparing-the-github-com-source-organization /enterprise/admin/guides/migrations/exporting-the-github-com-organization-s-repositories /enterprise/admin/user-management/exporting-migration-data-from-githubcom] | [{enterprise-server *}] |
Ensure that you have owner permissions on the source organization's repositories.
{% data reusables.enterprise_migrations.token-generation %} on {% data variables.product.prodname_dotcom_the_website %}.
{% data reusables.enterprise_migrations.make-a-list %}
{% data reusables.enterprise_migrations.fork-persistence %}
To export repository data from {% data variables.product.prodname_dotcom_the_website %}, use the Migrations API.
The Migrations API is currently in a preview period, which means that the endpoints and parameters may change in the future. To access the Migrations API, you must provide a custom media type in the Accept
header: application/vnd.github.wyandotte-preview+json
. The examples below include the custom media type.
{% data reusables.enterprise_migrations.locking-repositories %}
Notify members of your organization that you'll be performing a migration. The export can take several minutes, depending on the number of repositories being exported. The full migration including import may take several hours so we recommend doing a trial run in order to determine how long the full process will take. For more information, see "About Migrations."
Start a migration by sending a POST
request to the migration endpoint. You'll need:
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" -X POST \
-H "Accept: application/vnd.github.wyandotte-preview+json" \
-d'{"lock_repositories":true,"repositories":["<em>orgname</em>/<em>reponame</em>", "<em>orgname</em>/<em>reponame</em>"]}' \
https://api.github.com/orgs/<em>orgname</em>/migrations
lock_repositories
is set to true
. This is highly recommended.exclude_attachments: true
to the endpoint. {% data reusables.enterprise_migrations.exclude-file-attachments %} The final archive size must be less than 20 GB.This request returns a unique id
which represents your migration. You'll need it for subsequent calls to the Migrations API.
GET
request to the migration status endpoint to fetch the status of a migration. You'll need:
id
of the migration:
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" \
-H "Accept: application/vnd.github.wyandotte-preview+json" \
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>
A migration can be in one of the following states:
* pending
, which means the migration hasn't started yet.
* exporting
, which means the migration is in progress.
* exported
, which means the migration finished successfully.
* failed
, which means the migration failed.
After your migration has exported, download the migration archive by sending a GET
request to the migration download endpoint. You'll need:
id
of the migration:
curl -H "Accept: application/vnd.github.wyandotte-preview+json" \
-u <em>GITHUB_USERNAME</em>:<em>GITHUB_ACCESS_TOKEN</em> \
-L -o migration_archive.tar.gz \
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>/archive
The migration archive is automatically deleted after seven days. If you would prefer to delete it sooner, you can send a DELETE
request to the migration archive delete endpoint. You'll need:
id
of the migration:
curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" -X DELETE \
-H "Accept: application/vnd.github.wyandotte-preview+json" \
https://api.github.com/orgs/<em>orgname</em>/migrations/<em>id</em>/archive
{% data reusables.enterprise_migrations.ready-to-import-migrations %}
Press p or to see the previous file or, n or to see the next file
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?