Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

exporting-migration-data-from-githubcom.md 5.7 KB

You have to be logged in to leave a comment. Sign In
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 *}]

Preparing the source organization on {% data variables.product.prodname_dotcom %}

  1. Ensure that you have owner permissions on the source organization's repositories.

  2. {% data reusables.enterprise_migrations.token-generation %} on {% data variables.product.prodname_dotcom_the_website %}.

{% data reusables.enterprise_migrations.make-a-list %}

Exporting the organization's repositories

{% 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.

Generating a migration archive

{% data reusables.enterprise_migrations.locking-repositories %}

  1. 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."

  2. Start a migration by sending a POST request to the migration endpoint. You'll need:

    • Your access token for authentication.
    • A list of the repositories you want to migrate:
      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
      
    • If you want to lock the repositories before migrating them, make sure lock_repositories is set to true. This is highly recommended.
    • You can exclude file attachments by passing 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.

  1. Send a GET request to the migration status endpoint to fetch the status of a migration. You'll need:
    • Your access token for authentication.
    • The unique 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.

  1. After your migration has exported, download the migration archive by sending a GET request to the migration download endpoint. You'll need:

    • Your access token for authentication.
    • The unique 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
      
  2. 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:

    • Your access token for authentication.
    • The unique 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 %}

Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...