# Acerca de los permisos para los Paquetes de GitHub

Aprende cómo administrar los permisos de tus paquetes.

Los permisos de los paquetes se pueden limitar a un usuario u organización o bien a un repositorio.

## Permisos granulares para paquetes con alcance de organización/usuario

Los paquetes con permisos granulares tienen como ámbito una cuenta personal u organización. Puedes cambiar el control de accesos y la visibilidad del paquete de forma separada desde un repositorio que esté conectado (o enlazado) a un paquete.

Los registros siguientes GitHub Packages admiten permisos granulares.

* Container registry

## Permisos para los paquetes con alcance de repositorio

Un paquete de ámbito de repositorio hereda los permisos y la visibilidad del repositorio en el que se ha publicado. Puede encontrar un paquete asociado a un repositorio si va a la página principal del repositorio y hace clic en el vínculo **Paquetes** en la parte derecha de la página.

Los registros siguientes GitHub Packages**solo** admiten permisos con ámbito de repositorio.

* Registro de Docker (`docker.pkg.github.com`)
* Registro de npm <!-- markdownlint-disable-line GHD034 -->
* Registro de Apache maven
* Registro de Gradle
* Registro de NuGet
* Registro rubyGems

En el caso de los Container registry, puede elegir permitir que los paquetes se limiten a un usuario o a una organización, o que se vinculen a un repositorio.
Para obtener información sobre la migración a Container registry, consulte [Migrarse al registro del contenedor desde el registro de Docker](/es/enterprise-server@3.22/packages/working-with-a-github-packages-registry/migrating-to-the-container-registry-from-the-docker-registry).

## Visibilidad y permisos de acceso para paquetes

Si un paquete pertenece a un registro que admite permisos granulares, cualquiera que tenga permisos de administrador en el paquete puede establecer que sea privado o público, y puede conceder permisos de acceso al paquete que son independientes de los permisos establecidos en los niveles de organización y repositorio. Para obtener la lista de registros que admiten permisos granulares, consulta [Acerca de los permisos para los Paquetes de GitHub](/es/enterprise-server@3.22/packages/learn-github-packages/about-permissions-for-github-packages#granular-permissions-for-userorganization-scoped-packages).

En la mayoría de los registros, para extraer un paquete, debes autenticarte con un personal access token o `GITHUB_TOKEN`, independientemente de que el paquete sea público o privado. Sin embargo, en los datos Container registry, los paquetes públicos permiten el acceso anónimo y se pueden extraer sin autenticación ni inicio de sesión a través de la CLI.

Al publicar un paquete, obtendrás automáticamente permisos de administrador para el paquete. Si publicas un paquete en una organización, cualquier persona con el rol `owner` en la organización también obtiene permisos de administrador para el paquete.

Para paquetes con ámbito en una cuenta personal, puedes otorgar un rol de acceso a cualquier persona. Para paquetes con ámbito en una organización, puedes otorgar un rol de acceso a cualquier persona o equipo en la organización.

Si usa un flujo de trabajo de GitHub Actions para administrar los paquetes, puede conceder un rol de acceso al repositorio en el que se almacena el flujo de trabajo en a través de la opción de menú **Acceso a acciones**. Para más información, 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#ensuring-workflow-access-to-your-package).

| Permiso        | Descripción del acceso                                                                                                                                 |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Lectura        | Puede descargar el paquete. <br> Puede leer los metadatos del paquete.                                                                                 |
| Escritura      | Puede cargar y descargar este paquete. <br> Puede leer y escribir metadatos del paquete.                                                               |
| Administración | Puede cargar, descargar, borrar y administrar este paquete. <br> Puede leer y escribir metadatos del paquete. <br> Puede conceder permisos de paquete. |

> \[!NOTE]
> La capacidad de que los flujos de trabajo de GitHub Actions eliminen y restauren paquetes mediante la API de REST se encuentra actualmente en versión preliminar pública y está sujeta a cambios.

Para más información, 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).

## Acerca de alcances y permisos para registros de paquetes

> \[!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).

Para usar o administrar un paquete hospedado por un registro de paquetes, debe usar un personal access token (classic) con el ámbito adecuado y su cuenta personal debe tener los permisos adecuados.

Por ejemplo:

* Para descargar e instalar paquetes de un repositorio, su personal access token (classic) debe tener el alcance `read:packages`, y su cuenta de usuario debe tener permiso de lectura.
* Para eliminar un paquete, su personal access token (classic) debe tener al menos los permisos `delete:packages` y `read:packages`. 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).

| Ámbito            | Descripción                                              | Permiso necesario |
| ----------------- | -------------------------------------------------------- | ----------------- |
| `read:packages`   | Descarga e instalación de paquetes desde GitHub Packages | leer              |
| `write:packages`  | Carga y publicación de paquetes en GitHub Packages       | escribir          |
| `delete:packages` | Eliminar paquetes de GitHub Packages                     | Administrador     |

> \[!NOTE]
> La capacidad de que los flujos de trabajo de GitHub Actions eliminen y restauren paquetes mediante la API de REST se encuentra actualmente en versión preliminar pública y está sujeta a cambios.

Cuando cree un flujo de trabajo de GitHub Actions, puede usar el `GITHUB_TOKEN` para publicar, instalar, eliminar y restaurar paquetes en GitHub Packages sin necesidad de almacenar ni administrar un personal access token.

Para obtener más información, consulte:

* [Publicar e instalar un paquete con Acciones de GitHub](/es/enterprise-server@3.22/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions)
* [Administración de tokens de acceso personal](/es/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)
* [Ámbitos para las aplicaciones de OAuth](/es/enterprise-server@3.22/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps#available-scopes)

## Acerca de las transferencias de repositorios

Puedes transferir un repositorio a otra cuenta personal u organización. Para más información, consulta [Transferir un repositorio](/es/enterprise-server@3.22/repositories/creating-and-managing-repositories/transferring-a-repository).

Al transferir un repositorio, GitHub puede transferir los paquetes asociados al repositorio, en función del registro al que pertenecen los paquetes.

* En el caso de los registros que admiten permisos granulares, los paquetes se limitan a una cuenta personal u organización, y la cuenta asociada al paquete no cambia al transferir un repositorio. Si has vinculado un paquete a un repositorio, el vínculo se ha eliminado al transferir el repositorio a otro usuario. Todos los GitHub Actions flujos de trabajo asociados con el repositorio perderán el acceso al paquete. Si el paquete heredó sus permisos de acceso del repositorio vinculado, los usuarios perderán el acceso al paquete. Para obtener la lista de estos registros, consulta [Permisos granulares para paquetes de ámbito de usuario o organización](#granular-permissions-for-userorganization-scoped-packages) más arriba.
* En el caso de los registros que solo admiten permisos con ámbito de repositorio, los paquetes se publican directamente en los repositorios y GitHub transfieren los paquetes asociados a un repositorio como parte de la transferencia del repositorio. Todo el uso facturable asociado a los paquetes se facturará posteriormente al propietario nuevo del repositorio. Si el propietario del repositorio anterior es eliminado como colaborador del repositorio, es posible que puedan ya no acceder a los paquetes asociados al repositorio. Para obtener la lista de estos registros, consulta [Permisos para paquetes de ámbito de repositorio](#permissions-for-repository-scoped-packages) más arriba.

## Mantener el acceso a paquetes en los flujos de trabajo de GitHub Actions

Para asegurarse de que los flujos de trabajo mantendrán el acceso a los paquetes, asegúrese de que usa el token de acceso adecuado en el flujo de trabajo y de que ha habilitado GitHub Actions el acceso al paquete.

Para obtener más información conceptual sobre GitHub Actions o ejemplos de uso de paquetes en flujos de trabajo, consulte [Administrar los paquetes de GitHub utilizando flujos de trabajo de GitHub Actions](/es/enterprise-server@3.22/packages/managing-github-packages-using-github-actions-workflows).

### Tokens de acceso

> \[!NOTE]
> La capacidad de que los flujos de trabajo de GitHub Actions eliminen y restauren paquetes mediante la API de REST se encuentra actualmente en versión preliminar pública y está sujeta a cambios.

* Para publicar, instalar, eliminar y restaurar los paquetes asociados con el repositorio del flujo de trabajo, use `GITHUB_TOKEN`.
* Para instalar paquetes asociados a otros repositorios privados que `GITHUB_TOKEN` no pueden acceder, use un personal access token (classic)

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).