openapi: 3.2.0
info:
title: Github Migrations API
version: 1.1.4
contact:
name: Support
url: https://support.github.com/contact?tags=dotcom-rest-api
license:
name: MIT
url: https://spdx.org/licenses/MIT
termsOfService: https://docs.github.com/articles/github-terms-of-service
description: 'Operations tagged Migrations across 2 of this provider''s published API definitions: github-openapi.yml, github-organizations-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
tags:
- name: Migrations
description: Move projects to or from GitHub.
paths:
/orgs/{org}/migrations:
get:
summary: GitHub List Organization Migrations
description: 'Lists the most recent migrations, including both exports (which can be started through the REST API) and imports (which cannot be started using the REST API).
A list of `repositories` is only returned for export migrations.'
tags:
- Migrations
operationId: migrations/list-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#list-organization-migrations
parameters:
- $ref: '#/components/parameters/org'
- $ref: '#/components/parameters/per-page'
- $ref: '#/components/parameters/page'
- name: exclude
description: Exclude attributes from the API response to improve performance
in: query
schema:
type: array
items:
description: Allowed values that can be passed to the exclude param.
enum:
- repositories
example: repositories
type: string
responses:
'200':
description: Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/migration'
examples:
default:
$ref: '#/components/examples/migration-with-short-org-items'
headers:
Link:
$ref: '#/components/headers/link'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: GitHub Start an Organization Migration
description: 'Initiates the generation of a migration archive.
Before you can use this endpoint, you must configure a blob storage provider in the "Migrations" section in the Management Console. For more details, see "[Migrating repositories from GitHub Enterprise Server to GitHub Enterprise Cloud](https://docs.github.com/enterprise-server@3.9/migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-github-enterprise-server-to-github-enterprise-cloud#step-4-set-up-blob-storage)."'
tags:
- Migrations
operationId: migrations/start-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#start-an-organization-migration
parameters:
- $ref: '#/components/parameters/org'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
repositories:
type: array
description: A list of arrays indicating which repositories should be migrated.
items:
type: string
lock_repositories:
type: boolean
example: true
description: Indicates whether repositories should be locked (to prevent manipulation) while migrating data.
default: false
exclude_metadata:
type: boolean
description: Indicates whether metadata should be excluded and only git source should be included for the migration.
default: false
exclude_git_data:
type: boolean
description: Indicates whether the repository git data should be excluded from the migration.
default: false
exclude_attachments:
type: boolean
example: true
description: Indicates whether attachments should be excluded from the migration (to reduce migration archive file size).
default: false
exclude_releases:
type: boolean
example: true
description: Indicates whether releases should be excluded from the migration (to reduce migration archive file size).
default: false
exclude_owner_projects:
type: boolean
example: true
description: Indicates whether projects owned by the organization or users should be excluded. from the migration.
default: false
org_metadata_only:
type: boolean
example: true
description: Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags).
default: false
exclude:
type: array
description: Exclude related items from being returned in the response in order to improve performance of the request.
items:
type: string
enum:
- repositories
required:
- repositories
examples:
default:
value:
repositories:
- github/Hello-World
lock_repositories: true
responses:
'201':
description: Response
content:
application/json:
schema:
$ref: '#/components/schemas/migration'
examples:
default:
$ref: '#/components/examples/migration-with-short-org-2'
'404':
$ref: '#/components/responses/not_found'
'422':
$ref: '#/components/responses/validation_failed'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/orgs/{org}/migrations/{migration_id}:
get:
summary: GitHub Get an Organization Migration Status
description: 'Fetches the status of a migration.
The `state` of a migration can be one of the following values:
* `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.'
tags:
- Migrations
operationId: migrations/get-status-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#get-an-organization-migration-status
parameters:
- $ref: '#/components/parameters/org'
- $ref: '#/components/parameters/migration-id'
- name: exclude
description: Exclude attributes from the API response to improve performance
in: query
schema:
type: array
items:
description: Allowed values that can be passed to the exclude param.
enum:
- repositories
example: repositories
type: string
responses:
'200':
description: '* `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.'
content:
application/json:
schema:
$ref: '#/components/schemas/migration'
examples:
default:
$ref: '#/components/examples/migration-with-short-org'
'404':
$ref: '#/components/responses/not_found'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/orgs/{org}/migrations/{migration_id}/archive:
get:
summary: GitHub Download an Organization Migration Archive
description: Fetches the URL to a migration archive.
tags:
- Migrations
operationId: migrations/download-archive-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#download-an-organization-migration-archive
parameters:
- $ref: '#/components/parameters/org'
- $ref: '#/components/parameters/migration-id'
responses:
'302':
description: Response
'404':
$ref: '#/components/responses/not_found'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
summary: GitHub Delete an Organization Migration Archive
description: Deletes a previous migration archive. Migration archives are automatically deleted after seven days.
tags:
- Migrations
operationId: migrations/delete-archive-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#delete-an-organization-migration-archive
parameters:
- $ref: '#/components/parameters/org'
- $ref: '#/components/parameters/migration-id'
responses:
'204':
description: Response
'404':
$ref: '#/components/responses/not_found'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock:
delete:
summary: GitHub Unlock an Organization Repository
description: Unlocks a repository that was locked for migration. You should unlock each migrated repository and [delete them](https://docs.github.com/enterprise-server@3.9/rest/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data.
tags:
- Migrations
operationId: migrations/unlock-repo-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#unlock-an-organization-repository
parameters:
- $ref: '#/components/parameters/org'
- $ref: '#/components/parameters/migration-id'
- $ref: '#/components/parameters/repo-name'
responses:
'204':
description: Response
'404':
$ref: '#/components/responses/not_found'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/orgs/{org}/migrations/{migration_id}/repositories:
get:
summary: GitHub List Repositories in an Organization Migration
description: List all the repositories for this organization migration.
tags:
- Migrations
operationId: migrations/list-repos-for-org
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/orgs#list-repositories-in-an-organization-migration
parameters:
- $ref: '#/components/parameters/org'
- $ref: '#/components/parameters/migration-id'
- $ref: '#/components/parameters/per-page'
- $ref: '#/components/parameters/page'
responses:
'200':
description: Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/minimal-repository'
examples:
default:
$ref: '#/components/examples/minimal-repository-items'
headers:
Link:
$ref: '#/components/headers/link'
'404':
$ref: '#/components/responses/not_found'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: orgs
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/user/migrations:
get:
summary: GitHub List User Migrations
description: Lists all migrations a user has started.
tags:
- Migrations
operationId: migrations/list-for-authenticated-user
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/users#list-user-migrations
parameters:
- $ref: '#/components/parameters/per-page'
- $ref: '#/components/parameters/page'
responses:
'200':
description: Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/migration'
examples:
default:
$ref: '#/components/examples/migration-items'
headers:
Link:
$ref: '#/components/headers/link'
'304':
$ref: '#/components/responses/not_modified'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: users
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
summary: GitHub Start a User Migration
description: Initiates the generation of a user migration archive.
tags:
- Migrations
operationId: migrations/start-for-authenticated-user
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/users#start-a-user-migration
parameters: []
requestBody:
required: true
content:
application/json:
schema:
properties:
lock_repositories:
description: Lock the repositories being migrated at the start of the migration
example: true
readOnly: false
type: boolean
exclude_metadata:
description: Indicates whether metadata should be excluded and only git source should be included for the migration.
example: true
readOnly: false
type: boolean
exclude_git_data:
description: Indicates whether the repository git data should be excluded from the migration.
example: true
readOnly: false
type: boolean
exclude_attachments:
description: Do not include attachments in the migration
example: true
readOnly: false
type: boolean
exclude_releases:
description: Do not include releases in the migration
example: true
readOnly: false
type: boolean
exclude_owner_projects:
description: Indicates whether projects owned by the organization or users should be excluded.
example: true
readOnly: false
type: boolean
org_metadata_only:
type: boolean
example: true
description: Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags).
default: false
exclude:
description: Exclude attributes from the API response to improve performance
example:
- repositories
readOnly: false
type: array
items:
description: Allowed values that can be passed to the exclude param.
enum:
- repositories
example: repositories
type: string
repositories:
type: array
items:
description: Repository path, owner and name
example: acme/widgets
type: string
required:
- repositories
type: object
examples:
default:
value:
repositories:
- octocat/Hello-World
lock_repositories: true
responses:
'201':
description: Response
content:
application/json:
schema:
$ref: '#/components/schemas/migration'
examples:
default:
$ref: '#/components/examples/migration-2'
'304':
$ref: '#/components/responses/not_modified'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
'422':
$ref: '#/components/responses/validation_failed'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: users
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/user/migrations/{migration_id}/archive:
get:
summary: GitHub Download a User Migration Archive
description: 'Fetches the URL to download the migration archive as a `tar.gz` file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:
* attachments
* bases
* commit\_comments
* issue\_comments
* issue\_events
* issues
* milestones
* organizations
* projects
* protected\_branches
* pull\_request\_reviews
* pull\_requests
* releases
* repositories
* review\_comments
* schema
* users
The archive will also contain an `attachments` directory that includes all attachment files uploaded to GitHub.com and a `repositories` directory that contains the repository''s Git data.'
tags:
- Migrations
operationId: migrations/get-archive-for-authenticated-user
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/users#download-a-user-migration-archive
parameters:
- $ref: '#/components/parameters/migration-id'
responses:
'302':
description: Response
'304':
$ref: '#/components/responses/not_modified'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: users
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/user/migrations/{migration_id}/repositories:
get:
summary: GitHub List Repositories for a User Migration
description: Lists all the repositories for this user migration.
tags:
- Migrations
operationId: migrations/list-repos-for-authenticated-user
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/migrations/users#list-repositories-for-a-user-migration
parameters:
- $ref: '#/components/parameters/migration-id'
- $ref: '#/components/parameters/per-page'
- $ref: '#/components/parameters/page'
responses:
'200':
description: Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/minimal-repository'
examples:
default:
$ref: '#/components/examples/minimal-repository-items'
headers:
Link:
$ref: '#/components/headers/link'
'404':
$ref: '#/components/responses/not_found'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: migrations
subcategory: users
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
/orgs/{org}/docker/conflicts:
get:
summary: GitHub Get List of Conflicting Packages During Docker Migration for Organization
description: 'Lists all packages that are in a specific organization, are readable by the requesting user, and that encountered a conflict during a Docker migration.
OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint.'
tags:
- Migrations
operationId: getListOfConflictingPackagesDuringDockerMigrationForOrganization
externalDocs:
description: API method documentation
url: https://docs.github.com/enterprise-server@3.9/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization
parameters:
- $ref: '#/components/parameters/org'
responses:
'200':
description: Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/package'
examples:
default:
$ref: '#/components/examples/packages-for-org'
'401':
$ref: '#/components/responses/requires_authentication'
'403':
$ref: '#/components/responses/forbidden'
x-github:
githubCloudOnly: false
enabledForGitHubApps: false
category: packages
subcategory: packages
security:
- bearerHttpAuthentication: []
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
servers:
- url: '{protocol}://{hostname}/api/v3'
variables:
hostname:
description: Self-hosted Enterprise Server hostname
default: HOSTNAME
protocol:
description: Self-hosted Enterprise Server protocol
default: http
components:
schemas:
code-of-conduct:
title: Code Of Conduct
description: Code Of Conduct
type: object
properties:
key:
type: string
example: contributor_covenant
name:
type: string
example: Contributor Covenant
url:
type: string
format: uri
example: https://api.github.com/codes_of_conduct/contributor_covenant
body:
type: string
example: "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment include:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response\n to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address,\n posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and\nclarified by project maintainers.\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at [EMAIL]. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4/).\n"
html_url:
type:
- string
- 'null'
format: uri
example: https://api.github.com/repos/octocat/Hello-World
required:
- url
- html_url
- key
- name
minimal-repository:
title: Minimal Repository
description: Minimal Repository
type: object
properties:
id:
type: integer
example: 1296269
node_id:
type: string
example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5
name:
type: string
example: Hello-World
full_name:
type: string
example: octocat/Hello-World
owner:
$ref: '#/components/schemas/simple-user'
private:
type: boolean
example: true
html_url:
type: string
format: uri
example: https://github.com/octocat/Hello-World
description:
type:
- string
- 'null'
example: This your first repo!
fork:
type: boolean
example: true
url:
type: string
format: uri
example: https://api.github.com/repos/octocat/Hello-World
archive_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}
assignees_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/assignees{/user}
blobs_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}
branches_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/branches{/branch}
collaborators_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}
comments_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/comments{/number}
commits_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/commits{/sha}
compare_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}
contents_url:
type: string
example: http://api.github.com/repos/octocat/Hello-World/contents/{+path}
contributors_url:
type: string
format: uri
example: http://api.github.com/repos/octocat/Hello-World/contributors
deployments_url:
type: string
format: uri
example: http://api.github.com/repos/octocat/Hello-World/deployments
downloads_url:
type: string
# --- truncated at 32 KB (125 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/github/refs/heads/main/openapi/github-migrations-api-openapi.yml