Skip to main content

Blocking pull request merges that contain secrets

Prevent exposed secrets from reaching protected branches by requiring contributors to resolve secret scanning alerts before merging.

¿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

GitHub Secret Protection es un conjunto de características dentro de GitHub Advanced Security que está disponible para los siguientes usuarios:

  • Plan de usuarios de GitHub Team
  • Organizaciones empresariales en GitHub Enterprise Cloud y GitHub Enterprise Server

Nota:

The rule to require secret scanning alerts to be resolved before merging is in versión preliminar pública and subject to change.

The Require secret scanning alerts are resolved rule is available for rulesets that target branches in repositories. You can use the rule to block a pull request from merging when either of these conditions applies:

  • A secret scanning scan has not completed for the head commit of the pull request.
  • A commit in the pull request introduced an open secret scanning alert that matches a secret type selected in the ruleset.

The rule supports provider, custom, and generic patterns. It does not support AI-detected secrets.

Prerequisites

The repositories that you want to protect must have:

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", haga clic en Conjuntos de reglas y, a continuación, haga clic en Conjuntos de reglas.

  4. Click New ruleset.

  5. 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. 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.

  1. Under "Branch protections", select Require secret scanning alerts are resolved.
  2. Under "Secret types", select one or more types of secrets that should block merging:
    • Provider patterns
    • Custom patterns
    • Generic patterns 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.

For information about configuring bypass permissions and other ruleset settings, see Creación de conjuntos de reglas de un repositorio.

Creating a merge protection ruleset for 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. Seleccione una organización haciendo clic en ella.

  3. Debajo del nombre de la organización, 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 las pestañas en el perfil de una organización. La pestaña "Configuración" se destaca en naranja oscuro.

  4. En la barra lateral, en "Código, planeamiento y automatización", Haga clic en Repositorio y, a continuación, haga clic en Conjuntos de reglas.

  5. Click New ruleset.

  6. Click New branch ruleset.

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

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

  9. Under "Target repositories", choose the repositories that the ruleset will apply to. 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.

  1. Under "Branch protections", select Require secret scanning alerts are resolved.
  2. Under "Secret types", select one or more types of secrets that should block merging:
    • Provider patterns
    • Custom patterns
    • Generic patterns 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.

For information about configuring bypass permissions and other ruleset settings, see Creación de conjuntos de reglas para repositorios de la organización.

Unblocking a pull request

When this rule blocks a pull request because of open alerts, you must resolve each alert that matches the secret types selected in the ruleset. See Resolución de alertas del análisis de secretos.