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 peut utiliser cette fonctionnalité ?

Propriétaires de l’organisation, gestionnaires de sécurité et membres de l’organisation avec le rôle d’administrateur

GitHub Secret Protection est un ensemble de fonctionnalités au sein de GitHub Advanced Security qui est disponible pour les utilisateurs suivants :

  • Utilisateurs du plan GitHub Team
  • Organisations d’entreprise sur GitHub Enterprise Cloud et GitHub Enterprise Server

Remarque

The rule to require secret scanning alerts to be resolved before merging is in préversion publique 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. Sur GitHub, accédez à la page principale du référentiel.

  2. Sous le nom de votre référentiel, cliquez sur Paramètres. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran d’un en-tête de dépôt montrant les onglets. L’onglet « Paramètres » est mis en évidence avec un encadré orange foncé.

  3. Dans la barre latérale gauche, sous « Code et automatisation », cliquez sur Ensembles de règles, puis sur Ensembles de règles.

  4. Click New ruleset.

  5. Click New branch ruleset.

  6. Sous « Nom de l’ensemble de règles », tapez un nom pour l’ensemble de règles.

  7. Pour modifier l’état d’application par défaut, vous pouvez cliquer sur Désactivé et sélectionner un état d’application. Pour cibler les branches ou les balises, dans la section « Cibler des branches » ou « Cibler des balises », sélectionnez Ajouter une cible, puis sélectionnez la façon dont vous souhaitez inclure ou exclure des branches ou des étiquettes. Vous pouvez utiliser la syntaxe fnmatch pour inclure ou exclure des branches ou des étiquettes sur la base d’un modèle. Pour plus d’informations, consultez Utilisation fnmatch de la syntaxe.

Vous pouvez ajouter plusieurs critères de ciblage au même ensemble de règles. Par exemple, vous pouvez inclure la branche par défaut, inclure toutes les branches correspondant au modèle *feature*, puis exclure spécifiquement une branche correspondant au modèle 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 Pour terminer la création de votre ensemble de règles, cliquez sur Créer. Si le statut de l’application de l’ensemble de règles est défini sur « Actif », l’ensemble de règles prend effet immédiatement.

For information about configuring bypass permissions and other ruleset settings, see Création d'ensembles de règles pour un dépôt.

Creating a merge protection ruleset for repositories in an organization

  1. Dans le coin supérieur droit de GitHub, cliquez sur votre photo de profil, puis sur Vos organisations.

  2. Sélectionnez une organisation en cliquant dessus.

  3. Sous le nom de votre organisation, cliquez sur Settings. Si vous ne voyez pas l’onglet « Paramètres », sélectionnez le menu déroulant , puis cliquez sur Paramètres.

    Capture d’écran des onglets dans le profil d’une organisation. L’onglet « Paramètres » est présenté en orange foncé.

  4. Dans la barre latérale, sous « Code, planification et automatisation », cliquez sur Référentiel, puis sur Ensembles de règles.

  5. Click New ruleset.

  6. Click New branch ruleset.

  7. Sous « Nom de l’ensemble de règles », tapez un nom pour l’ensemble de règles.

  8. Pour modifier l’état d’application par défaut, vous pouvez cliquer sur Désactivé et sélectionner un état d’application.

  9. Under "Target repositories", choose the repositories that the ruleset will apply to. Pour cibler les branches ou les balises, dans la section « Cibler des branches » ou « Cibler des balises », sélectionnez Ajouter une cible, puis sélectionnez la façon dont vous souhaitez inclure ou exclure des branches ou des étiquettes. Vous pouvez utiliser la syntaxe fnmatch pour inclure ou exclure des branches ou des étiquettes sur la base d’un modèle. Pour plus d’informations, consultez Utilisation fnmatch de la syntaxe.

Vous pouvez ajouter plusieurs critères de ciblage au même ensemble de règles. Par exemple, vous pouvez inclure la branche par défaut, inclure toutes les branches correspondant au modèle *feature*, puis exclure spécifiquement une branche correspondant au modèle 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 Pour terminer la création de votre ensemble de règles, cliquez sur Créer. Si le statut de l’application de l’ensemble de règles est défini sur « Actif », l’ensemble de règles prend effet immédiatement.

For information about configuring bypass permissions and other ruleset settings, see Création d'ensembles de règles pour les dépôts de votre organisation.

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 Résoudre les alertes de l'analyse des secrets.