Skip to main content

Set code scanning merge protection

You can use rulesets to set code scanning merge protection for pull requests.

¿Quién puede utilizar esta característica?

Propietarios de la organización, administradores de seguridad y miembros de la organización con el rol de administrador

Code scanning is available for the following repository types:

  • Public repositories on GitHub.com
  • Organization-owned repositories on GitHub Team, GitHub Enterprise Cloud, or GitHub Enterprise Server, with GitHub Code Security enabled.

About using rulesets for code scanning merge protection

Nota:

  • Merge protection with rulesets is not related to status checks. For more information about status checks, see Acerca de las verificaciones de estado.
  • Merge protection with rulesets will not apply to merge queue groups or Dependabot pull requests analyzed by default setup.
  • All the lines of code identified by an alert must exist in the pull request diff. For more information, see Soporte de SARIF para escaneo de código.

You can use rulesets to prevent pull requests from being merged when one of the following conditions is met:

  • Una herramienta necesaria encontró una alerta code scanning de una gravedad definida en un conjunto de reglas.
  • Un análisis de la herramienta code scanning requerida todavía está en curso.
  • Una herramienta code scanning requerida no está configurada para el repositorio.

Typically you should use rulesets target long-lived feature branches, where you would like to guarantee that code has been analyzed before pull requests can be merged.

Configuring a code scanning rule will not automatically enable code scanning. For more information about how to enable code scanning, see Configuring default setup for code scanning.

For more information about code scanning alerts, see Acerca de las alertas de análisis de código.

You can set merge protection with rulesets at the repository or organization levels, and for repositories configured with either default setup or advanced setup. You can also use the REST API to set merge protection with rulesets.

For more information about rulesets, see Acerca de los conjuntos de reglas.

Creating a merge protection ruleset for a repository

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. Debajo del nombre del repositorio, haz clic en Settings. Si no puedes ver la pestaña "Configuración", selecciona el menú desplegable y, a continuación, haz clic en Configuración.

    Captura de pantalla de un encabezado de repositorio en el que se muestran las pestañas. La pestaña "Configuración" está resaltada con un contorno naranja oscuro.

  3. En la barra lateral izquierda, en "Código y automatización", haz clic en Reglas y, a continuación, haz clic en Conjuntos de reglas.

    Captura de pantalla de la barra lateral de la página "Configuración" de un repositorio. El submenú "Reglas" se expande y la opción "Conjuntos de reglas" tiene un contorno naranja.

  4. Click New ruleset.

  5. To create a ruleset targeting branches, click New branch ruleset.

  6. En «Nombre del conjunto de reglas», escribe un nombre para el conjunto de reglas.

  7. Opcionalmente, para cambiar el estado de cumplimiento predeterminado, haz clic en Disabled y selecciona un estado de cumplimiento.

  8. En "Protecciones de rama", seleccione Requerir resultados de code scanning.

  9. En "Required tools and alert thresholds", haz clic en Add tool y selecciona una herramienta de code scanning con el menú desplegable. Por ejemplo, "CodeQL".

  10. Junto al nombre de una herramienta code scanning:

    • Haga clic en Alertas y seleccione una de las opciones: Ninguno, Errores, Errores y advertencias o Todos.
    • Haga clic en Alertas de seguridad y seleccione una de las opciones: Ninguno, Crítico, Alto o superior, Medio o superior o Todos.

    Captura de pantalla de la sección "Herramientas necesarias y umbrales de alerta" de la configuración "Conjuntos de reglas".

Para más información sobre la gravedad de las alertas y los niveles de gravedad de la seguridad, consulta Acerca de las alertas de análisis de código.

For more information about managing rulesets in a repository, see Administración de conjuntos de reglas de un repositorio.

Creating a merge protection ruleset for all repositories in an organization

  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 la barra lateral de la izquierda, en la sección "Code, planning, and automation", haz clic en Repository y luego en Rulesets.

    Captura de pantalla de la página de configuración de una organización. En la barra lateral, aparece un vínculo etiquetado como "Conjuntos de reglas" con un contorno naranja.

  4. Click New ruleset.

  5. To create a ruleset targeting branches, click New branch ruleset.

  6. En «Nombre del conjunto de reglas», escribe un nombre para el conjunto de reglas.

  7. Opcionalmente, para cambiar el estado de cumplimiento predeterminado, haz clic en Disabled y selecciona un estado de cumplimiento.

  8. En "Protecciones de rama", seleccione Requerir resultados de code scanning.

  9. En "Required tools and alert thresholds", haz clic en Add tool y selecciona una herramienta de code scanning con el menú desplegable. Por ejemplo, "CodeQL".

  10. Junto al nombre de una herramienta code scanning:

    • Haga clic en Alertas y seleccione una de las opciones: Ninguno, Errores, Errores y advertencias o Todos.
    • Haga clic en Alertas de seguridad y seleccione una de las opciones: Ninguno, Crítico, Alto o superior, Medio o superior o Todos.

    Captura de pantalla de la sección "Herramientas necesarias y umbrales de alerta" de la configuración "Conjuntos de reglas".

Para más información sobre la gravedad de las alertas y los niveles de gravedad de la seguridad, consulta Acerca de las alertas de análisis de código.

For more information about managing rulesets for repositories in an organization, see Administración de conjuntos de reglas para repositorios de la organización.

Creating a merge protection ruleset with the REST API

You can use the REST API to create a ruleset with the code_scanning rule, which allows you to define specific tools and set alert thresholds. For more information, see Puntos de conexión de la API de REST para reglas.