Nota:
Las directivas de repositorio se encuentran actualmente en versión preliminar pública y están sujetas a cambios. Puedes tener hasta 75 conjuntos de reglas y directivas totales por organización y hasta 75 directivas y conjuntos de reglas totales por empresa.
Para controlar los eventos clave en el ciclo de vida de los repositorios, como quién puede crear o eliminar repositorios, puedes crear una directiva de repositorio. Una directiva de repositorio es una colección de restricciones que proporcionan un control flexible sobre qué usuarios se ven afectados y qué repositorios están incluidos.
En una directiva de repositorio, puedes restringir:
- Qué visibilidades se permiten para los nuevos repositorios y los cambios de visibilidad.
- Quién puede crear repositorios.
- Quién puede eliminar repositorios.
- Quién puede transferir repositorios fuera de una organización.
- Cómo las personas pueden asignar un nombre a los repositorios.
Sugerencia
Si eres propietario de la organización, puedes crear una directiva de repositorio para una organización específica. Consulta Determinación de cómo las personas usan repositorios en tu organización.
Ejemplos
Puedes usar una directiva de repositorio para hacer cosas como:
- Asegurarte de que todos los repositorios nuevos usen una determinada convención de nomenclatura, como
kebab-case. - Impedir eliminaciones del repositorio excepto las de los administradores de la organización.
- Permitir que los repositorios públicos se creen solo en la organización de "código abierto" de tu empresa.
- Evitar que los repositorios públicos se cambien a privados para evitar la posible pérdida de metadatos.
¿Cómo seleccionaré los repositorios?
En primer lugar, seleccionarás las organizaciones de tu empresa. Puedes seleccionar todas las organizaciones, elegir de una lista o crear una regla dinámica mediante la sintaxis fnmatch. Si usas Enterprise Managed Users, también puedes elegir dirigirte a todos los repositorios que pertenezcan a usuarios de tu empresa.
A continuación, seleccionarás los repositorios de las organizaciones seleccionadas. Se recomienda usar directivas de repositorio junto con propiedades de repositorio personalizadas. Al agregar propiedades personalizadas a los repositorios, podrás dirigirte de forma flexible a esos repositorios en una directiva.
Por ejemplo, puedes agregar una propiedad para marcar los repositorios que contienen datos de producción u otra información confidencial y, luego, impedir que otros usuarios haga públicos esos repositorios.
Para crear y establecer propiedades personalizadas, consulta Administración de propiedades personalizadas para repositorios de la organización.
Interacción con otras directivas
Algunas de las restricciones disponibles son duplicados de directivas que puedes haber establecido en la página "Member privileges" de la configuración de tu organización o empresa.
La creación de una directiva de repositorio no invalida las directivas de "privilegios de miembro" existentes. Al contrario, las directivas son acumulativas, por lo que se aplica la versión más restrictiva de una directiva. Esto se aplica tanto a las directivas de privilegios de miembro como a otras directivas de repositorio que los usuarios han creado a nivel de empresa u organización.
En comparación con las directivas de privilegios de miembro, las directivas de repositorio tienen varias ventajas:
- Ofrecen una orientación más flexible hacia organizaciones y repositorios.
- Permiten conceder a determinados actores la opción de omitir las directivas.
- Son visibles para los propietarios de la organización, por lo que hay más transparencia en torno a lo que está permitido.
- Permiten dirigirse a repositorios propiedad de Enterprise Managed Users.
Creación de una directiva de repositorio
- En la esquina superior derecha de GitHub, haz clic en la fotografía de perfil.
- En función de tu entorno, haz clic en Your enterpriseo en Your enterprises y, a continuación, haz clic en la empresa que deseas ver.
- En la parte superior de la página, haz clic en Policies.
- En "Policies", haz clic en Repository.
- Haga clic en Nueva directiva.
- Configura la nueva directiva y haz clic en Create. Para obtener ayuda, consulta las siguientes subsecciones.
Nombre de la directiva
Usa algo descriptivo para comunicar el propósito de la directiva. Los propietarios de la organización pueden ver la directiva, así que unos nombres adecuados aportan una mayor claridad. Por ejemplo: Prevent public repos on production.
Estado de cumplimiento
Si no deseas que se aplique la directiva cuando se cree, establécela en "Disabled". De lo contrario, establécela en "Active".
Lista de permitidos
Elige qué roles pueden omitir las restricciones de esta directiva.
Destinos
Elige a qué organizaciones y repositorios se aplica la directiva.
Organizaciones de destino
Selecciona todas las organizaciones, elige una selección de organizaciones existentes o establece una lista dinámica por nombre. Si usas Enterprise Managed Users, también puedes elegir dirigirte a todos los repositorios que pertenezcan a usuarios de tu empresa.
Si estableces una lista dinámica, agregarás uno o varios patrones de nomenclatura mediante la sintaxis fnmatch. Por ejemplo, la cadena *open-source coincidiría con cualquier organización con un nombre que termine con open-source. Para obtener más información sobre la sintaxis, consulta Creación de conjuntos de reglas de un repositorio.
Repositorios de destino
Elige los repositorios (actuales o futuros) a los que dirigirte en las organizaciones seleccionadas. Puedes seleccionar todos los repositorios o establecer una lista dinámica por propiedad personalizada.
Directivas
Elige qué restricciones se incluyen. Cuando la directiva está activa, las restricciones se aplican en todos los repositorios de destino, pero los usuarios o equipos pueden omitirlas en la lista de permitidas.
Si eliges la directiva "Restrict names", debes usar la sintaxis de expresiones regulares para establecer un patrón con el que los nombres de repositorio deben o no coincidir. Por ejemplo, un patrón para aplicar la nomenclatura kebab-case tendría un aspecto similar a ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$.
- Los patrones admiten la sintaxis RE2. Consulta la guía de sintaxis de Google.
- Para validar las expresiones, haz clic en Test pattern y escribe un patrón y un valor de prueba.
Delegación de omisión de directivas
Nota:
La omisión delegada de directiva de repositorio está en versión preliminar pública y sujeta a cambios.
La omisión delegada para las directivas de repositorio te permite controlar quién puede omitir las directivas de repositorio para las eliminaciones del repositorio y los cambios de visibilidad.
Con la omisión delegada, los administradores del repositorio deben enviar una solicitud para cambiar la visibilidad del repositorio o eliminar el repositorio. La solicitud se envía a un grupo designado de revisores, que aprueban o deniegan la solicitud para omitir las directivas de repositorio.
Si se aprueba la solicitud para omitir las directivas de repositorio, el cambio de solicitud se completa inmediatamente. Si se deniega la solicitud, no se realizará el cambio solicitado, pero se podrá volver a solicitar.
Para configurar la omisión delegada, los propietarios de la empresa o los propietarios de la organización crean primero una "lista de omisión". La lista de omisión incluye roles y equipos específicos, como administradores de equipos o repositorios, que supervisan las solicitudes para omitir las directivas de repositorio. Para más información, consulta Determinación de cómo las personas usan los repositorios en la empresa.
Administración de solicitudes de omisión
Administración de solicitudes para omitir las reglas de inserción
Nota:
La omisión delegada de directiva de repositorio está en versión preliminar pública y sujeta a cambios.
Puedes ver y administrar todas las solicitudes de privilegios de omisión en la página “Solicitudes de omisión”, que se encuentra en la configuración de Directiva.
Puede filtrar las solicitudes por aprobador (miembro de la lista de omisión), solicitante (colaborador que realiza la solicitud), período de tiempo y estado. Se asignan los siguientes estados a una solicitud:
| Estado | Descripción |
|---|---|
Cancelled | El colaborador ha cancelado la solicitud. |
Completed | La solicitud se ha aprobado y las confirmaciones se han insertado en el repositorio. |
Denied | Se ha revisado y denegado la solicitud. |
Expired | La solicitud ha expirado. Las solicitudes son válidas durante 7 días. |
Open | La solicitud aún no se ha revisado o se ha aprobado, pero las confirmaciones no se han insertado en el repositorio. |
Cuando un colaborador solicita privilegios de omisión para insertar una confirmación con contenido restringido, todos los miembros de la lista de omisión reciben una notificación por correo electrónico que contiene un vínculo a la solicitud. Los miembros de la lista de omisión tienen 7 días para revisar y aprobar o denegar la solicitud antes de que esta expire.
El colaborador recibe una notificación de la decisión por correo electrónico y debe realizar la acción necesaria. Si se aprueba la solicitud, el colaborador puede insertar la confirmación que con contenido restringido en el repositorio. Si se deniega la solicitud, el colaborador debe eliminar el contenido restringido de la confirmación para insertar correctamente la confirmación en el repositorio.
Información adicional
Para establecer directivas adicionales para la administración de repositorios, consulta Requerir políticas de administración de repositorios en tu empresa.