Skip to main content

Determinación de cómo las personas usan repositorios en tu organización

Crea una directiva de repositorio para controlar quién puede hacer cosas como crear y eliminar repositorios.

¿Quién puede utilizar esta característica?

Organization owners

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 una empresa, puedes crear una directiva de repositorio que se aplique a varias organizaciones. Consulta Determinación de cómo las personas usan los repositorios en la empresa.

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?

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.

Como alternativa a las propiedades personalizadas, puedes elegir de una lista de repositorios o usar la sintaxis fnmatch para incluir los repositorios con determinados patrones de nomenclatura.

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.

Creación de una directiva de repositorio

  1. En la esquina superior derecha de GitHub, haz clic en la foto del perfil y luego en Your organizations.
  2. Junto a la organización, haga clic en Settings.
  3. En el lado izquierdo de la página, en la barra lateral, haz clic en Policies.
  4. En "Policies", haz clic en Repository.
  5. Haga clic en Nueva directiva.
  6. 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. 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é repositorios de la organización se aplica la directiva. Puedes seleccionar todos los repositorios, elegir una selección de repositorios existentes o crear una regla dinámica por nombre o propiedad personalizada para los repositorios actuales y futuros.

Si estableces una lista dinámica por nombre, agregarás uno o varios patrones de nomenclatura mediante la sintaxis fnmatch.

  • Por ejemplo, la cadena *open-source coincidiría con cualquier repositorio 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.
  • Opcionalmente, puedes impedir que cualquier usuario de fuera de la lista de permitidos cambie el nombre de los repositorios seleccionados. Como alternativa, puedes controlar el formato de los nombres en la sección "Policies".

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:

EstadoDescripción
CancelledEl colaborador ha cancelado la solicitud.
CompletedLa solicitud se ha aprobado y las confirmaciones se han insertado en el repositorio.
DeniedSe ha revisado y denegado la solicitud.
ExpiredLa solicitud ha expirado. Las solicitudes son válidas durante 7 días.
OpenLa 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.