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.

Wer kann dieses Feature verwenden?

Organisationsbesitzerinnen, Sicherheitsmanagerinnen und Organisationsmitglieder mit der Administratorrolle, and enterprise owners

GitHub Secret Protection ist eine Reihe von Features innerhalb von GitHub Advanced Security, die den folgenden Benutzenden zur Verfügung stehen:

  • Benutzenden mit GitHub Team-Plan
  • Enterprise-Organisationen mit GitHub Enterprise Cloud und GitHub Enterprise Server

Hinweis

The rule to require secret scanning alerts to be resolved before merging is in Öffentliche Vorschau 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. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Klicke unter dem Repositorynamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicken Sie in der linken Randleiste unter "Code und Automatisierung" auf " Rulesets", und klicken Sie dann auf "Rulesets".

  4. Click New ruleset.

  5. Click New branch ruleset.

  6. Geben Sie unter „Regelsatzname“ einen Namen für den Regelsatz ein.

  7. Um den Standarderzwingungsstatus zu ändern, kannst du optional auf Disabled klicken und einen Erzwingungsstatus auswählen. Wählen Sie im Abschnitt „Ziel-Verzweigungen“ oder „Ziel-Tags“ die Option Ziel hinzufügen aus, und legen Sie dann fest, wie Sie Verzweigungen oder Tags ein- oder ausschließen möchten. Mithilfe der fnmatch-Syntax kannst du Branches oder Tags basierend auf einem Muster ein- oder ausschließen. Weitere Informationen findest du unter Verwenden der fnmatch-Syntax.

Du kannst demselben Regelsatz mehrere Ausrichtungskriterien hinzufügen. Du kannst beispielsweise den Standardbranch und alle Branches einschließen, die dem Muster *feature* entsprechen, und dann explizit einen Branch ausschließen, der dem Muster not-a-feature entspricht.

  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 Klicken Sie auf Erstellen, um das Erstellen des Regelsets zu beenden. Wenn der Durchsetzungsstatus des Regelsatzes auf „Aktiv“ eingestellt ist, wird der Regelsatz sofort wirksam.

Sie können Erkenntnisse für den Regelsatz anzeigen, um zu sehen, wie sich die Regeln auf Ihre Teilnehmer auswirken. Wenn der Durchsetzungsstatus auf „Auswerten“ festgelegt ist, können Sie sehen, welche Aktionen bestanden oder fehlgeschlagen wären, wenn der Regelsatz aktiv war. Weitere Informationen zu den Erkenntnissen für Regelsätze findest du unter Verwalten von Regelsätzen für ein Repository.

For information about configuring bypass permissions and other ruleset settings, see Erstellen von Regelsätzen für ein Repository.

Creating a merge protection ruleset for repositories in an organization or enterprise

You can create this ruleset for repositories in your organization, or create it for an enterprise to apply merge protection consistently across repositories in multiple organizations.

Accessing organization ruleset settings

  1. Klicke in der rechten oberen Ecke von GitHub auf dein Profilbild und dann auf Your organizations.

  2. Wählen Sie eine Organisation aus, indem Sie darauf klicken.

  3. Klicke unter dem Organisationsnamen auf Settings. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot der Registerkarten im Profil einer Organisation. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  4. In der Randleiste unter "Code, Planung und Automatisierung" klicken Sie auf "Repository", und klicken Sie dann auf "Rulesets".

Accessing enterprise ruleset settings

  1. Navigieren Sie zu Ihrem Unternehmen. Beispielsweise auf der Seite Unternehmen in GitHub.com.
  2. Klicken Sie oben auf der Seite auf "Richtlinien".
  3. Under "Policies", click Code.

Configuring the ruleset

  1. Click New ruleset.

  2. Click New branch ruleset.

  3. Geben Sie unter „Regelsatzname“ einen Namen für den Regelsatz ein.

  4. Um den Standarderzwingungsstatus zu ändern, kannst du optional auf Disabled klicken und einen Erzwingungsstatus auswählen.

  5. If you are creating an enterprise-level ruleset, under "Target organizations", choose the organizations that the ruleset will apply to.

  6. Under "Target repositories", choose the repositories that the ruleset will apply to. Wählen Sie im Abschnitt „Ziel-Verzweigungen“ oder „Ziel-Tags“ die Option Ziel hinzufügen aus, und legen Sie dann fest, wie Sie Verzweigungen oder Tags ein- oder ausschließen möchten. Mithilfe der fnmatch-Syntax kannst du Branches oder Tags basierend auf einem Muster ein- oder ausschließen. Weitere Informationen findest du unter Verwenden der fnmatch-Syntax.

Du kannst demselben Regelsatz mehrere Ausrichtungskriterien hinzufügen. Du kannst beispielsweise den Standardbranch und alle Branches einschließen, die dem Muster *feature* entsprechen, und dann explizit einen Branch ausschließen, der dem Muster not-a-feature entspricht.

  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 Klicken Sie auf Erstellen, um das Erstellen des Regelsets zu beenden. Wenn der Durchsetzungsstatus des Regelsatzes auf „Aktiv“ eingestellt ist, wird der Regelsatz sofort wirksam.

Sie können Erkenntnisse für den Regelsatz anzeigen, um zu sehen, wie sich die Regeln auf Ihre Teilnehmer auswirken. Wenn der Durchsetzungsstatus auf „Auswerten“ festgelegt ist, können Sie sehen, welche Aktionen bestanden oder fehlgeschlagen wären, wenn der Regelsatz aktiv war. Weitere Informationen zu den Erkenntnissen für Regelsätze findest du unter Verwalten von Regelsätzen für ein Repository.

For information about configuring bypass permissions and other ruleset settings, see Erstellen von Regelsätzen für Repositorys in deiner Organisation and Durchsetzung der Code-Governance in Ihrem Unternehmen mithilfe von Regelsätzen.

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 Beheben von Warnungen aus der Geheimnisüberprüfung.