Note
리포지토리 정책은 현재 공개 미리 보기 버전이며 변경될 수 있습니다.
리포지토리를 만들거나 삭제할 수 있는 사용자 등 리포지토리의 수명 주기에서 주요 이벤트를 관리하기 위해 리포지토리 정책을 만들 수 있습니다. 리포지토리 정책은 영향을 받는 사용자와 대상 리포지토리를 유연하게 제어할 수 있는 제한 사항 모음입니다.
리포지토리 정책에서는 다음을 제한할 수 있습니다.
- 새 리포지토리 및 표시 유형 변경에 허용되는 표시 유형
- 리포지토리를 **만들 **수 있는 사용자
- 리포지토리를 삭제할 수 있는 사용자
- 조직 외부로 리포지토리를 전송할 수 있는 사용자
- 사용자가 리포지토리의 이름을 지정하는 방법
Tip
조직 소유자인 경우 특정 조직에 대한 리포지토리 정책을 만들 수 있습니다. "사용자가 조직에서 리포지토리를 사용하는 방법 관리" 항목을 참조하세요.
예제
리포지토리 정책을 사용하여 다음과 같은 작업을 수행할 수 있습니다.
- 모든 새 리포지토리가 특정 명명 규칙(예:
kebab-case
)을 사용하는지 확인합니다. - 조직 관리자를 제외한 리포지토리 삭제를 방지합니다.
- 엔터프라이즈의 "오픈 소스" 조직에서만 퍼블릭 리포지토리를 만들 수 있도록 허용합니다.
- 메타데이터의 잠재적 손실을 방지하기 위해 퍼블릭 리포지토리가 프라이빗으로 변경되지 않도록 합니다.
리포지토리를 대상으로 지정하는 방법
먼저, 엔터프라이즈의 조직을 대상으로 합니다. 모든 조직을 선택하거나, 목록에서 선택하거나, fnmatch
구문을 사용하여 동적 규칙을 만들 수 있습니다. Enterprise Managed Users를 사용하는 경우 엔터프라이즈의 사용자가 소유한 모든 리포지토리를 대상으로 지정하도록 선택할 수도 있습니다.
그런 다음, 선택한 조직의 리포지토리를 대상으로 지정합니다. 사용자 지정 리포지토리 속성과 함께 리포지토리 정책을 사용하는 것이 좋습니다. 리포지토리에 사용자 지정 속성을 추가하면 정책에서 해당 리포지토리를 유연하게 대상으로 지정할 수 있습니다.
예를 들어 속성을 추가하여 프로덕션 데이터 또는 기타 중요한 정보가 포함된 리포지토리를 표시한 다음, 다른 사용자가 해당 리포지토리를 공개하지 못하도록 할 수 있습니다.
사용자 지정 속성을 만들고 설정하려면 "조직의 리포지토리에 대한 사용자 지정 속성 관리"을(를) 참조하세요.
다른 정책과 상호 작용
사용 가능한 제한 사항 중 일부는 조직 또는 엔터프라이즈 설정의 "멤버 권한" 페이지에서 설정한 정책과 중복됩니다.
리포지토리 정책을 만들어도 기존 "멤버 권한" 정책이 재정의되지는 않습니다. 대신 정책이 추가되므로 정책의 가장 제한적인 버전이 적용됩니다. 이는 멤버 권한 정책 및 엔터프라이즈 또는 조직 수준에서 만든 다른 리포지토리 정책에 모두 적용됩니다.
멤버 권한 정책과 비교하여 리포지토리 정책에는 다음과 같은 몇 가지 이점이 있습니다.
- 조직 및 리포지토리의 보다 유연한 타겟팅을 제공합니다.
- 이를 통해 특정 행위자에게 정책을 우회할 수 있는 옵션을 제공할 수 있습니다.
- 조직 소유자에게 표시되므로 허용되는 내용에 대한 투명성이 높아집니다.
- 이를 통해 Enterprise Managed Users가 소유한 리포지토리를 대상으로 지정할 수 있습니다.
리포지토리 정책 만들기
- GitHub의 오른쪽 위 모서리에서 프로필 사진을 클릭합니다.
- 사용자 환경에 따라 사용자 엔터프라이즈를 클릭하거나 사용자 엔터프라이즈를 클릭한 다음, 보고 싶은 엔터프라이즈를 클릭합니다.
- 페이지 왼쪽의 엔터프라이즈 계정 사이드바에서 정책을 클릭합니다.
- "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의 구문 가이드를 참조하세요.
- 표현식의 유효성을 검사하려면 테스트 패턴을 클릭한다음, 패턴 및 테스트 값을 입력합니다.
추가 참고 자료
리포지토리 관리를 위한 추가 정책을 설정하려면 "엔터프라이즈에서 리포지토리 관리 정책 적용"을(를) 참조하세요.