Skip to main content
Skip to 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.

Кто может использовать эту функцию?

Владельцы организации, руководители безопасности и члены организации с ролью администратора, and enterprise owners

GitHub Secret Protection — это набор функций в GitHub Advanced Security, доступных следующим пользователям:

  • Пользователи плана GitHub Team
  • Корпоративные организации в GitHub Enterprise Cloud и GitHub Enterprise Server

Примечание.

The rule to require secret scanning alerts to be resolved before merging is in Публичный предварительный просмотр 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. На GitHubперейдите на главную страницу репозитория.

  2. Под именем репозитория щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

  3. На левой боковой панели в разделе "Код и автоматизация" щелкните наборы правил, а затем щелкните "Наборы правил".

  4. Click New ruleset.

  5. Click New branch ruleset.

  6. В поле "Имя набора правил" введите имя набора правил.

  7. При необходимости, чтобы изменить состояние принудительного применения по умолчанию, щелкните Отключен и выберите состояние принудительного применения. Чтобы выбрать целевые ветви или теги, в разделе "Целевые ветви" или "Целевые теги" выберите "Добавить целевой объект", а затем выберите способ включения или исключения ветвей или тегов. Синтаксис можно использовать fnmatch для включения или исключения ветвей или тегов на основе шаблона. Дополнительные сведения см. в разделе "Использование fnmatch синтаксиса".

В один набор правил можно добавить несколько критериев целевого назначения. Например, можно включить ветвь по умолчанию, включить любые ветви, соответствующие шаблону*feature*, а затем исключить ветвь, соответствующую шаблону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 Чтобы завершить создание набора правил, нажмите кнопку "Создать". Если для набора правил задано значение "Активный", набор правил немедленно вступает в силу.

Вы можете просмотреть аналитические сведения о наборе правил, чтобы узнать, как правила влияют на участников. Если для параметра "Оценка" задано состояние принудительного применения, можно увидеть, какие действия прошли или завершились ошибкой, если набор правил был активным. Дополнительные сведения о аналитике для наборов правил см. в разделе Управление наборами правил для репозитория.

For information about configuring bypass permissions and other ruleset settings, see Создание наборов правил для репозитория.

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. В правом верхнем углу GitHub, щелкните рисунок профиля, а затем выберите октикона "организация" aria-hidden="true" aria-label="organization" %} Ваши организации.

  2. Выберите организацию, кликнув по ней.

  3. Под именем организации щелкните Settings. Если вкладка "Параметры" не отображается, выберите раскрывающееся меню и нажмите кнопку "Параметры".

    Снимок экрана: вкладки в профиле организации. Вкладка "Параметры" выделена темно-оранжевым цветом.

  4. На боковой панели в разделе "Код, планирование и автоматизация", Щелкните репозиторий, а затем — наборы правил.

Accessing enterprise ruleset settings

  1. Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
  2. В верхней части страницы нажмите «Политики».
  3. Under "Policies", click Code.

Configuring the ruleset

  1. Click New ruleset.

  2. Click New branch ruleset.

  3. В поле "Имя набора правил" введите имя набора правил.

  4. При необходимости, чтобы изменить состояние принудительного применения по умолчанию, щелкните Отключен и выберите состояние принудительного применения.

  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. Чтобы выбрать целевые ветви или теги, в разделе "Целевые ветви" или "Целевые теги" выберите "Добавить целевой объект", а затем выберите способ включения или исключения ветвей или тегов. Синтаксис можно использовать fnmatch для включения или исключения ветвей или тегов на основе шаблона. Дополнительные сведения см. в разделе "Использование fnmatch синтаксиса".

В один набор правил можно добавить несколько критериев целевого назначения. Например, можно включить ветвь по умолчанию, включить любые ветви, соответствующие шаблону*feature*, а затем исключить ветвь, соответствующую шаблону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 Чтобы завершить создание набора правил, нажмите кнопку "Создать". Если для набора правил задано значение "Активный", набор правил немедленно вступает в силу.

Вы можете просмотреть аналитические сведения о наборе правил, чтобы узнать, как правила влияют на участников. Если для параметра "Оценка" задано состояние принудительного применения, можно увидеть, какие действия прошли или завершились ошибкой, если набор правил был активным. Дополнительные сведения о аналитике для наборов правил см. в разделе Управление наборами правил для репозитория.

For information about configuring bypass permissions and other ruleset settings, see Создание наборов правил для репозиториев в организации and Применение управления кодом в организации с помощью наборов правил.

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 Разрешение оповещений от сканирования секретов.