# Introducción a los paquetes de GitHub

GitHub Packages es un servicio de hospedaje de paquetes de software que permite hospedar los paquetes de software de forma privada o pública y usar paquetes como dependencias en los proyectos.

<!-- 2148AF7B-5FF8-4B28-A808-D692FEE2225A -->

## Acerca de GitHub Packages

GitHub Packages es una plataforma para hospedar y administrar paquetes, incluidos los contenedores y otras dependencias.
GitHub Packagescombina el código fuente y los paquetes en un solo lugar para proporcionar administración y facturación integrados, por lo que puede centralizar el desarrollo de software en GitHub.

Puede integrar GitHub Packages con las API, GitHub y webhooks de GitHub Actions para crear un flujo de trabajo DevOps de punta a punta que incluya su código, CI y soluciones de implementación.

GitHub Packages ofrece registros de paquetes diferentes para administradores de paquetes usados habitualmente, como npm, RubyGems, Apache Maven, Gradle, Docker y NuGet.
Para obtener más información sobre los distintos registros de paquetes compatibles GitHub Packages , consulte [Trabajar con un registro de Paquetes de GitHub](/es/enterprise-server@3.22/packages/working-with-a-github-packages-registry).

Puede ver el archivo Léame de un paquete, así como los metadatos como las licencias, las estadísticas de descarga, el historial de versiones y mucho más en GitHub. Para más información, consulta [Visualizar paquetes](/es/enterprise-server@3.22/packages/learn-github-packages/viewing-packages).

Para obtener más información sobre la configuración de GitHub Packages en GitHub Enterprise Server, vea [Introducción a los paquetes de GitHub para su empresa](/es/enterprise-server@3.22/admin/configuring-packages/getting-started-with-github-packages-for-your-enterprise).

### Resumen de los permisos de los paquetes

Los permisos de un paquete se heredan del repositorio en el que se hospeda o se pueden definir para usuarios u organizaciones específicas. Algunos registros solo admiten permisos heredados de un repositorio. Para obtener una lista de estos registros, consulta [Acerca de los permisos para los Paquetes de GitHub](/es/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages). Para obtener más información sobre el acceso a paquetes, consulta [Configurar la visibilidad y el control de accesos de un paquete](/es/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility).

### Información general sobre la visibilidad de paquetes

Puedes publicar paquetes en un repositorio público (paquetes públicos) para compartir con todos en la empresa, o bien en un repositorio privado (paquetes privados) para compartir con colaboradores o con una organización.

## Clientes y formatos admitidos

<!-- If you make changes to this feature, check whether any of the changes affect languages listed in /get-started/learning-about-github/github-language-support. If so, please update the language support article accordingly. -->

GitHub Packages usa los comandos de herramientas de paquetes nativos con los que ya está familiarizado para publicar e instalar versiones de paquetes.

### Soporte para los registros de paquetes

| Idioma                              | Descripción                                                    | Formato del paquete | Cliente del paquete |
| ----------------------------------- | -------------------------------------------------------------- | ------------------- | ------------------- |
| JavaScript                          | Gestor de paquetes Node                                        | `package.json`      | `npm`               |
| Ruby                                | Gestor de paquetes RubyGems                                    | `Gemfile`           | `gem`               |
| Java                                | Herramienta de gestión y comprensión de proyectos Apache Maven | `pom.xml`           | `mvn`               |
| Java                                | Herramienta de automatización de construcción Gradle para Java |                     |                     |
| `build.gradle` o `build.gradle.kts` | `gradle`                                                       |                     |                     |
| .NET                                | Administración del paquete NuGet para .NET                     | `nupkg`             | CLI de `dotnet`     |
| N/D                                 | Plataforma de administración del contenedor Docker             | `Dockerfile`        | `Docker`            |

> \[!NOTE]
> Al habilitar el registro de Docker, se recomienda encarecidamente habilitar también el aislamiento del subdominio. Para más información, consulta [Habilitar el aislamiento de subdominio](/es/enterprise-server@3.22/admin/configuring-settings/hardening-security-for-your-enterprise/enabling-subdomain-isolation).

Para obtener más información sobre cómo configurar el cliente de paquete para su uso con GitHub Packages, vea [Trabajar con un registro de Paquetes de GitHub](/es/enterprise-server@3.22/packages/working-with-a-github-packages-registry).

## Autenticación en GitHub Packages

> \[!NOTE]
> GitHub Packages solo admite la autenticación usando un personal access token (classic). Para más información, consulta [Administración de tokens de acceso personal](/es/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Necesitas un token de acceso para publicar, instalar y eliminar paquetes privados, internos y públicos.

Puedes utilizar un personal access token (classic) para autenticarte en el GitHub Packages o en la API de GitHub. Cuando creas un personal access token (classic), puedes asignar al token diferentes ámbitos en función de tus necesidades. Para más información sobre los ámbitos relacionados con paquetes para un personal access token (classic), consulta [Acerca de los permisos para los Paquetes de GitHub](/es/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#about-scopes-and-permissions-for-package-registries).

Para autenticarte en un registro del GitHub Packages dentro de un flujo de trabajo de GitHub Actions, puedes utilizar:

* `GITHUB_TOKEN` para publicar los paquetes asociados con el repositorio del flujo de trabajo.
* Un personal access token (classic) con al menos alcance `read:packages` para instalar los paquetes asociados con otros repositorios privados (`GITHUB_TOKEN` puede utilizarse si el repositorio tiene acceso de lectura al paquete. Consulta [Configurar la visibilidad y el control de accesos de un paquete](/es/enterprise-server@3.22/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility)).

Para obtener más información sobre `GITHUB_TOKEN` usado en los flujos de trabajo de GitHub Actions, consulte [Uso de GITHUB\_TOKEN para la autenticación en flujos de trabajo](/es/enterprise-server@3.22/actions/tutorials/authenticate-with-github_token#using-the-github_token-in-a-workflow).

## Administración de paquetes

Puede eliminar un paquete en la GitHub interfaz de usuario o mediante la API REST. Para más información, consulta [Borrar y restablecer un paquete](/es/enterprise-server@3.22/packages/learn-github-packages/deleting-and-restoring-a-package) y el [Puntos de conexión de API REST para paquetes](/es/enterprise-server@3.22/rest/packages). En determinados registros, puedes usar GraphQL para eliminar una versión de un paquete privado.

No puedes usar GraphQL API de GitHub Packages con registros que admiten permisos detallados. Para los registros que **solo** admiten permisos con ámbito de repositorio y que se pueden usar con la GraphQL API, consulta [Acerca de los permisos para los Paquetes de GitHub](/es/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages).

Al usar GraphQL API para consultar y eliminar paquetes privados, debe usar el mismo personal access token (classic) que se usa para autenticarse en GitHub Packages.

Para obtener más información, consulte [Borrar y restablecer un paquete](/es/enterprise-server@3.22/packages/learn-github-packages/deleting-and-restoring-a-package) y [Formar llamados con GraphQl](/es/enterprise-server@3.22/graphql/guides/forming-calls-with-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 [Eventos y cargas de webhook](/es/enterprise-server@3.22/webhooks/webhook-events-and-payloads#package).

## Contactando con el soporte técnico

Si necesita soporte técnico para GitHub Packages, póngase en contacto con los administradores del sitio.