Introducción
Note
Los conjuntos de reglas de código de empresa se encuentran actualmente en versión preliminar pública y están sujetos a cambios.
Puedes crear conjuntos de reglas para controlar cómo los usuarios pueden interactuar con códigos en repositorios de toda la empresa. Puedes:
- Crea un conjunto de reglas o una rama para controlar aspectos como quién puede insertar confirmaciones en una rama determinada, cómo se debe dar formato a las confirmaciones, o quién puede eliminar una etiqueta o cambiarle el nombre.
- Crea un conjunto de reglas para bloquear inserciones en un repositorio privado o interno y toda la red de bifurcación del repositorio. Los conjuntos de reglas de inserción permiten bloquear inserciones basadas en extensiones de archivo, longitudes de ruta de acceso de archivo, rutas de acceso de archivo y carpetas y tamaños de archivo.
Consulta Acerca de los conjuntos de reglas para obtener más información.
Importación de conjuntos de reglas creados previamente
Para importar un conjunto de reglas creado previamente por GitHub, consulta github/ruleset-recipes
.
Puedes importar un conjunto de reglas existente mediante un archivo JSON. Esto puede ser útil si deseas aplicar el mismo conjunto de reglas a varios repositorios u organizaciones. Para obtener más información, consulta Administración de conjuntos de reglas para repositorios de la organización.
¿Cómo definiré dónde se aplica mi conjunto de reglas?
Los conjuntos de reglas permiten establecer como destino flexible las organizaciones, los repositorios y las ramas en las que deseas aplicar las reglas.
- Para dirigirse a organizaciones, puedes seleccionar todos, elegir entre una lista o definir un patrón dinámico para los nombres de la organización mediante
fnmatch
sintaxis. Para obtener más información sobre la sintaxis, consulta Creación de conjuntos de reglas de un repositorio. - Dentro de esas organizaciones, puede tener como destino todos los repositorios, o establecer como destino una lista dinámica por propiedad personalizada. Consulta Administración de propiedades personalizadas para repositorios de la organización.
- Dentro de los repositorios, puede tener como destino determinadas ramas o etiquetas: todas las ramas, la rama predeterminada o una lista dinámica mediante
fnmatch
sintaxis.
Al crear un conjunto de reglas destinado a ramas en un repositorio, los administradores del repositorio ya no pueden cambiar el nombre de las ramas ni cambiar la rama predeterminada en el repositorio de destino. Todavía pueden crear y eliminar ramas si tienen los permisos adecuados.
¿Cómo puedo controlar el formato de las confirmaciones?
En los conjuntos de reglas de rama o etiqueta, puedes agregar una regla que restrinja el formato de los metadatos de confirmación, como el mensaje de confirmación o el correo electrónico de autor.
Si seleccionas Debe coincidir con una restricción de patrón regex determinada, puedes usar la sintaxis de expresión regular para definir patrones con los que los metadatos deben o no deben coincidir. Para obtener más información sobre la sintaxis, consulta Creación de conjuntos de reglas de un repositorio.
Uso de los estados de cumplimiento del conjunto de reglas
Al crear o editar el conjunto de reglas, puede utilizar los estados de obligatoriedad para configurar cómo se aplicará el conjunto de reglas.
Puede seleccionar cualquiera de los siguientes estados de obligatoriedad para el conjunto de reglas.
- Active: tu conjunto de reglas se aplicará después de la creación.
- Evaluate: tu conjunto de reglas no se aplicará, pero podrás supervisar las acciones que podrían infringir o no las reglas en la página "Rule Insights".
- Disabled: tu conjunto de reglas no se aplicará ni evaluará.
El uso del modo «Calcular» es una excelente opción para probar el conjunto de reglas sin aplicarlo. Puedes utilizar la página «Información sobre reglas» para ver si la contribución habría infringido la regla. Para más información, consulta Administración de conjuntos de reglas de un repositorio.
Creación de un conjunto de reglas de rama o etiqueta
-
En la esquina superior derecha de GitHub, haz clic en la fotografía del 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 el lado izquierdo de la página, en la barra lateral de la cuenta de empresa, haz clic en Directivas.
-
En "Directivas", haz clic en Código.
-
Haga clic en Nuevo conjunto de reglas.
-
Para crear un conjunto de reglas que tenga como destino ramas, haz clic en Nuevo conjunto de reglas de rama. Como alternativa, para crear etiquetas de destino de un conjunto de reglas, haz clic en Nuevo conjunto de reglas de etiquetas.
-
En «Nombre del conjunto de reglas», escribe un nombre para el conjunto de reglas.
-
Opcionalmente, para cambiar el estado de cumplimiento predeterminado, haz clic en Deshabilitado y selecciona un estado de cumplimiento. Para obtener más información sobre los estados de obligatoriedad, consulta Acerca de los conjuntos de reglas.
Concesión de permisos de derivación para tu rama o el conjunto de reglas
Puedes conceder determinados permisos de omisión de aplicaciones, roles o equipos, así como la capacidad de aprobar solicitudes de omisión para el conjunto de reglas.
Los siguientes son aptos para omitir el acceso:
- Administradores de repositorios, propietarios de organizaciones y propietarios de empresas
- Rol de mantenimiento o escritura o claves de implementación.
-
Para conceder permisos de omisión para el conjunto de reglas, en la sección "Lista de omisión", haz clic en Agregar omisión.
-
En el cuadro de diálogo modal "Agregar omisión" que aparece, busque el rol, el equipo o la aplicación que desea conceder permisos de omisión y, a continuación, seleccione el rol, el equipo o la aplicación en la sección "Sugerencias" y haga clic en Agregar seleccionado.
-
Opcionalmente, para conceder omisión a un actor sin permitirles insertar directamente en un repositorio, a la derecha de «Permitir siempre», haz clic en y, a continuación, haz clic en Solo para solicitudes de incorporación de cambios.
El actor seleccionado debe ahora abrir una solicitud de incorporación de cambios para realizar cambios en un repositorio, creando una pista digital clara en la solicitud de cambios y el registro de auditoría. Luego, el actor puede optar por omitir las protecciones de rama y combinar esa solicitud de incorporación de cambios.
Elección de las organizaciones que se establecen como destino en la organización
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".
Elección de los repositorios que se establecen como destino en la organización
Dentro de las organizaciones seleccionadas, puedes tener como destino todos los repositorios, o establecer como destino una lista dinámica por propiedad personalizada. Consulta Administración de propiedades personalizadas para repositorios de la organización.
Elección de las ramas o etiquetas de destino
Para definir ramas o etiquetas, en la sección "Ramas objetivo" o "Etiquetas objetivo", seleccione Agregar un objetivo y, a continuación, seleccione cómo desea incluir o excluir ramas o etiquetas. Puedes usar la sintaxis fnmatch
para incluir o excluir ramas o etiquetas en función de un patrón. Para más información, consulta Uso de la sintaxis de fnmatch
.
Puedes agregar varios criterios de selección de destino al mismo conjunto de reglas. Por ejemplo, podrías incluir la rama predeterminada, incluir cualquier rama que coincida con el patrón *feature*
y, a continuación, excluir específicamente una rama que coincida con el patrón not-a-feature
.
Selección de protecciones de rama o etiqueta
En la sección "Protecciones de ramas" o "Protecciones de etiquetas", selecciona las reglas que deseas incluir en el conjunto de reglas. Al seleccionar una regla, es posible que puedas especificar una configuración adicional para la regla. Para más información sobre las reglas, consulta Reglas disponibles para conjuntos de reglas.
Adición de restricciones de metadatos
Las restricciones de metadatos deben estar pensadas para aumentar la coherencia entre confirmaciones en el repositorio. No están diseñadas para reemplazar medidas de seguridad, como requerir la revisión de código mediante solicitudes de cambios.
Note
Si realizas en una rama una fusión mediante combinación con "squash", todas las confirmaciones de esa rama deben cumplir los requisitos de metadatos de la rama base.
-
Para agregar una regla para controlar los metadatos del commit o los nombres de rama, en la sección "Restrictions", haz clic en Restrict commit metadata o Restrict branch names.
-
Configura los ajustes de la restricción y, a continuación, haz clic en Añadir. Puedes agregar varias restricciones al mismo conjunto de reglas.
-
Para que coincida con un patrón regex determinado, en la lista desplegable «Requisito», selecciona Debe coincidir con un patrón regex determinado.
Para la mayoría de los requisitos, como "Debe empezar con un patrón coincidente", el patrón que escribas se interpreta literalmente y no se admiten caracteres comodín. Por ejemplo, el carácter
*
solo representa el carácter literal*
.Para patrones más complejos, puedes seleccionar "Debe coincidir con un patrón regex determinado" o "No debe coincidir con un patrón regex determinado", y luego usar la sintaxis de expresión regular para definir el patrón coincidente. Para más información, consulta Acerca de las expresiones regulares para los metadatos de confirmación.
Cualquier persona que vea los conjuntos de reglas de un repositorio podrá ver la descripción que proporciones.
-
Opcionalmente, antes de aplicar un conjunto de reglas con restricciones de metadatos, selecciona el estado de cumplimiento "Evaluate" para el conjunto de reglas para probar los efectos de las restricciones de metadatos sin que ello afecte a los colaboradores. Para más información sobre las restricciones de metadatos, consulta Reglas disponibles para conjuntos de reglas.
Finalización del conjunto de reglas de tu rama o etiqueta y pasos siguientes
Para terminar de crear el conjunto de reglas, haga clic en Crear. Si el estado de cumplimiento del conjunto de reglas se establece en "Activo", el conjunto de reglas entra en vigor inmediatamente.
Puede ver información sobre el conjunto de reglas para ver cómo afectan las reglas a los colaboradores. Si el estado de cumplimiento se establece en "Evaluar", puede ver qué acciones habrían pasado o fallado si el conjunto de reglas estaba activo. Para más información sobre la información para conjuntos de reglas, consulta Administración de conjuntos de reglas de un repositorio.
Creación de un conjunto de reglas de inserción
Note
Este conjunto de reglas aplicará restricciones de inserción para toda la red de bifurcación de este repositorio.
Puedes crear un conjunto de reglas de inserción para repositorios privados o internos de tu organización.
- En la esquina superior derecha de GitHub, haz clic en la fotografía del 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 barra lateral izquierda, en la sección "Directivas", haz clic en Código.
- Haga clic en Nuevo conjunto de reglas.
- Haz clic en Nuevo conjunto de reglas de inserción.
- En «Nombre del conjunto de reglas», escribe un nombre para el conjunto de reglas.
- Opcionalmente, para cambiar el estado de cumplimiento predeterminado, haz clic en Deshabilitado y selecciona un estado de cumplimiento. Para obtener más información sobre los estados de obligatoriedad, consulta Acerca de los conjuntos de reglas.
Concesión de permisos de omisión para el conjunto de reglas de inserción
Note
Omitir los permisos de los conjuntos de reglas de inserción que tienen como destino un repositorio serán heredados por toda la red de bifurcación para este repositorio. Esto significa que los únicos usuarios que pueden omitir este conjunto de reglas para cualquier repositorio de toda la red de bifurcación de este repositorio son los usuarios que pueden omitir este conjunto de reglas en el repositorio raíz.
Puedes conceder determinados permisos de omisión de aplicaciones, roles o equipos, así como la capacidad de aprobar solicitudes de omisión para el conjunto de reglas. Los siguientes son aptos para omitir el acceso:
- Administradores de repositorios, propietarios de organizaciones y propietarios de empresas
- Rol de mantenimiento o escritura o implementación de claves.
- Para conceder permisos de omisión para el conjunto de reglas, en la sección "Lista de omisión", haz clic en Agregar omisión.
- En el cuadro de diálogo modal "Agregar omisión" que aparece, busque el rol, el equipo o la aplicación que desea conceder permisos de omisión y, a continuación, seleccione el rol, el equipo o la aplicación en la sección "Sugerencias" y haga clic en Agregar seleccionado.
Elección de las organizaciones que se establecen como destino en la organización
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".
Elección de los repositorios que se establecen como destino en la organización
Dentro de las organizaciones seleccionadas, puedes tener como destino todos los repositorios, o establecer como destino una lista dinámica por propiedad personalizada. Consulta Administración de propiedades personalizadas para repositorios de la organización.
Selección de protecciones de inserción
Puedes bloquear inserciones en este repositorio y toda la red de bifurcación de este repositorio en función de extensiones de archivo, longitudes de ruta de acceso de archivo, rutas de acceso de archivo y carpetas y tamaños de archivo.
Las protecciones de inserción que configures bloquearán las inserciones en este repositorio y en toda la red de bifurcación de este repositorio.
-
En «Protección de inserción», haz clic en las restricciones que deseas aplicar. A continuación, rellena los detalles de las restricciones que selecciones.
En el caso de las restricciones de ruta de acceso de archivo, puedes usar rutas de acceso parciales o completas. Para ello, puedes usar la sintaxis
fnmatch
. Por ejemplo, una restricción dirigidatest/demo/**/*
evita las inserciones en archivos o carpetas del directoriotest/demo/
. Un destino de restriccióntest/docs/pushrules.md
impide que las inserciones se inserten específicamente en el archivopushrules.md
del directoriotest/docs/
. Para más información, consulta Creación de conjuntos de reglas de un repositorio.
Finalización del conjunto de reglas de inserción y pasos siguientes
Para terminar de crear el conjunto de reglas, haga clic en Crear. Si el estado de cumplimiento del conjunto de reglas se establece en "Activo", el conjunto de reglas entra en vigor inmediatamente.
Puede ver información sobre el conjunto de reglas para ver cómo afectan las reglas a los colaboradores. Si el estado de cumplimiento se establece en "Evaluar", puede ver qué acciones habrían pasado o fallado si el conjunto de reglas estaba activo. Para más información sobre la información para conjuntos de reglas, consulta Administración de conjuntos de reglas de un repositorio.