Skip to main content

Packages

Con la API del Registro del paquete de GitHub, puedes administrar paquetes para tus repositorios y organizaciones de GitHub.

El Registro del paquete de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, Nube de GitHub Enterprise, GitHub Enterprise Server 3.0 o superior y GitHub AE.


Registro del paquete de GitHub no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Las cuentas que utilicen los planes tradicionales por repositorio tampoco podrán acceder al Registro de contenedores ya que estas cuentas se facturan por repositorio. Para obtener más información, consulta la sección "[Productos de GitHub](/get-started/learning-about-github/githubs-products)".

La API de Registro del paquete de GitHub te permite administrar paquetes utilizando la API de REST. Para aprender más sobre cómo restablecer o borrar paquetes, consulta la sección "Restablecer y borrar paquetes".

Para utilizar esta API, primero tienes que autenticarte utilizando un token de acceso personal.

  • Para acceder a los metadatos del paquete, tu token debe incluir el alcance read:packages.
  • Para borrar los paquetes y las versiones de paquetes, tu token debe incluir los alcances read:packages y delete:packages.
  • Para restablecer los paquetes y sus versiones, tu token debe incluir los alcances de read:packages y write:packages.

Si tu package_type es npm, maven, rubygems, o nuget, entonces tu token también debe incluir el alcance repo, ya que este hereda los permisos de un repositorio de GitHub. Si tu paquete está en el Registro de contenedores, entonces tu package_type es container y tu token no necesita el alcance de repo para acceder o administrar este package_type. Los paquetes de container ofrecen permisos granulares separados de un repositorio. Para obtener más información, consulta la sección "Acerca de los permisos para el Registro del paquete de GitHub".

Si quieres utilizar la API del Registro del paquete de GitHub para acceder a los recursos de una organización con el SSO habilitado, entonces debes habilitar el SSO para tu token de acceso personal. Para obtener más información, consulta la sección "Autorizar un token de acceso personal para utilizarse con el inicio de sesión único de SAML".

List packages for an organization

Lists all packages in an organization readable by the user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /orgs/{org}/packages

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string query

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

org string path
visibility string query

The selected visibility of the packages. Can be one of public, private, or internal. Only container package_types currently support internal visibility properly. For other ecosystems internal is synonymous with private. This parameter is optional and only filters an existing result set.

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/packages', {
  package_type: 'package_type',
  org: 'org'
})

Response

Status: 200 OK
[
  {
    "id": 197,
    "name": "hello_docker",
    "package_type": "container",
    "owner": {
      "login": "github",
      "id": 9919,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
      "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/github",
      "html_url": "https://github.com/github",
      "followers_url": "https://api.github.com/users/github/followers",
      "following_url": "https://api.github.com/users/github/following{/other_user}",
      "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/github/subscriptions",
      "organizations_url": "https://api.github.com/users/github/orgs",
      "repos_url": "https://api.github.com/users/github/repos",
      "events_url": "https://api.github.com/users/github/events{/privacy}",
      "received_events_url": "https://api.github.com/users/github/received_events",
      "type": "Organization",
      "site_admin": false
    },
    "version_count": 1,
    "visibility": "private",
    "url": "https://api.github.com/orgs/github/packages/container/hello_docker",
    "created_at": "2020-05-19T22:19:11Z",
    "updated_at": "2020-05-19T22:19:11Z",
    "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker"
  },
  {
    "id": 198,
    "name": "goodbye_docker",
    "package_type": "container",
    "owner": {
      "login": "github",
      "id": 9919,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
      "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/github",
      "html_url": "https://github.com/github",
      "followers_url": "https://api.github.com/users/github/followers",
      "following_url": "https://api.github.com/users/github/following{/other_user}",
      "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/github/subscriptions",
      "organizations_url": "https://api.github.com/users/github/orgs",
      "repos_url": "https://api.github.com/users/github/repos",
      "events_url": "https://api.github.com/users/github/events{/privacy}",
      "received_events_url": "https://api.github.com/users/github/received_events",
      "type": "Organization",
      "site_admin": false
    },
    "version_count": 2,
    "visibility": "private",
    "url": "https://api.github.com/orgs/github/packages/container/goodbye_docker",
    "created_at": "2020-05-20T22:19:11Z",
    "updated_at": "2020-05-20T22:19:11Z",
    "html_url": "https://github.com/orgs/github/packages/container/package/goodbye_docker"
  }
]

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Get a package for an organization

Gets a specific package in an organization.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /orgs/{org}/packages/{package_type}/{package_name}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org'
})

Response

Status: 200 OK
{
  "id": 197,
  "name": "hello_docker",
  "package_type": "container",
  "owner": {
    "login": "github",
    "id": 9919,
    "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
    "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/github",
    "html_url": "https://github.com/github",
    "followers_url": "https://api.github.com/users/github/followers",
    "following_url": "https://api.github.com/users/github/following{/other_user}",
    "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/github/subscriptions",
    "organizations_url": "https://api.github.com/users/github/orgs",
    "repos_url": "https://api.github.com/users/github/repos",
    "events_url": "https://api.github.com/users/github/events{/privacy}",
    "received_events_url": "https://api.github.com/users/github/received_events",
    "type": "Organization",
    "site_admin": false
  },
  "version_count": 1,
  "visibility": "private",
  "url": "https://api.github.com/orgs/github/packages/container/hello_docker",
  "created_at": "2020-05-19T22:19:11Z",
  "updated_at": "2020-05-19T22:19:11Z",
  "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker"
}

Delete a package for an organization

Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.
delete /orgs/{org}/packages/{package_type}/{package_name}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path

Ejemplos de código

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/packages/{package_type}/{package_name}', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org'
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Restore a package for an organization

Restores an entire package in an organization.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.
post /orgs/{org}/packages/{package_type}/{package_name}/restore

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path
token string query

package token

Ejemplos de código

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/restore
JavaScript (@octokit/core.js)
await octokit.request('POST /orgs/{org}/packages/{package_type}/{package_name}/restore', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org'
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Get all package versions for a package owned by an organization

Returns all package versions for a package owned by an organization.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /orgs/{org}/packages/{package_type}/{package_name}/versions

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path
page integer query

Page number of the results to fetch.

Default: 1
per_page integer query

Results per page (max 100)

Default: 30
state string query

The state of the package, either active or deleted.

Default: active

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}/versions', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org'
})

Response

Status: 200 OK
[
  {
    "id": 245301,
    "name": "1.0.4",
    "url": "https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/245301",
    "package_html_url": "https://github.com/octo-org/hello-world-npm/packages/43752",
    "created_at": "2019-11-05T22:49:04Z",
    "updated_at": "2019-11-05T22:49:04Z",
    "html_url": "https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.4",
    "metadata": {
      "package_type": "npm"
    }
  },
  {
    "id": 209672,
    "name": "1.0.3",
    "url": "https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/209672",
    "package_html_url": "https://github.com/octo-org/hello-world-npm/packages/43752",
    "created_at": "2019-10-29T15:42:11Z",
    "updated_at": "2019-10-29T15:42:12Z",
    "html_url": "https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.3",
    "metadata": {
      "package_type": "npm"
    }
  }
]

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Get a package version for an organization

Gets a specific package version in an organization.

You must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path
package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
JavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org',
  package_version_id: 42
})

Response

Status: 200 OK
{
  "id": 836,
  "name": "sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344",
  "url": "https://api.github.com/orgs/github/packages/container/hello_docker/versions/836",
  "package_html_url": "https://github.com/orgs/github/packages/container/package/hello_docker",
  "created_at": "2020-05-19T22:19:11Z",
  "updated_at": "2020-05-19T22:19:11Z",
  "html_url": "https://github.com/orgs/github/packages/container/hello_docker/836",
  "metadata": {
    "package_type": "container",
    "container": {
      "tags": [
        "latest"
      ]
    }
  }
}

Delete package version for an organization

Deletes a specific package version in an organization. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.
delete /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path
package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
JavaScript (@octokit/core.js)
await octokit.request('DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org',
  package_version_id: 42
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Restore package version for an organization

Restores a specific package version in an organization.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.
post /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

org string path
package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore
JavaScript (@octokit/core.js)
await octokit.request('POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {
  package_type: 'package_type',
  package_name: 'package_name',
  org: 'org',
  package_version_id: 42
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

List packages for the authenticated user's namespace

Lists packages owned by the authenticated user within the user's namespace.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /user/packages

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string query

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

visibility string query

The selected visibility of the packages. Can be one of public, private, or internal. Only container package_types currently support internal visibility properly. For other ecosystems internal is synonymous with private. This parameter is optional and only filters an existing result set.

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages
JavaScript (@octokit/core.js)
await octokit.request('GET /user/packages', {
  package_type: 'package_type'
})

Response

Status: 200 OK
[
  {
    "id": 197,
    "name": "hello_docker",
    "package_type": "container",
    "owner": {
      "login": "monalisa",
      "id": 9919,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
      "avatar_url": "https://avatars.monalisausercontent.com/u/9919?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/monalisa",
      "html_url": "https://github.com/github",
      "followers_url": "https://api.github.com/users/github/followers",
      "following_url": "https://api.github.com/users/github/following{/other_user}",
      "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/github/subscriptions",
      "organizations_url": "https://api.github.com/users/github/orgs",
      "repos_url": "https://api.github.com/users/github/repos",
      "events_url": "https://api.github.com/users/github/events{/privacy}",
      "received_events_url": "https://api.github.com/users/github/received_events",
      "type": "User",
      "site_admin": false
    },
    "version_count": 1,
    "visibility": "private",
    "url": "https://api.github.com/orgs/github/packages/container/hello_docker",
    "created_at": "2020-05-19T22:19:11Z",
    "updated_at": "2020-05-19T22:19:11Z",
    "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker"
  },
  {
    "id": 198,
    "name": "goodbye_docker",
    "package_type": "container",
    "owner": {
      "login": "github",
      "id": 9919,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
      "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/monalisa",
      "html_url": "https://github.com/github",
      "followers_url": "https://api.github.com/users/github/followers",
      "following_url": "https://api.github.com/users/github/following{/other_user}",
      "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/github/subscriptions",
      "organizations_url": "https://api.github.com/users/github/orgs",
      "repos_url": "https://api.github.com/users/github/repos",
      "events_url": "https://api.github.com/users/github/events{/privacy}",
      "received_events_url": "https://api.github.com/users/github/received_events",
      "type": "User",
      "site_admin": false
    },
    "version_count": 2,
    "visibility": "private",
    "url": "https://api.github.com/user/monalisa/packages/container/goodbye_docker",
    "created_at": "2020-05-20T22:19:11Z",
    "updated_at": "2020-05-20T22:19:11Z",
    "html_url": "https://github.com/user/monalisa/packages/container/package/goodbye_docker"
  }
]

Get a package for the authenticated user

Gets a specific package for a package owned by the authenticated user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /user/packages/{package_type}/{package_name}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME
JavaScript (@octokit/core.js)
await octokit.request('GET /user/packages/{package_type}/{package_name}', {
  package_type: 'package_type',
  package_name: 'package_name'
})

Response

Status: 200 OK
{
  "id": 40201,
  "name": "octo-name",
  "package_type": "rubygems",
  "owner": {
    "login": "octocat",
    "id": 209477,
    "node_id": "MDQ6VXNlcjIwOTQ3Nw==",
    "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": true
  },
  "version_count": 3,
  "visibility": "public",
  "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name",
  "created_at": "2019-10-20T14:17:14Z",
  "updated_at": "2019-10-20T14:17:14Z",
  "repository": {
    "id": 216219492,
    "node_id": "MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI=",
    "name": "octo-name-repo",
    "full_name": "octocat/octo-name-repo",
    "private": false,
    "owner": {
      "login": "octocat",
      "id": 209477,
      "node_id": "MDQ6VXNlcjIwOTQ3Nw==",
      "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/octocat",
      "html_url": "https://github.com/octocat",
      "followers_url": "https://api.github.com/users/octocat/followers",
      "following_url": "https://api.github.com/users/octocat/following{/other_user}",
      "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
      "organizations_url": "https://api.github.com/users/octocat/orgs",
      "repos_url": "https://api.github.com/users/octocat/repos",
      "events_url": "https://api.github.com/users/octocat/events{/privacy}",
      "received_events_url": "https://api.github.com/users/octocat/received_events",
      "type": "User",
      "site_admin": true
    },
    "html_url": "https://github.com/octocat/octo-name-repo",
    "description": "Project for octocats",
    "fork": false,
    "url": "https://api.github.com/repos/octocat/octo-name-repo",
    "forks_url": "https://api.github.com/repos/octocat/octo-name-repo/forks",
    "keys_url": "https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id}",
    "collaborators_url": "https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator}",
    "teams_url": "https://api.github.com/repos/octocat/octo-name-repo/teams",
    "hooks_url": "https://api.github.com/repos/octocat/octo-name-repo/hooks",
    "issue_events_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number}",
    "events_url": "https://api.github.com/repos/octocat/octo-name-repo/events",
    "assignees_url": "https://api.github.com/repos/octocat/octo-name-repo/assignees{/user}",
    "branches_url": "https://api.github.com/repos/octocat/octo-name-repo/branches{/branch}",
    "tags_url": "https://api.github.com/repos/octocat/octo-name-repo/tags",
    "blobs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha}",
    "git_tags_url": "https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha}",
    "git_refs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha}",
    "trees_url": "https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha}",
    "statuses_url": "https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha}",
    "languages_url": "https://api.github.com/repos/octocat/octo-name-repo/languages",
    "stargazers_url": "https://api.github.com/repos/octocat/octo-name-repo/stargazers",
    "contributors_url": "https://api.github.com/repos/octocat/octo-name-repo/contributors",
    "subscribers_url": "https://api.github.com/repos/octocat/octo-name-repo/subscribers",
    "subscription_url": "https://api.github.com/repos/octocat/octo-name-repo/subscription",
    "commits_url": "https://api.github.com/repos/octocat/octo-name-repo/commits{/sha}",
    "git_commits_url": "https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha}",
    "comments_url": "https://api.github.com/repos/octocat/octo-name-repo/comments{/number}",
    "issue_comment_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number}",
    "contents_url": "https://api.github.com/repos/octocat/octo-name-repo/contents/{+path}",
    "compare_url": "https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head}",
    "merges_url": "https://api.github.com/repos/octocat/octo-name-repo/merges",
    "archive_url": "https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref}",
    "downloads_url": "https://api.github.com/repos/octocat/octo-name-repo/downloads",
    "issues_url": "https://api.github.com/repos/octocat/octo-name-repo/issues{/number}",
    "pulls_url": "https://api.github.com/repos/octocat/octo-name-repo/pulls{/number}",
    "milestones_url": "https://api.github.com/repos/octocat/octo-name-repo/milestones{/number}",
    "notifications_url": "https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating}",
    "labels_url": "https://api.github.com/repos/octocat/octo-name-repo/labels{/name}",
    "releases_url": "https://api.github.com/repos/octocat/octo-name-repo/releases{/id}",
    "deployments_url": "https://api.github.com/repos/octocat/octo-name-repo/deployments"
  },
  "html_url": "https://github.com/octocat/octo-name-repo/packages/40201"
}

Delete a package for the authenticated user

Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scopes. If package_type is not container, your token must also include the repo scope.

delete /user/packages/{package_type}/{package_name}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

Ejemplos de código

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /user/packages/{package_type}/{package_name}', {
  package_type: 'package_type',
  package_name: 'package_name'
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Restore a package for the authenticated user

Restores a package owned by the authenticated user.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. If package_type is not container, your token must also include the repo scope.

post /user/packages/{package_type}/{package_name}/restore

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

token string query

package token

Ejemplos de código

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/restore
JavaScript (@octokit/core.js)
await octokit.request('POST /user/packages/{package_type}/{package_name}/restore', {
  package_type: 'package_type',
  package_name: 'package_name'
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Get all package versions for a package owned by the authenticated user

Returns all package versions for a package owned by the authenticated user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /user/packages/{package_type}/{package_name}/versions

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

page integer query

Page number of the results to fetch.

Default: 1
per_page integer query

Results per page (max 100)

Default: 30
state string query

The state of the package, either active or deleted.

Default: active

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions
JavaScript (@octokit/core.js)
await octokit.request('GET /user/packages/{package_type}/{package_name}/versions', {
  package_type: 'package_type',
  package_name: 'package_name'
})

Response

Status: 200 OK
[
  {
    "id": 45763,
    "name": "sha256:08a44bab0bddaddd8837a8b381aebc2e4b933768b981685a9e088360af0d3dd9",
    "url": "https://api.github.com/users/octocat/packages/container/hello_docker/versions/45763",
    "package_html_url": "https://github.com/users/octocat/packages/container/package/hello_docker",
    "created_at": "2020-09-11T21:56:40Z",
    "updated_at": "2021-02-05T21:32:32Z",
    "html_url": "https://github.com/users/octocat/packages/container/hello_docker/45763",
    "metadata": {
      "package_type": "container",
      "container": {
        "tags": [
          "latest"
        ]
      }
    }
  },
  {
    "id": 881,
    "name": "sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344",
    "url": "https://api.github.com/users/octocat/packages/container/hello_docker/versions/881",
    "package_html_url": "https://github.com/users/octocat/packages/container/package/hello_docker",
    "created_at": "2020-05-21T22:22:20Z",
    "updated_at": "2021-02-05T21:32:32Z",
    "html_url": "https://github.com/users/octocat/packages/container/hello_docker/881",
    "metadata": {
      "package_type": "container",
      "container": {
        "tags": []
      }
    }
  }
]

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Get a package version for the authenticated user

Gets a specific package version for a package owned by the authenticated user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /user/packages/{package_type}/{package_name}/versions/{package_version_id}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
JavaScript (@octokit/core.js)
await octokit.request('GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}', {
  package_type: 'package_type',
  package_name: 'package_name',
  package_version_id: 42
})

Response

Status: 200 OK
{
  "id": 214,
  "name": "sha256:3561f0cff06caccddb99c93bd26e712fcc56a811de0f8ea7a17bb865f30b176a",
  "url": "https://api.github.com/users/octocat/packages/container/hello_docker/versions/214",
  "package_html_url": "https://github.com/users/octocat/packages/container/package/hello_docker",
  "created_at": "2020-05-15T03:46:45Z",
  "updated_at": "2020-05-15T03:46:45Z",
  "html_url": "https://github.com/users/octocat/packages/container/hello_docker/214",
  "metadata": {
    "package_type": "container",
    "container": {
      "tags": [
        "1.13.6"
      ]
    }
  }
}

Delete a package version for the authenticated user

Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:delete scopes. If package_type is not container, your token must also include the repo scope.

delete /user/packages/{package_type}/{package_name}/versions/{package_version_id}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
JavaScript (@octokit/core.js)
await octokit.request('DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}', {
  package_type: 'package_type',
  package_name: 'package_name',
  package_version_id: 42
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Restore a package version for the authenticated user

Restores a package version owned by the authenticated user.

You can restore a deleted package version under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. If package_type is not container, your token must also include the repo scope.

post /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore
JavaScript (@octokit/core.js)
await octokit.request('POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {
  package_type: 'package_type',
  package_name: 'package_name',
  package_version_id: 42
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

List packages for a user

Lists all packages in a user's namespace for which the requesting user has access.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /users/{username}/packages

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string query

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

visibility string query

The selected visibility of the packages. Can be one of public, private, or internal. Only container package_types currently support internal visibility properly. For other ecosystems internal is synonymous with private. This parameter is optional and only filters an existing result set.

username string path

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages
JavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/packages', {
  package_type: 'package_type',
  username: 'username'
})

Response

Status: 200 OK
[
  {
    "id": 197,
    "name": "hello_docker",
    "package_type": "container",
    "owner": {
      "login": "monalisa",
      "id": 9919,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
      "avatar_url": "https://avatars.monalisausercontent.com/u/9919?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/monalisa",
      "html_url": "https://github.com/github",
      "followers_url": "https://api.github.com/users/github/followers",
      "following_url": "https://api.github.com/users/github/following{/other_user}",
      "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/github/subscriptions",
      "organizations_url": "https://api.github.com/users/github/orgs",
      "repos_url": "https://api.github.com/users/github/repos",
      "events_url": "https://api.github.com/users/github/events{/privacy}",
      "received_events_url": "https://api.github.com/users/github/received_events",
      "type": "User",
      "site_admin": false
    },
    "version_count": 1,
    "visibility": "private",
    "url": "https://api.github.com/orgs/github/packages/container/hello_docker",
    "created_at": "2020-05-19T22:19:11Z",
    "updated_at": "2020-05-19T22:19:11Z",
    "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker"
  },
  {
    "id": 198,
    "name": "goodbye_docker",
    "package_type": "container",
    "owner": {
      "login": "github",
      "id": 9919,
      "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=",
      "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/monalisa",
      "html_url": "https://github.com/github",
      "followers_url": "https://api.github.com/users/github/followers",
      "following_url": "https://api.github.com/users/github/following{/other_user}",
      "gists_url": "https://api.github.com/users/github/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/github/subscriptions",
      "organizations_url": "https://api.github.com/users/github/orgs",
      "repos_url": "https://api.github.com/users/github/repos",
      "events_url": "https://api.github.com/users/github/events{/privacy}",
      "received_events_url": "https://api.github.com/users/github/received_events",
      "type": "User",
      "site_admin": false
    },
    "version_count": 2,
    "visibility": "private",
    "url": "https://api.github.com/user/monalisa/packages/container/goodbye_docker",
    "created_at": "2020-05-20T22:19:11Z",
    "updated_at": "2020-05-20T22:19:11Z",
    "html_url": "https://github.com/user/monalisa/packages/container/package/goodbye_docker"
  }
]

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Get a package for a user

Gets a specific package metadata for a public package owned by a user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /users/{username}/packages/{package_type}/{package_name}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

username string path

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME
JavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}', {
  package_type: 'package_type',
  package_name: 'package_name',
  username: 'username'
})

Response

Status: 200 OK
{
  "id": 40201,
  "name": "octo-name",
  "package_type": "rubygems",
  "owner": {
    "login": "octocat",
    "id": 209477,
    "node_id": "MDQ6VXNlcjIwOTQ3Nw==",
    "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4",
    "gravatar_id": "",
    "url": "https://api.github.com/users/octocat",
    "html_url": "https://github.com/octocat",
    "followers_url": "https://api.github.com/users/octocat/followers",
    "following_url": "https://api.github.com/users/octocat/following{/other_user}",
    "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
    "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
    "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
    "organizations_url": "https://api.github.com/users/octocat/orgs",
    "repos_url": "https://api.github.com/users/octocat/repos",
    "events_url": "https://api.github.com/users/octocat/events{/privacy}",
    "received_events_url": "https://api.github.com/users/octocat/received_events",
    "type": "User",
    "site_admin": true
  },
  "version_count": 3,
  "visibility": "public",
  "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name",
  "created_at": "2019-10-20T14:17:14Z",
  "updated_at": "2019-10-20T14:17:14Z",
  "repository": {
    "id": 216219492,
    "node_id": "MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI=",
    "name": "octo-name-repo",
    "full_name": "octocat/octo-name-repo",
    "private": false,
    "owner": {
      "login": "octocat",
      "id": 209477,
      "node_id": "MDQ6VXNlcjIwOTQ3Nw==",
      "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4",
      "gravatar_id": "",
      "url": "https://api.github.com/users/octocat",
      "html_url": "https://github.com/octocat",
      "followers_url": "https://api.github.com/users/octocat/followers",
      "following_url": "https://api.github.com/users/octocat/following{/other_user}",
      "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}",
      "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}",
      "subscriptions_url": "https://api.github.com/users/octocat/subscriptions",
      "organizations_url": "https://api.github.com/users/octocat/orgs",
      "repos_url": "https://api.github.com/users/octocat/repos",
      "events_url": "https://api.github.com/users/octocat/events{/privacy}",
      "received_events_url": "https://api.github.com/users/octocat/received_events",
      "type": "User",
      "site_admin": true
    },
    "html_url": "https://github.com/octocat/octo-name-repo",
    "description": "Project for octocats",
    "fork": false,
    "url": "https://api.github.com/repos/octocat/octo-name-repo",
    "forks_url": "https://api.github.com/repos/octocat/octo-name-repo/forks",
    "keys_url": "https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id}",
    "collaborators_url": "https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator}",
    "teams_url": "https://api.github.com/repos/octocat/octo-name-repo/teams",
    "hooks_url": "https://api.github.com/repos/octocat/octo-name-repo/hooks",
    "issue_events_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number}",
    "events_url": "https://api.github.com/repos/octocat/octo-name-repo/events",
    "assignees_url": "https://api.github.com/repos/octocat/octo-name-repo/assignees{/user}",
    "branches_url": "https://api.github.com/repos/octocat/octo-name-repo/branches{/branch}",
    "tags_url": "https://api.github.com/repos/octocat/octo-name-repo/tags",
    "blobs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha}",
    "git_tags_url": "https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha}",
    "git_refs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha}",
    "trees_url": "https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha}",
    "statuses_url": "https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha}",
    "languages_url": "https://api.github.com/repos/octocat/octo-name-repo/languages",
    "stargazers_url": "https://api.github.com/repos/octocat/octo-name-repo/stargazers",
    "contributors_url": "https://api.github.com/repos/octocat/octo-name-repo/contributors",
    "subscribers_url": "https://api.github.com/repos/octocat/octo-name-repo/subscribers",
    "subscription_url": "https://api.github.com/repos/octocat/octo-name-repo/subscription",
    "commits_url": "https://api.github.com/repos/octocat/octo-name-repo/commits{/sha}",
    "git_commits_url": "https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha}",
    "comments_url": "https://api.github.com/repos/octocat/octo-name-repo/comments{/number}",
    "issue_comment_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number}",
    "contents_url": "https://api.github.com/repos/octocat/octo-name-repo/contents/{+path}",
    "compare_url": "https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head}",
    "merges_url": "https://api.github.com/repos/octocat/octo-name-repo/merges",
    "archive_url": "https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref}",
    "downloads_url": "https://api.github.com/repos/octocat/octo-name-repo/downloads",
    "issues_url": "https://api.github.com/repos/octocat/octo-name-repo/issues{/number}",
    "pulls_url": "https://api.github.com/repos/octocat/octo-name-repo/pulls{/number}",
    "milestones_url": "https://api.github.com/repos/octocat/octo-name-repo/milestones{/number}",
    "notifications_url": "https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating}",
    "labels_url": "https://api.github.com/repos/octocat/octo-name-repo/labels{/name}",
    "releases_url": "https://api.github.com/repos/octocat/octo-name-repo/releases{/id}",
    "deployments_url": "https://api.github.com/repos/octocat/octo-name-repo/deployments"
  },
  "html_url": "https://github.com/octocat/octo-name-repo/packages/40201"
}

Delete a package for a user

Deletes an entire package for a user. You cannot delete a public package if any version of the package has more than 5,000 downloads. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.
delete /users/{username}/packages/{package_type}/{package_name}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

username string path

Ejemplos de código

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME
JavaScript (@octokit/core.js)
await octokit.request('DELETE /users/{username}/packages/{package_type}/{package_name}', {
  package_type: 'package_type',
  package_name: 'package_name',
  username: 'username'
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Restore a package for a user

Restores an entire package for a user.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.
post /users/{username}/packages/{package_type}/{package_name}/restore

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

username string path
token string query

package token

Ejemplos de código

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/restore
JavaScript (@octokit/core.js)
await octokit.request('POST /users/{username}/packages/{package_type}/{package_name}/restore', {
  package_type: 'package_type',
  package_name: 'package_name',
  username: 'username'
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Get all package versions for a package owned by a user

Returns all package versions for a public package owned by a specified user.

To use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /users/{username}/packages/{package_type}/{package_name}/versions

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

username string path

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions
JavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}/versions', {
  package_type: 'package_type',
  package_name: 'package_name',
  username: 'username'
})

Response

Status: 200 OK
[
  {
    "id": 3497268,
    "name": "0.3.0",
    "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/3497268",
    "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201",
    "license": "MIT",
    "created_at": "2020-08-31T15:22:11Z",
    "updated_at": "2020-08-31T15:22:12Z",
    "description": "Project for octocats",
    "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.3.0",
    "metadata": {
      "package_type": "rubygems"
    }
  },
  {
    "id": 387039,
    "name": "0.2.0",
    "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039",
    "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201",
    "license": "MIT",
    "created_at": "2019-12-01T20:49:29Z",
    "updated_at": "2019-12-01T20:49:30Z",
    "description": "Project for octocats",
    "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0",
    "metadata": {
      "package_type": "rubygems"
    }
  },
  {
    "id": 169770,
    "name": "0.1.0",
    "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/169770",
    "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201",
    "license": "MIT",
    "created_at": "2019-10-20T14:17:14Z",
    "updated_at": "2019-10-20T14:17:15Z",
    "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.1.0",
    "metadata": {
      "package_type": "rubygems"
    }
  }
]

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Get a package version for a user

Gets a specific package version for a public package owned by a specified user.

At this time, to use this endpoint, you must authenticate using an access token with the packages:read scope. If package_type is not container, your token must also include the repo scope.

get /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

package_version_id integer path

Unique identifier of the package version.

username string path

Ejemplos de código

Shell
curl \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
JavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}', {
  package_type: 'package_type',
  package_name: 'package_name',
  package_version_id: 42,
  username: 'username'
})

Response

Status: 200 OK
{
  "id": 387039,
  "name": "0.2.0",
  "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039",
  "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201",
  "license": "MIT",
  "created_at": "2019-12-01T20:49:29Z",
  "updated_at": "2019-12-01T20:49:30Z",
  "description": "Octo-name client for Ruby",
  "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0",
  "metadata": {
    "package_type": "rubygems"
  }
}

Delete package version for a user

Deletes a specific package version for a user. If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container you want to delete.
delete /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

username string path
package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
JavaScript (@octokit/core.js)
await octokit.request('DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}', {
  package_type: 'package_type',
  package_name: 'package_name',
  username: 'username',
  package_version_id: 42
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found

Restore package version for a user

Restores a specific package version for a user.

You can restore a deleted package under the following conditions:

  • The package was deleted within the last 30 days.
  • The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scopes. In addition:

  • If package_type is not container, your token must also include the repo scope.
  • If package_type is container, you must also have admin permissions to the container that you want to restore.
post /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore

Parámetros

Name Type In Description
accept string header

Setting to application/vnd.github.v3+json is recommended.

package_type string path

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. Packages in GitHub's Gradle registry have the type maven. Docker images pushed to GitHub's Container registry (ghcr.io) have the type container. You can use the type docker to find images that were pushed to GitHub's Docker registry (docker.pkg.github.com), even if these have now been migrated to the Container registry.

package_name string path

The name of the package.

username string path
package_version_id integer path

Unique identifier of the package version.

Ejemplos de código

Shell
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore
JavaScript (@octokit/core.js)
await octokit.request('POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {
  package_type: 'package_type',
  package_name: 'package_name',
  username: 'username',
  package_version_id: 42
})

Response

Status: 204 No Content

Requires authentication

Status: 401 Unauthorized

Forbidden

Status: 403 Forbidden

Resource not found

Status: 404 Not Found