Skip to main content

규칙 세트 정보

규칙 집합을 사용하여 리포지토리에서 푸시, 분기, 태그와 상호 작용을 하는 방법을 제어하는 방법을 알아보세요.

규칙 세트 정보

규칙 집합은 리포지토리 또는 조직의 여러 리포지토리에 적용되는 명명된 규칙 목록입니다. 리포지토리당 최대 75개의 규칙 집합과 75개의 조직 전체 규칙 집합을 가질 수 있습니다.

규칙 세트를 만들 때 특정 사용자가 규칙 세트의 규칙을 무시하도록 허용할 수 있습니다. 리포지토리 관리자와 같은 특정 역할이 부여된 사용자이거나 특정 팀 또는 GitHub Apps일 수 있습니다. 바이패스 권한 부여에 대한 자세한 내용은 리포지토리에 대한 규칙 세트 만들기을(를) 참조하세요.

GitHub Enterprise 플랜에 있는 조직의 경우 엔터프라이즈나 조직 수준에서 규칙 집합을 설정하여 조직의 여러 리포지토리를 대상으로 지정할 수 있습니다. 조직의 리포지토리에 대한 규칙 집합 관리을(를) 참조하세요.

규칙 집합을 사용하여 리포지토리의 분기 또는 태그를 대상으로 지정하거나 리포지토리와 리포지토리의 전체 포크 네트워크에 대한 푸시를 차단할 수 있습니다.

Note

푸시 규칙에 대한 위임된 바이패스는 현재 공개 미리 보기 버전이며 변경될 수 있습니다.

돌려주기 규칙 세트를 위해 위임된 바이패스를 사용하면 돌려주기 보호를 바이패스할 수 있는 사용자와 허용해야 하는 차단된 돌려주기를 제어할 수 있습니다.

위임된 바이패스를 사용하면 리포지토리에 대한 기여자는 제한된 콘텐츠가 포함된 커밋을 돌려줄 때 "권한 바이패스"를 요청해야 합니다. 요청은 돌려주기 규칙을 바이패스하는 요청을 승인하거나 거부하는 지정된 검토자 그룹으로 전송됩니다.

돌려주기 규칙 바이패스 요청이 승인되는 경우 기여자는 제한된 콘텐츠가 포함된 커밋을 돌려줄 수 있습니다. 요청이 거부되는 경우 기여자는 다시 돌려주기 전에 제한된 콘텐츠가 포함된 하나 이상의 커밋에서 콘텐츠를 제거해야 합니다.

위임된 바이패스를 구성하려면 조직 소유자 또는 리포지토리 관리자가 먼저 "바이패스 목록"을 만듭니다. 바이패스 목록에는 돌려주기 보호 바이패스 요청을 감독하는 팀 또는 리포지토리 관리자와 같은 특정 역할과 팀이 포함됩니다. 자세한 내용은 조직의 리포지토리에 대한 규칙 집합 관리규칙 세트 정보을(를) 참조하세요.

분기 및 태그 규칙 집합

규칙 세트를 만들어 사용자가 리포지토리에서 선택한 분기 및 태그와 상호 작용하는 방법을 제어할 수 있습니다. 특정 분기에 커밋을 푸시할 수 있는 사용자, 커밋의 형식을 지정하는 방법, 태그를 삭제하거나 이름을 바꿀 수 있는 사용자와 같은 항목을 제어할 수 있습니다. 예를 들어 리포지토리 관리자를 제외한 모든 사용자에 대해 서명된 커밋이 필요하고 강제 푸시를 차단하는 리포지토리의 feature 분기에 대한 규칙 세트를 설정할 수 있습니다.

만드는 각 규칙 집합에 대해 리포지토리에서 어떤 분기나 태그를 지정하거나 조직의 리포지토리에 규칙 집합이 적용되는지 지정합니다. fnmatch 구문을 사용하여 특정 분기, 태그, 리포지토리를 대상으로 하는 패턴을 정의할 수 있습니다. 예를 들어 releases/**/* 패턴을 사용하여 이름이 releases/ 문자열로 시작하는 리포지토리의 모든 분기를 대상으로 지정할 수 있습니다. fnmatch 구문에 대한 자세한 내용은 리포지토리에 대한 규칙 세트 만들기을(를) 참조하세요.

푸시 규칙 집합

푸시 규칙 집합을 사용하면 파일 확장명, 파일 경로 길이, 파일 및 폴더 경로, 파일 크기에 따라 프라이빗 또는 내부 리포지토리와 해당 리포지토리의 전체 포크 네트워크에 대한 푸시를 차단할 수 있습니다.

푸시 규칙은 리포지토리에 대한 모든 푸시에 적용되므로 분기 대상 지정이 필요하지 않습니다.

푸시 규칙 집합을 사용하면 다음을 수행할 수 있습니다.

  • 파일 경로 제한: 지정된 파일 경로의 변경 내용이 포함된 커밋이 푸시되지 않도록 합니다.

    이 테스트에 fnmatch 구문을 사용할 수 있습니다. 예를 들어 test/demo/**/*를 대상으로 하는 제한은 test/demo/ 디렉터리의 파일이나 폴더에 대한 푸시를 방지합니다. test/docs/pushrules.md를 대상으로 하는 제한 사항은 test/docs/ 디렉터리의 pushrules.md 파일에 대한 푸시를 방지합니다. 자세한 내용은 리포지토리에 대한 규칙 세트 만들기을(를) 참조하세요.

  • 파일 경로 길이 제한: 지정된 문자 제한을 초과하는 파일 경로가 포함된 커밋이 푸시되지 않도록 합니다.

  • 파일 확장명 제한: 지정된 파일 확장명의 파일이 포함된 커밋이 푸시되지 않도록 합니다.

  • 파일 크기 제한: 지정된 파일 크기 제한을 초과하는 커밋이 푸시되지 않도록 합니다.

포크된 리포지토리에 대한 푸시 규칙 집합 정보

푸시 규칙은 리포지토리의 전체 포크 네트워크에 적용되어 리포지토리에 대한 모든 진입점이 보호되도록 합니다. 예를 들어 푸시 규칙 집합을 사용하도록 설정된 리포지토리를 포크하는 경우 포크된 리포지토리에도 동일한 푸시 규칙 집합이 적용됩니다.

포크된 리포지토리의 경우 푸시 규칙에 대한 바이패스 권한이 있는 사람은 루트 리포지토리에서 바이패스 권한이 있는 사용자뿐입니다.

규칙 세트 및 보호 대상 분기

규칙 집합은 리포지토리의 모든 분기 보호 규칙과 함께 작동합니다. 규칙 세트에서 정의할 수 있는 규칙 대부분은 보호 규칙과 비슷하며 기존 보호 규칙을 재정의하지 않고 규칙 세트를 사용할 수 있습니다.

규칙 세트는 분기 보호 규칙과 비교하여 다음과 같은 이점이 있습니다.

  • 보호 규칙과 달리 여러 규칙 집합을 동시에 적용할 수 있어 다른 사용자가 해당 분기와 상호 작용을 할 때 리포지토리의 분기를 대상으로 하는 모든 규칙이 평가될 것입니다. 규칙 계층화 정보를 참조하세요.
  • 규칙 세트에 상태가 포함되어 규칙 세트를 삭제하지 않고도 리포지토리에서 활성 상태인 규칙 세트를 쉽게 관리할 수 있습니다.
  • 리포지토리에 대한 읽기 권한이 있는 사용자는 해당 리포지토리의 활성 규칙 세트를 볼 수 있습니다. 따라서 개발자가 규칙에 도달한 이유를 이해할 수 있거나 감사자가 리포지토리에 대한 관리자 액세스 권한 없이 리포지토리의 보안 제약 조건을 검사할 수 있습니다.
  • 리포지토리를 입력하는 커밋의 메타데이터(예: 커밋 메시지, 작성자의 이메일 주소)를 제어하는 추가 규칙을 만들 수 있습니다. 규칙 세트에 사용 가능한 규칙을(를) 참조하세요.

규칙 집합 적용 상태 사용

규칙 세트를 만들거나 편집하는 동안 적용 상태를 사용하여 규칙 세트를을 적용하는 방법을 구성할 수 있습니다.

규칙 세트에 대해 다음 적용 상태 중에서 선택할 수 있습니다.

  • 활성: 규칙 세트가 생성 시에 적용됩니다.
  • 평가: 규칙 세트가 적용되지 않지만 “규칙 인사이트” 페이지에서 규칙을 위반하거나 위반하지 않는 작업을 모니터링할 수 있습니다.
  • 사용 안 함: 규칙 세트가 적용되거나 평가되지 않습니다.

"평가" 모드를 사용하는 것은 규칙 세트를 적용하지 않고 테스트하는 데 유용한 옵션입니다. "규칙 인사이트" 페이지를 사용하여 기여가 규칙을 위반했는지 확인할 수 있습니다. 자세한 내용은 리포지토리에 대한 규칙 세트 관리을(를) 참조하세요.

규칙 계층화 정보

규칙 세트에는 우선 순위가 없습니다. 대신 여러 규칙 세트가 리포지토리에서 동일한 분기 또는 태그를 대상으로 하는 경우 각 규칙 세트의 규칙이 집계됩니다. 동일한 규칙이 집계된 규칙 세트에서 서로 다른 방식으로 정의되는 경우 가장 제한적인 규칙 버전이 적용됩니다. 규칙 세트는 서로 계층화할 뿐만 아니라 동일한 분기 또는 태그를 대상으로 하는 보호 규칙과도 계층화합니다.

예를 들어 octo-org/octo-repo 리포지토리의 my-feature 분기에 대해 다음과 같은 상황을 고려합니다.

  • 리포지토리 관리자가 my-feature 분기를 대상으로 하는 규칙 세트를 설정했습니다. 이 규칙 세트는 서명된 커밋과 끌어오기 요청에 대한 세 개의 검토가 있어야 병합할 수 있습니다.
  • my-feature 분기에 대한 기존 분기 보호 규칙에는 병합하기 전에 선형 커밋 기록과 끌어오기 요청에 대한 두 개의 검토가 필요합니다.
  • octo-org 조직의 관리자도 octo-repo 리포지토리의 my-feature분기를 대상으로 하는 규칙 세트를 설정했습니다. 규칙 세트는 강제 푸시를 차단하며, 병합하기 전에 끌어오기 요청에 대해 한 번의 검토가 필요합니다.

각 원본의 규칙이 집계되고 모든 규칙이 적용됩니다. 동일한 규칙의 버전이 여러 개 있는 경우 가장 제한적인 규칙 버전이 적용됩니다. 따라서 my-feature 분기는 서명된 커밋과 선형 커밋 기록이 필요하며, 강제 푸시가 차단되고, 해당 분기를 대상으로 하는 끌어오기 요청은 병합하기 전에 검토가 세 번 필요합니다.

다음 단계

다음으로 추가 정보를 사용하여 엔터프라이즈 구성원과 중요한 정보를 전달하는 방법을 알아보세요. 엔터프라이즈에 대한 추가 정보 만들기을(를) 참조하세요.