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 un alcance de una cuenta personal o de 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 siguientes registros de GitHub Packages admiten permisos detallados.
- Container registry - Registro npm - Registro NuGet - Registro RubyGems
Permisos para del ámbito del repositoriopaquetes
Un paquete del ámbito del repositorio hereda los permisos y la visibilidad del repositorio que lo posee. Puede encontrar un paquete con ámbito de repositorio si va a su página principal y hace clic en el vínculo Paquetes de la parte derecha. Para más información, vea "Conexión de un repositorio a un paquete".
Los siguientes registros de GitHub Packages solo admiten permisos del ámbito de repositorio.
: Registro de Docker (docker.pkg.github.com
)
- Registro de Apache maven
- Registro Gradle
Para demás registros, puedes optar por permitir que los paquetes se limiten a un usuario u organización o bien se vinculen a un repositorio.
Permisos de visibilidad y acceso para las imágenes de contenedor
Si un paquete pertenece a un registro que admite permisos granulares, cualquier persona con permisos de administrador en el paquete puede establecer el paquete en privado o público. Los paquetes públicos permiten el acceso anónimo y pueden extraerse sin autenticación ni inicio de sesión a través de la CLI. Para obtener la lista de registros que admiten permisos granulares, consulta "Acerca de los permisos para los Paquetes de GitHub".
Cualquier persona con permisos de administrador en el paquete también puede conceder permisos de acceso para el paquete que son independientes de los permisos establecidos en los niveles de organización y repositorio.
Nota: Si publicas un paquete vinculado a un repositorio, el paquete hereda sus permisos del repositorio vinculado de manera predeterminada. Para acceder a la configuración de permisos granulares del paquete, debes quitar los permisos heredados del paquete. Si eres el propietario de una organización, puedes deshabilitar la herencia automática de permisos para todos los paquetes nuevos cuyo ámbito sea la organización. Para obtener más información, consulta "Selección de si un paquete hereda los permisos de un repositorio" y "Deshabilitación de la herencia automática de permisos de acceso en una organización".
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 usas un flujo de trabajo de GitHub Actions para administrar los paquetes, puedes conceder un rol de acceso al repositorio en el que se almacena el flujo de trabajo en mediante el botón Agregar repositorio en "Administrar el acceso a acciones" en la configuración del paquete. Para obtener más información, vea «Configurar la visibilidad y el control de accesos de un paquete».
Permiso | Descripción del acceso |
---|---|
Lectura | Puede descargar el paquete. Puede leer los metadatos del paquete. |
Escritura | Puede cargar y descargar este paquete. Puede leer y escribir metadatos del paquete. |
Administración | Puedes cargar, descargar y administrar este paquete. Puede leer y escribir metadatos del paquete. Puedes eliminar y restaurar paquetes. |
Nota: La capacidad de los flujos de trabajo de GitHub Actions para eliminar y restaurar paquetes mediante la API de REST está actualmente en versión beta pública y está sujeta a cambios.
Para más información, vea "Configuración del control de acceso y la visibilidad de un paquete".
Administrar paquetes
GitHub Packages solo admite la autenticación mediante un personal access token (classic). Para obtener más información, vea «Creación de un token de acceso personal».
Para utilizar o administrar un paquete que hospede un registro de paquete, debes utilizar un personal access token (classic) con el alcance adecuado y tu cuenta personal debe tener los permisos adecuados.
Por ejemplo:
- Para descargar e instalar los paquetes desde un repositorio, el personal access token (classic) debe tener el ámbito
read:packages
y la cuenta de usuario debe tener permisos de lectura. - Para eliminar un paquete en GitHub Enterprise Cloud, el personal access token (classic) debe tener al menos el ámbito
delete:packages
yread:packages
. El ámbitorepo
también es necesario para los paquetes con ámbito de repositorio. Para más información, vea "Eliminación y restauración de un paquete".
Ámbito | Descripción | Permiso necesario |
---|---|---|
read:packages | Descarga e instala paquetes de GitHub Packages | leer |
write:packages | Carga y publica paquetes en GitHub Packages | escritura |
delete:packages | Borrar paquetes del GitHub Packages | admin |
repo | Carga y eliminación de paquetes (junto con write:packages , o delete:packages ) | escritura o admin |
Nota: La capacidad de los flujos de trabajo de GitHub Actions para eliminar y restaurar paquetes mediante la API de REST está actualmente en versión beta pública y está sujeta a cambios.
Al crear un flujo de trabajo de GitHub Actions, puedes usar GITHUB_TOKEN
para publicar, instalar, eliminar, restaurar paquetes en GitHub Packages sin necesidad de almacenar y administrar un personal access token.
Para obtener más información, consulta:
- "Configuración de la visibilidad y el control de acceso de un paquete"
- "Publicación e instalación de un paquete con GitHub Actions"
- "Creación de un personal access token"
- "Ámbitos disponibles"
Acerca de las transferencias de repositorios
Puedes transferir un repositorio a otra cuenta de usuario u organización. Para más información, vea "Transferencia de un repositorio".
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 de usuario 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 quita al transferir el repositorio a otro usuario, y los codespaces o flujos de trabajo de GitHub Actions asociados al repositorio 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".
- En el caso de los registros que solo admiten permisos con ámbito de repositorio, los paquetes se publican directamente en los repositorios y GitHub transfiere los paquetes asociados a un repositorio como parte de la transferencia del repositorio. Todo el uso facturable asociado a los paquetes se facturarán posteriormente al propietario nuevo. Si el propietario del repositorio anterior se quita como colaborador del repositorio, es posible que ya no pueda acceder a los paquetes asociados al repositorio. A fin de obtener la lista de estos registros, consulta "Permisos para paquetes con ámbito de repositorio".
Mantener el acceso a los paquetes en los flujos de trabajo de GitHub Actions
Para garantizar que tus flujos de trabajo mantendrán el acceso a tus paquetes, asegúrate de que estás utilizando el token de acceso correcto en tu flujo de trabajo y de haber habilitado el acceso a las GitHub Actions para tu paquete.
Para más información conceptual sobre GitHub Actions o ejemplos de uso de paquetes en flujos de trabajo, vea "Administración de paquetes de GitHub mediante flujos de trabajo de Acciones de GitHub".
Tokens de acceso
Nota: La capacidad de los flujos de trabajo de GitHub Actions para eliminar y restaurar paquetes mediante la API de REST está actualmente en versión beta pública y está sujeta a cambios.
- Para publicar, instalar, eliminar, restaurar paquetes asociados con el repositorio de flujo de trabajo, usa
GITHUB_TOKEN
. - Para instalar paquetes asociados con otros repositorios privados a los que
GITHUB_TOKEN
no puede acceder, usa un personal access token (classic).
Para más información sobre el uso de GITHUB_TOKEN
en flujos de trabajo de GitHub Actions, vea "Autenticación en un flujo de trabajo".
Acceso a las GitHub Actions para las imágenes de contenedor
Para garantizar que tus flujos de trabajo tienen acceso a tu imagen de contenedor, debes habilitar el acceso a las GitHub Actions para los repositorios en donde se ejecuta tu flujo de trabajo. Puedes encontrar este ajuste en la página de configuración de tu paquete. Para más información, vea "Garantía del acceso de flujo de trabajo al paquete".