Introduction to GitHub Packages

Paquetes de GitHub is a software package hosting service that allows you to host your software packages privately or publicly and use packages as dependencies in your projects.

Paquetes de GitHub is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, Servidor de GitHub Enterprise 2.22, and GitHub One.


Paquetes de GitHub no está disponible para repositorios privados que pertenezcan a cuentas que utilicen planes tradicionales por repositorio. Paquetes de GitHub se encuentra disponible con GitHub Free, GitHub Pro, GitHub Free para organizaciones, GitHub Team, GitHub Enterprise Cloud, y GitHub One. Para obtener más información, consulta la sección "Productos de GitHub".

About Paquetes de GitHub

Paquetes de GitHub is a platform for hosting and managing packages, including containers and other dependencies. Paquetes de GitHub combines your source code and packages in one place to provide integrated permissions management and billing, so you can centralize your software development on GitHub.

You can integrate Paquetes de GitHub with GitHub APIs, GitHub Actions, and webhooks to create an end-to-end DevOps workflow that includes your code, CI, and deployment solutions.

Paquetes de GitHub offers different package registries for commonly used package managers, such as npm, RubyGems, Apache Maven, Gradle, Docker, and NuGet. GitHub's container registry is optimized for containers and supports Docker and OCI images. For more information on the different package registries that Paquetes de GitHub supports, see "Working with a Paquetes de GitHub registry."

Diagram showing packages support for the Container registry, RubyGems, npm, Apache Maven, NuGet, and Gradle

You can view a package's README, as well as metadata such as licensing, download statistics, version history, and more on GitHub. For more information, see "Viewing packages."

Overview of package permissions and visibility

PermissionsThe permissions for a package are either inherited from the repository where the package is hosted or, for packages in the container registry, they can be defined for specific user or organization accounts. For more information, see "Configuring a package’s access control and visibility."
VisibilityPuedes publicar paquetes en un repositorio público (paquetes públicos) para compartir con todo GitHub, o en un repositorio privado (paquetes privados) para compartirlos con colaboradores o con una organización.

For more information, see "About permissions for Paquetes de GitHub."

About billing for Paquetes de GitHub

El uso de Paquetes de GitHub es gratuito para los paquetes públicos. Para los paquetes privados, cada cuenta de GitHub recibe una cantidad determinada de almacenamiento gratuito y de transferencia de datos, dependiendo del producto que se utilice en la cuenta. Predeterminadamente, tu cuenta tendrá un límite de gastos de $0, lo cual previene el uso adicional de almacenamiento o transferencia de datos después de que alcanzas el límite de las cantidades incluidas. Si incrementas tu límite de gastos por encima del $0 predeterminado, se te cobrará por cualquier almacenamiento o transferencia de datos extra, también llamados excedentes, hasta el tope del límite de gastos que hayas configurado. No podrán aplicarse los cupones que tenga tu cuenta para los excedentes de Paquetes de GitHub. If you are a monthly-billed customer, your account will have a default spending limit of 0 US dollars (USD), which prevents additional usage of storage or data transfer after you reach the included amounts. If you pay your account by invoice, your account will have an unlimited default spending limit. For more information, see "About billing for Paquetes de GitHub."

Supported clients and formats

Paquetes de GitHub uses the native package tooling commands you're already familiar with to publish and install package versions.

Support for package registries

LanguageDescriptionPackage formatPackage client
JavaScriptNode package managerpackage.jsonnpm
RubyRubyGems package managerGemfilegem
JavaApache Maven project management and comprehension toolpom.xmlmvn
JavaGradle build automation tool for Javabuild.gradle or build.gradle.ktsgradle
.NETNuGet package management for .NETnupkgdotnet CLI
N/ADocker container managementDockerfileDocker

For more information about configuring your package client for use with Paquetes de GitHub, see "Working with a Paquetes de GitHub registry."

For more information about Docker and the container registry, see "Working with the Container registry."

Authenticating to Paquetes de GitHub

Necesitas de un token de acceso para publicar, instalar, y borrar paquetes en Paquetes de GitHub. Puedes utilizar un token de acceso personal para autenticarte con tu nombre de usuario directamente en Paquetes de GitHub o en la API de GitHub. Cuando creas un token de acceso personal, puedes asignar al token diferentes ámbitos en función de tus necesidades.

To authenticate using a GitHub Actions workflow:

  • For package registries (PACKAGE-REGISTRY.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME), you can use a GITHUB_TOKEN.
  • For the container registry (ghcr.io/OWNER/IMAGE-NAME), you must use a personal access token.

For more information about GITHUB_TOKEN used in GitHub Actions workflows, see "Authentication in a workflow."

Managing packages

You can delete a package in the GitHub user interface or using the REST API. For more information, see the "Paquetes de GitHub API."

When you use the GraphQL API to query and delete private packages, you must use the same token you use to authenticate to Paquetes de GitHub. For more information, see "Deleting and restoring a package" and "Forming calls with GraphQL."

You can configure webhooks to subscribe to package-related events, such as when a package is published or updated. For more information, see the "package webhook event."

Contacting support

If you have feedback or feature requests for Paquetes de GitHub, use the feedback form for Paquetes de GitHub.

Contact Soporte de GitHub about Paquetes de GitHub using our contact form if:

  • You experience anything that contradicts the documentation
  • You encounter vague or unclear errors
  • Your published package contains sensitive data, such as GDPR violations, API Keys, or personally identifying information

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

O, learn how to contribute.