Code Owners 문제 해결
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Code Owners를 사용할 때 다음과 같은 문제가 발생할 수 있습니다. Code Owners 기능이 오류를 처리하는 방법에 대한 자세한 내용은 오류 처리를 참조하세요. 이 기능의 사용 가능 여부는 기능 플래그에 의해 제어됩니다.
Code Owners를 사용할 때 다음과 같은 문제가 발생할 수 있습니다.
Code Owners 기능이 오류를 처리하는 방법에 대한 자세한 내용은 오류 처리를 참조하세요.
CODEOWNERS 파일 검증#
히스토리
- GitLab 17.11에서
accessible_code_owners_validation이라는 플래그와 함께 도입됨. 기본적으로 비활성화됨. - GitLab 18.1에서 GitLab.com에서 활성화됨.
- GitLab 18.2에서 일반 공개됨. 기능 플래그
accessible_code_owners_validation제거됨.
이 기능의 사용 가능 여부는 기능 플래그에 의해 제어됩니다. 자세한 내용은 히스토리를 참조하세요.
CODEOWNERS 파일을 볼 때 GitLab은 구문 및 권한 문제를 찾는 데 도움을 주기 위해 검증을 실행합니다. 구문 문제가 없으면 GitLab은:
- 파일에 대해 추가 검증기를 실행하지 않습니다.
- 파일에서 발견된 처음 200개의 고유한 사용자 및 그룹 참조에 대해 더 많은 권한 검증을 실행합니다.
작동 방식:
- 프로젝트에 액세스할 수 있는 모든 참조를 찾습니다. 사용자 또는 그룹 참조가 추가되었지만 프로젝트 액세스가 없는 경우 오류를 표시합니다.
- 유효한 각 사용자 참조에 대해 사용자가 프로젝트에서 머지 리퀘스트를 승인할 권한이 있는지 확인합니다. 사용자에게 해당 권한이 없으면 오류를 표시합니다.
- 유효한 각 그룹 참조에 대해 최대 권한 값이 Developer 이상인지 확인합니다. Developer보다 낮은 값을 가진 각 그룹 참조에 대해 오류를 표시합니다.
- 유효한 각 그룹 참조에 대해 그룹에 머지 리퀘스트를 승인할 권한이 있는 사용자가 최소 한 명 포함되어 있는지 확인합니다. 머지 리퀘스트를 승인할 권한이 있는 사용자가 없는 그룹 참조에 대해 오류를 표시합니다.
승인이 표시되지 않음#
머지 리퀘스트가 생성되기 전에 CODEOWNERS 파일이 대상 브랜치에 있어야 합니다.
Code Owner 승인 규칙은 머지 리퀘스트가 생성될 때만 업데이트됩니다.
CODEOWNERS 파일을 업데이트하면 머지 리퀘스트를 닫고 새로 만드세요.
선택적으로 표시되는 승인#
다음 조건 중 하나라도 true이면 Code Owner 승인 규칙은 선택 사항입니다:
- 사용자 또는 그룹이 프로젝트의 구성원이 아닙니다. Code Owners는 상위 그룹에서 구성원을 상속받을 수 없습니다.
- 사용자 또는 그룹이 잘못 형식화되었거나 액세스 불가합니다.
- 보호된 브랜치의 Code Owner 승인이 설정되지 않았습니다.
- 섹션이 선택적으로 표시됩니다.
- 다른 머지 리퀘스트 승인 설정과의 충돌로 인해 사용 가능한 Code Owner가 없습니다.
사용자가 가능한 승인자로 표시되지 않음#
다음 조건 중 하나라도 true이면 사용자가 Code Owner 머지 리퀘스트 승인 규칙에서 승인자로 표시되지 않을 수 있습니다:
- 규칙이 특정 사용자가 머지 리퀘스트를 승인하는 것을 방지합니다. 프로젝트 머지 리퀘스트 승인 설정을 확인하세요.
- Code Owner 그룹의 가시성이 비공개이고 현재 사용자가 Code Owner 그룹의 구성원이 아닙니다.
- 특정 사용자명의 철자가 잘못되었거나
CODEOWNERS파일에서 잘못 형식화되었습니다. - 현재 사용자가 내부 Code Owner 그룹에 대한 권한이 없는 외부 사용자입니다.
승인 규칙이 유효하지 않음#
다음과 같은 오류가 발생할 수 있습니다:
Approval rule is invalid.
GitLab has approved this rule automatically to unblock the merge request.
이 문제는 승인 규칙이 프로젝트의 직접 구성원이 아닌 Code Owner를 사용할 때 발생합니다.
해결 방법은 그룹 또는 사용자가 프로젝트에 초대되었는지 확인하는 것입니다.
사용자 또는 그룹 이름이 변경될 때 CODEOWNERS가 업데이트되지 않음#
사용자 또는 그룹이 이름을 변경하면 CODEOWNERS가 새 이름으로 자동 업데이트되지 않습니다.
새 이름을 입력하려면 파일을 편집해야 합니다.
SAML SSO를 사용하는 조직은 사용자가 사용자명을 변경하지 못하도록 사용자명을 설정할 수 있습니다.
전역 그룹 멤버십 잠금과의 비호환성#
Code Owners 기능은 프로젝트에 대한 직접 그룹 멤버십이 필요합니다. 전역 그룹 멤버십 잠금이 활성화되면 그룹이 프로젝트에 직접 구성원으로 초대되는 것을 방지합니다. 이는 두 기능 간의 비호환성을 만듭니다.
전역 SAML 또는 LDAP 그룹 멤버십 잠금이 활성화된 경우 그룹 또는 하위 그룹을 Code Owners로 사용할 수 없습니다.
전역 SAML 또는 LDAP 그룹 멤버십 잠금 중 하나를 활성화한 경우 다음 옵션이 있습니다:
- 그룹 대신 개별 사용자를 Code Owners로 사용합니다.
- 그룹 기반 Code Owners 사용이 더 높은 우선 순위인 경우 전역 그룹 멤버십 잠금을 비활성화합니다.
상속된 그룹 구성원에 대한 지원은 이슈 288851에서 제안되어 있습니다.
