참고
리포지토리 정책은 현재 공개 미리 보기 버전이며 변경될 수 있습니다. 조직당 최대 75개의 총 정책 및 규칙 집합과 엔터프라이즈당 최대 75개의 총 정책 및 규칙 집합을 가질 수 있습니다.
리포지토리를 만들거나 삭제할 수 있는 사용자 등 리포지토리의 수명 주기에서 주요 이벤트를 관리하기 위해 리포지토리 정책을 만들 수 있습니다. 리포지토리 정책은 영향을 받는 사용자와 대상 리포지토리를 유연하게 제어할 수 있는 제한 사항 모음입니다.
리포지토리 정책에서는 다음을 제한할 수 있습니다.
- 새 리포지토리 및 표시 유형 변경에 허용되는 표시 유형
- 리포지토리를 **만들 **수 있는 사용자
- 리포지토리를 삭제할 수 있는 사용자
- 조직 외부로 리포지토리를 전송할 수 있는 사용자
- 사용자가 리포지토리의 이름을 지정하는 방법
예제
리포지토리 정책을 사용하여 다음과 같은 작업을 수행할 수 있습니다.
- 모든 새 리포지토리가 특정 명명 규칙(예:
kebab-case)을 사용하는지 확인합니다. - 조직 관리자를 제외한 리포지토리 삭제를 방지합니다.
- 엔터프라이즈의 "오픈 소스" 조직에서만 퍼블릭 리포지토리를 만들 수 있도록 허용합니다.
- 메타데이터의 잠재적 손실을 방지하기 위해 퍼블릭 리포지토리가 프라이빗으로 변경되지 않도록 합니다.
리포지토리를 대상으로 지정하는 방법
먼저, 엔터프라이즈의 조직을 대상으로 합니다. 모든 조직을 선택하거나, 목록에서 선택하거나, fnmatch 구문을 사용하여 동적 규칙을 만들 수 있습니다. 사용하는 Enterprise Managed Users경우 엔터프라이즈의 사용자가 소유한 모든 리포지토리를 대상으로 지정할 수도 있습니다.
그런 다음, 선택한 조직의 리포지토리를 대상으로 지정합니다. 사용자 지정 리포지토리 속성과 함께 리포지토리 정책을 사용하는 것이 좋습니다. 리포지토리에 사용자 지정 속성을 추가하여 정책에서 해당 리포지토리를 유연하게 대상으로 지정할 수 있습니다.
예를 들어 속성을 추가하여 프로덕션 데이터 또는 기타 중요한 정보가 포함된 리포지토리를 표시한 다음, 다른 사용자가 해당 리포지토리를 공개하지 못하도록 할 수 있습니다.
다른 정책과 상호 작용
사용 가능한 제한 사항 중 일부는 조직 또는 엔터프라이즈 설정의 "멤버 권한" 페이지에서 설정한 정책과 중복됩니다.
리포지토리 정책을 만들어도 기존 "멤버 권한" 정책이 재정의되지는 않습니다. 대신 정책이 추가되므로 정책의 가장 제한적인 버전이 적용됩니다. 이는 멤버 권한 정책 및 엔터프라이즈 또는 조직 수준에서 만든 다른 리포지토리 정책에 모두 적용됩니다.
멤버 권한 정책과 비교하여 리포지토리 정책에는 다음과 같은 몇 가지 이점이 있습니다.
- 조직 및 리포지토리의 보다 유연한 타겟팅을 제공합니다.
- 이를 통해 특정 행위자에게 정책을 우회할 수 있는 옵션을 제공할 수 있습니다.
- 조직 소유자에게 표시되므로 허용되는 내용에 대한 투명성이 높아집니다.
- 이를 통해 소유 Enterprise Managed Users하는 리포지토리를 대상으로 지정할 수 있습니다.
리포지토리 정책 만들기
- 귀하의 기업으로 이동하세요. 예를 들어 GitHub.com의 Enterprises 페이지에서.
- 페이지 맨 위에서 정책을 클릭합니다****.
- "Policies"에서 Repository를 클릭합니다.
- 새 정책을 클릭합니다.
- 새 정책을 구성하고 Create를 클릭합니다. 도움이 필요하면 다음 하위 섹션을 참조하세요.
정책 이름
정책의 목적을 전달할 수 있도록 설명적인 내용을 사용하세요. 조직 소유자는 정책을 볼 수 있으므로 명확한 이름을 사용하면 이해를 돕는 데 유용합니다. 예: Prevent public repos on production.
적용 상태
정책을 만들 때 정책이 적용되지 않도록 하려면 "Disabled"로 설정합니다. 그렇지 않으면 "Active"로 설정합니다.
허용 목록
이 정책의 제한을 무시할 수 있는 역할을 선택합니다.
대상
정책이 적용되는 조직 및 리포지토리를 선택합니다.
대상 조직
모든 조직을 선택하거나, 기존 조직을 선택하거나, 이름별로 동적 목록을 설정합니다. 사용하는 Enterprise Managed Users경우 엔터프라이즈의 사용자가 소유한 모든 리포지토리를 대상으로 지정할 수도 있습니다.
동적 목록을 설정하는 경우 fnmatch 구문을 사용하여 하나 이상의 명명 패턴을 추가합니다. 예를 들어, *open-source 문자열은 이름이 open-source로 끝나는 모든 조직과 일치합니다. 구문 세부 정보는 리포지토리에 대한 규칙 세트 만들기을(를) 참조하세요.
대상 리포지토리
선택한 조직에서 대상으로 지정할 리포지토리(현재 또는 미래)를 선택합니다. 모든 리포지토리를 선택하거나 사용자 지정 속성으로 동적 목록을 설정할 수 있습니다.
정책
포함할 제한을 선택합니다. 정책이 활성화되면 모든 대상 리포지토리에 제한이 적용되지만 허용 목록의 사용자 또는 팀에서 우회할 수 있습니다.
"이름 제한" 정책을 선택하는 경우 정규식을 사용하여 리포지토리 이름이 일치해야 하거나 일치하지 않아야 하는 패턴을 설정해야 합니다. 예를 들어 kebab-case 이름 지정을 적용하는 패턴은 ^([a-z][a-z0-9]*)(-[a-z0-9]+)*$ 등과 같습니다.
- 패턴은 RE2 구문을 지원합니다. Google의 구문 가이드를 참조하세요.
- 표현식의 유효성을 검사하려면 테스트 패턴을 클릭한다음, 패턴 및 테스트 값을 입력합니다.
정책 우회 권한 위임
참고
리포지토리 정책이 위임된 바이패스는 공개 미리 보기 상태이며 변경될 수 있습니다.
리포지토리 정책에 대한 위임된 바이패스를 사용하면 리포지토리 삭제 및 표시 여부 변경에 대한 리포지토리 정책을 바이패스할 수 있는 사용자를 제어할 수 있습니다.
위임된 바이패스를 사용하면, 리포지토리 관리자가 리포지토리의 표시 여부를 변경하거나 리포지토리를 삭제하기 위한 요청을 제출해야 합니다. 요청은 리포지토리 정책을 바이패스하는 요청을 승인하거나 거부하는 지정된 검토자 그룹으로 전송됩니다.
리포지토리 정책을 바이패스하는 요청이 승인되면 요청 변경이 즉시 완료됩니다. 요청이 거부되면 요청된 변경이 적용되지는 않지만 다시 요청될 수 있습니다.
위임된 바이패스 구성을 위해 엔터프라이즈 소유자 또는 조직 소유자가 먼저 "바이패스 목록"을 만듭니다. 바이패스 목록에는 리포지토리 정책 바이패스 요청을 감독하는 팀 또는 리포지토리 관리자와 같은 특정 역할과 팀이 포함됩니다.