Skip to main content

Defining policies for repositories in your enterprise

Enforce repository policies across your enterprise using custom properties and targeting rules.

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.

Examples

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.

Creating a repository policy

  1. En la esquina superior derecha de GitHub, haz clic en la fotografía de perfil.
  2. 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.
  3. En la parte superior de la página, haz clic en Policies.
  4. Under "Policies", click Repository.
  5. Click New policy.
  6. Configure your new policy, then click Create. For help, consult the following subsections.

Policy name

Use something descriptive to communicate the purpose of the policy. Organization owners can view the policy, so good names help add clarity. For example: Prevent public repos on production.

Enforcement status

Si no deseas que se aplique la directiva cuando se cree, establécela en "Disabled". De lo contrario, establécela en "Active".

Allow list

Elige qué roles pueden omitir las restricciones de esta directiva.

Targets

Choose which organizations and repositories the policy applies to.

Target organizations

Select all organizations, choose a selection of existing organizations, or set a dynamic list by name. If you use Enterprise Managed Users, you can also choose to target all repositories owned by users in your enterprise.

If you set a dynamic list, you'll add one or more naming patterns using fnmatch syntax. For example, the string *open-source would match any organization with a name that ends with open-source. For syntax details, see Creación de conjuntos de reglas de un repositorio.

Target repositories

Choose which repositories (current or future) to target in the selected organizations. You can select all repositories or set a dynamic list by custom property.

Policies

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.

Delegating bypass of policies

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.

Next steps

Create rulesets to consistently govern important branches in your enterprise's repositories. See Protecting branches in your enterprise with rulesets.