Acerca de Paquetes de GitHub
Paquetes de GitHub es un servicio de alojamiento de paquetes, totalmente integrado con GitHub. Paquetes de GitHub combina tu código fuente y tus paquetes en un solo lugar para proporcionar facturación y gestión de permisos integrada, para que puedas centralizar tu desarrollo de software en GitHub.
Puedes integrar Paquetes de GitHub con las API de GitHub, GitHub Actions y webhooks para crear un flujo de trabajo de DevOps de extremo a extremo que incluya tu código, CI y soluciones de implementación.
Puedes alojar múltiples paquetes en un repositorio y ver más información acerca de cada paquete al ver el README del paquete, las estadísticas de descarga, el historial de la versión y mucho más.
Cuando creas un flujo de trabajo de GitHub Actions, puedes usar el GITHUB_TOKEN para publicar e instalar paquetes en Paquetes de GitHub sin la necesidad de almacenar y administrar un token de acceso personal. Para obtener más información, consulta "Acerca de GitHub Container Registry".
Note: GitHub Container Registry is currently in public beta and subject to change. Currently, GitHub Container Registry only supports Docker image formats. During the beta, storage and bandwidth is free. Para obtener más información, consulta "Acerca de GitHub Container Registry".
Ver paquetes
You can review the package's README, some metadata like licensing, download statistics, version history, and more on GitHub. Para obtener más información, consulta "Visualizar paquetes".
About package permissions and visibility
| Package registries | GitHub Container Registry | |
|---|---|---|
| Hosting locations | You can host multiple packages in one repository. | You can host multiple container images in one organization or user account. |
| Permissions | Puedes 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. Puedes utilizar los roles y equipos de GitHub para limitar quién puede instalar o publicar cada paquete, ya que los paquetes heredan los permisos del repositorio. Cualquier persona con permisos de lectura para un repositorio puede instalar un paquete como una dependencia en un proyecto, y cualquier persona con permisos de escritura puede publicar una nueva versión del paquete. | For each container image, you can choose the access level that others have. The permissions for container image access are separate from your organization and repository permissions. |
| Visibility | Puedes 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. | You can set the visibility of each of your container images. A private container image is only visible to people and teams who are given access within your organization. A public container image is visible to anyone. |
For more information about permissions and visibility for GitHub Container Registry, see "Configuring access control and visibility for containers."
Acerca de la facturación para 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. Para obtener más información, consulta "Acerca de la facturación para Paquetes de GitHub".
{% note %}
Billing update for container image storage: During the beta phase of {% data variables.product.prodname_github_container_registry %}, Docker image storage and bandwidth are free for the old docker.pkg.github.com and new ghcr.io hosting services. Para obtener más información, consulta "Acerca de {% data variables.product.prodname_github_container_registry %}".
{% endnote %}
Formatos y clientes admitidos
Paquetes de GitHub usa los comandos de herramientas del paquete nativo con los que ya estás familiarizado para publicar e instalar versiones del paquete.
Support for GitHub Container Registry
The GitHub Container Registry hosts containers at ghcr.io/OWNER/IMAGE-NAME.
| Cliente del paquete | Lenguaje | Formato del paquete | Descripción |
|---|---|---|---|
| docker | N/A | Dockerfile | Gestor de paquetes Node |
For more information about the container support offered by GitHub Container Registry, see "About GitHub Container Registry."
Support for package registries
Package registries use PACKAGE-TYPE.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME as the package host URL, replacing PACKAGE-TYPE with the Package namespace. For example, your Gemfile will be hosted at rubygem.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME.
| Lenguaje | Descripción | Formato del paquete | Cliente del paquete | Package namespace |
|---|---|---|---|---|
| JavaScript | Gestor de paquetes Node | package.json | npm | npm.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
| Ruby | Gestor de paquetes RubyGems | Gemfile | gema | rubygems.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
| Java | Herramienta de administración y comprensión Apache Maven | pom.xml | mvn | maven.HOSTNAME/OWNER/REPOSITORY/IMAGE-NAME |
| Java | Herramienta de automatización de construcción Gradle para Java | build.gradle o build.gradle.kts | gradle | maven.HOSTNAME/OWNER/REPOSITORY/IMAGE-NAME |
| .NET | Administración del paquete NuGet para .NET | nupkg | dotnet CLI | nuget.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME` |
Para obtener más información acerca de la configuración de tu cliente de paquete para usar con Paquetes de GitHub, consulta Usar Paquetes de GitHub con el ecosistema de tu proyecto."
Autenticar a 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 aGITHUB_TOKEN. - For the container registry (
ghcr.io/OWNER/IMAGE-NAME), you must use a personal access token.
Sobre tokens
| Ámbito | Descripción |
|---|---|
read:packages | Download and install container images from GitHub Container Registry |
write:packages | Upload and publish container images to GitHub Container Registry |
delete:packages | Delete specified versions of private or public container images from GitHub Container Registry. For more information, see "Deleting a container image." |
To learn about available scopes and permissions for container images, see "About GitHub Container Registry" or "Configuring access control and visibility for container images."
Para obtener más información, consulta las secciones "Crear un token de acceso personal" y "Alcances disponibles".
Administrar paquetes
Para instalar o publicar un paquete, debes usar un token con el ámbito adecuado, y tu cuenta de usuario debe tener los permisos pertinentes para ese repositorio.
Por ejemplo:
- Para descargar e instalar paquetes desde un repositorio, tu token debe tener el ámbito
read:packages, y tu cuenta de usuario debe tener permisos de lectura para el repositorio. Si el repositorio es privado, tu token también debe tener el ámbitorepo. - Para eliminar una versión especificada de un paquete privado en GitHub, tu token debe tener los ámbitos
delete:packagesyrepo. Los paquetes públicos no se pueden eliminar. Para obtener más información, consulta "Eliminar un paquete".
| Ámbito | Descripción | Permisos de repositorio |
|---|---|---|
read:packages | Descarga e instala paquetes de Paquetes de GitHub | lectura |
write:packages | Carga y publica paquetes en Paquetes de GitHub | escritura |
delete:packages | Elimina versiones especificadas de paquetes privados de Paquetes de GitHub | admin |
repo | Instala, carga y elimina determinados paquetes en repositorios privados (junto con read:packages, write:packages o delete:packages) | lectura, escritura o admin |
Cuando creas un flujo de trabajo de GitHub Actions, puedes usar el GITHUB_TOKEN para publicar e instalar paquetes en Paquetes de GitHub sin la necesidad de almacenar y administrar un token de acceso personal.
Para obtener más información, consulta:
- Encuentras algo que contradice la documentación
- "Crear un token de acceso personal"
- Tu paquete publicado contiene datos confidenciales, como violaciones del RGPD, claves de API o información de identificación personal
Administrar paquetes
Puedes eliminar una versión de un paquete privado en GitHub o usar la API de GraphQL. Cuando usas la API de GraphQL para consultar y eliminar paquetes privados, debes usar el mismo token que usas para autenticarte en Paquetes de GitHub. Para obtener más información, consulta las secciones "Borrar un paquete" y "Formar llamadas con GraphQL".
Puedes configurar webhooks para suscribirte a eventos relacionados con paquetes, como cuando se publica o se actualiza un paquete. Para obtener más información, consulta el "evento de webhook de package".
Contactar con soporte técnico
Si tienes comentarios o solicitudes de características para Paquetes de GitHub, usa el formulario de comentarios de para Paquetes de GitHub.
Contacta el Soporte de GitHub sobre Paquetes de GitHub usando nuestro formulario de contacto si:
- Encuentras algo que contradice la documentación
- Encuentras errores vagos o poco claros
- Tu paquete publicado contiene datos confidenciales, como violaciones del RGPD, claves de API o información de identificación personal