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

Note

Las directivas de repositorio se encuentran actualmente en versión preliminar pública y están sujetas a cambios.

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.

Tip

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, seleccione la foto del perfil y haga clic en Sus organizaciones.
  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 y equipos 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.