Un paquete puede heredar sus permisos de visibilidad y acceso de un repositorio, o bien, para los registros que admiten permisos granulares, puedes establecer la visibilidad y los permisos del paquete de manera independiente a los de un repositorio.
Para obtener la lista de registros que admiten permisiones granulares y para obtener más información sobre los permisos de paquetes, los ámbitos relacionados con paquetes para tokens de acceso personal o la administración de permisos para los flujos de trabajo de GitHub Actions, consulta "Acerca de los permisos para los Paquetes de GitHub".
Acerca de la herencia de los permisos de acceso
En los registros que admiten permisos granulares, los paquetes tienen como ámbito una cuenta u organización personal. En estos registros, puedes publicar un paquete sin vincularlo a un repositorio y, a continuación, determinar quién puede acceder al paquete estableciendo los permisos de acceso y la visibilidad en la configuración del paquete.
De forma predeterminada, si publicas un paquete vinculado a un repositorio, el paquete hereda automáticamente los permisos de acceso (pero no la visibilidad) del repositorio vinculado. Por ejemplo, un usuario que tenga acceso de lectura al repositorio vinculado también tendrá acceso de lectura al paquete. Cuando un paquete hereda automáticamente los permisos de acceso, los flujos de trabajo de GitHub Actions del repositorio vinculado también obtienen acceso al paquete de forma automática.
Un paquete solo hereda automáticamente los permisos de acceso de un repositorio vinculado si vinculas el repositorio al paquete antes de publicar el paquete, por ejemplo, agregando la etiqueta org.opencontainers.image.source
de Docker a una imagen de contenedor. Si conectas un paquete publicado a un repositorio desde la página de configuración del paquete, el paquete conservará sus permisos de acceso existentes y no heredará los permisos de acceso del repositorio a menos que selecciones explícitamente esta opción. Además, las organizaciones pueden deshabilitar la herencia automática de los permisos de acceso para todos los paquetes nuevos que tengan como ámbito su organización. Para obtener más información, consulta "Deshabilitar la herencia automática de los permisos de acceso de una organización" a continuación.
Cuando un paquete hereda los permisos de un repositorio, para conceder o quitar el acceso al paquete, debes configurar las opciones de permisos del repositorio vinculado. Si quieres establecer la configuración de acceso de un paquete de manera independiente del repositorio vinculado al paquete, debes quitar los permisos heredados del paquete. Para obtener más información, consulta "Seleccionar si un paquete hereda los permisos de un repositorio" a continuación.
Si publicas un paquete en un registro que solo admite permisos de ámbito de repositorio, el paquete siempre está vinculado a un repositorio y siempre hereda los permisos del repositorio vinculado.
Acerca de cómo establecer la visibilidad y los 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".
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.
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, vea «Configurar la visibilidad y el control de accesos de un paquete» y «Configurar la visibilidad y el control de accesos de un paquete».
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 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 | Puede cargar, descargar, borrar y administrar este paquete. Puede leer y escribir metadatos del paquete. Puede conceder permisos de paquete. |
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 preliminar pública y está sujeta a cambios.
Configurar el acceso a los paquetes para tu cuenta personal
Si tienes permisos de administrador en un paquete cuyo ámbito es una cuenta personal, puedes asignar roles de lectura, escritura o administrador a otros usuarios. Para obtener más información sobre estos roles de permiso, consulte "Acerca de la herencia de permisos de acceso".
Si tu paquete es privado o interno y tiene como ámbito una organización, entonces solo puedes darles acceso a otros miembros o equipos de la misma.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
En "Administrar acceso" o "Acceso heredado", haz clic en Invitar equipos o personas y escribe el nombre real, el nombre de usuario o la dirección de correo electrónico de la persona a la que quieras conceder acceso. A los equipos no se les puede conceder acceso a un paquete que tenga como ámbito una cuenta personal.
-
Junto al nombre del equipo o el usuario, utiliza el menú desplegable Rol para seleccionar un nivel de permisos que desees.
Se otorgará acceso automáticamente a los usuarios seleccionados y no necesitarán aceptar una invitación previamente.
Configurar el acceso a los paquetes para una organización
Si tienes permisos de administrador en un paquete cuyo ámbito es una organización, puedes asignar roles de lectura, escritura o administración a otros usuarios y equipos. Para obtener más información sobre estos roles de permiso, consulte "Acerca de la herencia de permisos de acceso".
Si tu paquete es privado o interno y tiene como ámbito una organización, entonces solo puedes darles acceso a otros miembros o equipos de la misma.
-
En GitHub, navega a la página principal de tu organización.
-
En el nombre de la organización, haz clic en la pestaña Paquetes.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
En "Administrar acceso" o "Acceso heredado", haz clic en Invitar equipos o personas y escribe el nombre real, el nombre de usuario o la dirección de correo electrónico de la persona a la que quieras conceder acceso. También puedes escribir un nombre de equipo de la organización para conceder acceso a todos sus miembros.
-
Junto al nombre del equipo o el usuario, utiliza el menú desplegable Rol para seleccionar un nivel de permisos que desees.
Se otorgará acceso automáticamente a los usuarios o equipos seleccionados y no necesitarán aceptar una invitación previamente.
Seleccionar si un paquete hereda los permisos de un repositorio
De manera predeterminada, si publicas un paquete vinculado a un repositorio, el paquete hereda los permisos de acceso del repositorio vinculado. Se recomienda permitir que los paquetes hereden sus permisos de un repositorio, ya que esto simplifica el proceso de administración del acceso a un paquete.
Cuando un paquete hereda los permisos de un repositorio, para conceder o quitar el acceso al paquete, debes configurar los permisos del repositorio vinculado.
Si quieres configurar las opciones de acceso de un paquete en un nivel granular, independientemente del repositorio vinculado, debes quitar los permisos heredados del paquete.
Nota: Si cambias la forma en que un paquete obtiene sus permisos de acceso, se sobrescriben los permisos existentes del paquete.
Seleccionar la configuración de herencia para los paquetes que tienen como ámbito una cuenta personal
-
En GitHub, navega hasta la página principal de tu cuenta personal.
-
En la esquina superior derecha de GitHub, haga clic en su foto de perfil y luego en Your profile (Su perfil).
-
En la página del perfil, en el encabezado, haz clic en la pestaña Paquetes.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
Para elegir si un paquete hereda los permisos de acceso del repositorio vinculado, en "Administrar acceso" o "Acceso heredado", selecciona o anula la selección de Heredar acceso del repositorio (recomendado) .
Nota: El nombre de esta sección cambia en función de si el paquete ya hereda sus permisos de un repositorio.
Seleccionar la configuración de herencia para los paquetes que tienen como ámbito una organización
Sugerencia: Si eres el propietario de una organización, puedes impedir que todos los paquetes nuevos cuyo ámbito sea la organización hereden automáticamente los permisos de un repositorio vinculado. Para obtener más información, consulta "Deshabilitar la herencia automática de los permisos de acceso de una organización" a continuación.
-
En GitHub, navega a la página principal de tu organización.
-
En el nombre de la organización, haz clic en la pestaña Paquetes.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
Para elegir si un paquete hereda los permisos de acceso del repositorio vinculado, en "Administrar acceso" o "Acceso heredado", selecciona o anula la selección de Heredar acceso del repositorio (recomendado) .
Nota: El nombre de esta sección cambia en función de si el paquete ya hereda sus permisos de un repositorio.
Deshabilitar la herencia automática de los permisos de acceso de una organización
De manera predeterminada, si publicas un paquete vinculado a un repositorio, el paquete hereda automáticamente los permisos de acceso del repositorio vinculado. Como propietario de la organización, puedes deshabilitar la herencia automática para todos los paquetes cuyo ámbito sea la organización.
Si deshabilitas la herencia automática de los permisos de acceso, los nuevos paquetes cuyo ámbito sea la organización no heredarán automáticamente los permisos de un repositorio vinculado. Sin embargo, cualquier persona con permisos de administrador en un paquete de la organización podrá habilitar o deshabilitar la herencia de permisos de ese paquete.
- En la esquina superior derecha de GitHub, seleccione la foto del perfil y haga clic en Sus organizaciones.
- Junto a la organización, haga clic en Settings.
- En la barra lateral, en la sección "Código, planificación y automatización", haz clic en Paquetes.
- En "Configuración predeterminada del paquete", anula la selección de Heredar acceso del repositorio de origen.
- Haga clic en Save(Guardar).
Garantizar el acceso al flujo de trabajo para tu paquete
En el caso de los paquetes cuyo ámbito es una cuenta personal, para garantizar que un flujo de trabajo de GitHub Actions tiene acceso a tu paquete, debes otorgar acceso explícito al repositorio donde se almacena el flujo de trabajo.
El repositorio especificado no necesita ser aquél en donde se mantiene el código fuente del paquete. Puedes dar acceso de flujo de trabajo a un paquete para varios repositorios.
Si publicas un paquete vinculado a un repositorio, los flujos de trabajo de GitHub Actions en el repositorio vinculado obtienen acceso automáticamente al paquete, a menos que la organización haya deshabilitado la herencia automática de los permisos de acceso. Para obtener más información, consulte "Acerca de la herencia de los permisos de acceso" más arriba.
Notas:
- La sincronización del paquete con el mediante el botón Agregar repositorio en "Administrar el acceso a acciones" en la configuración del paquete de un repositorio no es lo mismo que conectar el paquete a un repositorio. Para obtener más información sobre cómo vincular un repositorio al paquete, consulta "Conectar un repositorio a un paquete".
- Puede optar por limitar los permisos a los trabajos de flujo de trabajo mediante la clave
permissions
y el ámbitopackages
. Para obtener más información, vea «Control de permisos para GITHUB_TOKEN». - Si concedes a un repositorio público acceso a paquetes privados, es posible que las bifurcaciones del repositorio puedan acceder a los paquetes privados.
Acceso de GitHub Actions para paquetes con ámbito de cuentas personales
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
Para garantizar que tu flujo de trabajo tiene acceso a tu paquete, debes agregar el repositorio donde se almacena el flujo de trabajo. En "Administrar el acceso a Acciones", az clic en Agregar repositorio y busca el repositorio que quieras agregar.
-
Usa el menú desplegable Rol para seleccionar el nivel de acceso predeterminado que te gustaría que tuviera el repositorio en tu paquete.
Para personalizar aún más el acceso al paquete, consulta "Configurar el acceso a los paquetes para tu cuenta personal".
Acceso de GitHub Actions para paquetes con ámbito de organizaciones
-
En GitHub, navega a la página principal de tu organización.
-
En el nombre de la organización, haz clic en la pestaña Paquetes.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
En "Administrar el acceso a Acciones", az clic en Agregar repositorio y busca el repositorio que quieras agregar.
-
Usa el menú desplegable Rol para seleccionar el nivel de acceso predeterminado que te gustaría que tuviera el repositorio en tu paquete.
Para personalizar aún más el acceso al paquete, consulta "Configurar el acceso a los paquetes para una organización".
Garantizar el acceso de GitHub Codespaces al paquete
De manera predeterminada, un codespace puede acceder sin problemas a determinados paquetes que admiten permisos detallados, tales como los paquetes que se publican en el mismo repositorio con la opción de Heredar acceso seleccionada. Para obtener una lista de los registros de GitHub Packages que admiten permisos detallados y un acceso sin problemas a GitHub Codespaces, consulta "Acerca de los permisos para los Paquetes de GitHub."
De otra manera, para asegurarte de que un codespace tiene acceso a tu paquete, debes otorgar acceso al repositorio en donde se esté lanzando dicho codespace.
El repositorio especificado no necesita ser aquél en donde se mantiene el código fuente del paquete. Puedes otorgar acceso a un paquete para los codespaces en diversos repositorios.
Una vez que hayas seleccionado el paquete que quieres compartir con un codespace de un repositorio, puedes otorgar este acceso de repositorio.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
En "Manage Codespaces access", haga clic en Add repository.
-
Busca el repositorio que quieras agregar.
-
Repite los pasos para cualquier repositorio adicional al que quieras otorgarle acceso.
-
Si el codespace de un repositorio ya no necesita acceso a un paquete, puedes eliminar el acceso. Haz clic en .
Configurar la visibilidad de los paquetes para tu cuenta personal
Cuando publicas un paquete por primera vez que tiene como ámbito tu cuenta personal, la visibilidad predeterminada es privada y solo tú puedes verlo. Puedes modificar el acceso a los paquetes públicos o privados si cambias la configuración de acceso.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
En la parte inferior de la página, en "Zona de peligro", haz clic en Cambiar visibilidad.
-
Selecciona una configuración de visibilidad:
-
Para que cualquier usuario pueda ver el paquete, selecciona Público.
Advertencia: Una vez que haga público un paquete, no podrá volver a hacerlo privado.
-
Para que una selección personalizada de usuarios pueda ver el paquete, selecciona Privado.
-
-
Para confirmar, escribe el nombre del paquete y, a continuación, haz clic en Entiendo las consecuencias, cambiar la visibilidad del paquete.
Visibilidad de creación de un paquete para los miembros de una organización
En el caso de los registros que admiten permisos granulares, puedes elegir la visibilidad de los paquetes que los miembros de la organización pueden publicar de forma predeterminada. Para obtener la lista de estos registros, consulta "Acerca de los permisos para los Paquetes de GitHub".
- En la esquina superior derecha de GitHub, seleccione la foto del perfil y haga clic en Sus organizaciones.
- Junto a la organización, haga clic en Settings.
- En la izquierda, haga clic en Packages.
- En "Creación de paquetes", elige si quieres habilitar la creación de paquetes públicos, privados o internos.
- Para permitir que los miembros de la organización creen paquetes públicos, haz clic en Público.
- Para permitir que los miembros de la organización creen paquetes privados que solo puedan ver otros miembros de la organización, haz clic en Privado. Puedes personalizar aún más la visibilidad de los paquetes privados.
- Para permitir que los miembros de la organización creen paquetes internos que puedan ver todos los miembros de la organización, haz clic en Interno. Si la organización pertenece a una empresa, todos los miembros de la empresa podrán ver los paquetes.
Configurar la visibilidad de los paquetes para una organización
Cuando publicas un paquete por primera vez, la visibilidad predeterminada es privada y solo tú puedes verlo. Puedes otorgar roles de acceso diferentes a los usuarios o equipos para tu paquete a través de la configuración de acceso. Una vez que hagas tu paquete público, no puedes hacerlo privado nuevamente.
-
En GitHub, navega a la página principal de tu organización.
-
En el nombre de la organización, haz clic en la pestaña Paquetes.
-
Busca y haz clic en el nombre del paquete que quieres administrar.
-
En la página de aterrizaje del paquete, en el lado derecho, haz clic en Configuración del paquete.
-
En la parte inferior de la página, en "Zona de peligro", haz clic en Cambiar visibilidad y elige una configuración de visibilidad:
-
Para que cualquier usuario pueda ver el paquete, haz clic en Público.
Advertencia: Una vez que haga público un paquete, no podrá volver a hacerlo privado.
-
Para que una selección personalizada de ususarios de la organización pueda ver el paquete, haz clic en Privado.
-