전역 브랜치 자원 보호와 승인 정책
보호한 자원은 main에서 직접 변경할 수 없습니다. 브랜치에서 수정하고 적용되는 승인 정책을 충족한 뒤 main에 병합합니다. 한 브랜치에는 보호 자원과 비보호 자원이 함께 있을 수 있습니다.
비보호 자원도 별도 조건이 없다면 편집 권한을 가진 사용자의 승인이 필요합니다. 기여자의 권한이 기본 정책을 충족해 자동 승인되는 경우와 검토자가 따로 필요한 경우를 구분합니다.
보호 여부 설정
Compass에서는 브랜치 잠금 아이콘으로 보호 상태를 표시합니다.
자원 Owner가 파일시스템에서 자원을 우클릭하여 Protect 또는 Unprotect를 선택할 수 있습니다. 여러 자원을 선택한 일괄 처리도 가능합니다. Workshop은 Settings > Branch protection에서도 설정합니다.
프로젝트의 Branch protection
프로젝트 Owner는 Branch protection에서 승인 정책을 정합니다. Automatically protecting new files를 켜면 프로젝트에 새로 생성하는 파일을 자동 보호합니다.
자원 이동은 새 파일 생성의 자동 보호와 구분합니다. 보호 여부는 이동 전 상태를 유지합니다.
기본 승인 정책
기본 정책을 선택하면 자원을 소유하는 앱이 정한 기본 조건을 사용합니다. 일반적으로 자원의 편집 권한을 요구하지만 자원별로 더 복잡한 조건이 있을 수 있으므로 실제 적용 정책을 확인합니다.
각 기본 정책은 다음 중 한 방식으로 충족됩니다.
- 기여자 자신의 권한이 조건을 충족하여 자동 만족
- 필요한 권한을 가진 별도 검토자가 승인
가상의 SomeResource에 권한 X를 요구하는 정책 1과 권한 Y를 요구하는 정책 2가 있다고 가정합니다. X를 가진 사용자 A가 수정하면 정책 1을 자동 충족하고, Y를 가진 사용자 B가 승인하면 정책 2를 충족합니다. 두 조건이 모두 충족되어야 합니다.
X와 Y를 모두 가진 사용자 C는 기여자 자신의 권한으로 두 기본 조건을 충족할 수 있으므로 별도 승인자가 항상 필요한 것은 아닙니다.
사용자 정의 승인 정책
| 설정 | 의미 |
|---|---|
| Eligible reviewers | 승인할 수 있는 사용자 또는 그룹 |
| Number of approvals required | 필요한 최소 승인 수 |
| Contributor approval | 해당 자원을 이 브랜치에서 수정한 사용자의 승인 허용 여부 |
기여자는 브랜치의 아무 자원이나 수정한 모든 사용자가 아니라, 검토하는 그 자원을 변경한 사용자입니다.
정책은 프로젝트의 보호 자원에 적용됩니다. 정책을 더 엄격하거나 느슨하게 바꾸면 연결한 기존 제안도 새 조건으로 갱신하여 상태를 다시 평가합니다. 사용자 정의 프로젝트 정책의 변경은 프로젝트 Owner만 할 수 있습니다.
자원을 다른 프로젝트로 이동
| 이동 전 상태 | 이동 후 상태 |
|---|---|
| 보호 | 보호 유지. 새 프로젝트 승인 정책 적용 |
| 비보호 | 비보호 유지 |
열린 제안의 자원을 옮기면 기존 제안에 새 프로젝트 정책이 표시되기까지 최대 하루 걸릴 수 있습니다. 브랜치에서 모듈을 갱신하거나 제안 병합을 시도하면 정책 새로 고침도 일으킵니다.
Code Repositories와 Pipeline Builder
Code Repositories와 Pipeline Builder는 자체 로컬 브랜치 보호 및 승인 정책을 사용합니다. 프로젝트 승인 정책을 선택할 수 있는 기능은 향후 계획입니다.
실제 적용 정책과 검토자 확인
제안 페이지 또는 branch taskbar의 검토자 열에서 사용자 아이콘을 선택하면 Manage reviewers와 Approval policies를 엽니다.
Approval policies에는 프로젝트/자원 수준의 사용자 정의 정책과 기본 정책, 각 정책의 검토 가능 사용자, 필요한 승인 수와 기여자 승인 허용 여부가 나옵니다.
Manage reviewers에서는 요청한 검토자와 검토 상태를 보고 편집 버튼으로 추가하거나 제거합니다.
역할과 병합 권한 자체는 브랜치 보안의 조건을 따릅니다.