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