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.

누가 이 기능을 사용할 수 있나요?

관리자 역할이 있는 조직 소유자, 보안 관리자 및 조직 구성원, 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. 필요에 따라 기본 적용 상태를 변경하려면 Disabled 를 클릭하고 적용 상태를 선택합니다. 분기 또는 태그를 대상으로 지정하려면 "대상 분기" 또는 "대상 태그" 섹션에서 대상 추가를 선택한 다음 분기 또는 태그를 포함하거나 제외할 방법을 선택합니다. 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의 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음, Your organizations를 클릭합니다.

  2. 조직을 클릭하여 선택합니다.

  3. 조직 이름에서 설정을 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    조직 프로필에 있는 여러 탭의 스크린샷. "설정" 탭이 진한 주황색으로 표시됩니다.

  4. 사이드바의 "코드, 계획 및 자동화"에서 리포지토리를 클릭한 다음 규칙 집합을 클릭합니다.

Accessing enterprise ruleset settings

  1. 귀하의 기업으로 이동하세요. 예를 들어 GitHub.com의 Enterprises 페이지에서.
  2. 페이지 맨 위에서 정책을 클릭합니다****.
  3. Under "Policies", click Code.

Configuring the ruleset

  1. Click New ruleset.

  2. Click New branch ruleset.

  3. "규칙 집합 이름" 아래에 규칙 집합의 이름을 입력합니다.

  4. 필요에 따라 기본 적용 상태를 변경하려면 Disabled 를 클릭하고 적용 상태를 선택합니다.

  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 비밀 검사에서 경고 해결.