Code Owners
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
Code Owners 기능을 사용하면 프로젝트 코드베이스의 특정 부분에 대한 전문가를 정의할 수 있습니다. 리포지터리에서 파일과 디렉터리의 소유자를 정의하여 다음을 수행할 수 있습니다: 소유자에게 변경 사항 승인을 요구합니다.
Code Owners 기능을 사용하면 프로젝트 코드베이스의 특정 부분에 대한 전문가를 정의할 수 있습니다.
리포지터리에서 파일과 디렉터리의 소유자를 정의하여 다음을 수행할 수 있습니다:
-
소유자에게 변경 사항 승인을 요구합니다. 보호 브랜치와 Code Owners를 결합하여 보호 브랜치에 머지하기 전에 전문가가 머지 리퀘스트를 승인하도록 요구합니다. 자세한 내용은 Code Owners와 보호 브랜치를 참조하세요.
-
소유자를 확인합니다. Code Owner 이름은 자신이 소유한 파일 및 디렉터리에 표시됩니다:

Code Owners와 승인 규칙#
Code Owners를 머지 리퀘스트 승인 규칙(선택적 또는 필수)과 결합하여 유연한 승인 워크플로우를 구축합니다:
- Code Owners를 사용하여 품질을 보장합니다. 리포지터리의 특정 경로에 대한 도메인 전문 지식을 가진 사용자를 정의합니다.
- 승인 규칙을 사용하여 리포지터리의 특정 파일 경로에 해당하지 않는 전문 분야를 정의합니다. 승인 규칙은 머지 리퀘스트 작성자를 프론트엔드 개발자나 보안 팀과 같은 올바른 검토자 집합으로 안내하는 데 도움이 됩니다.
예를 들어:
| 유형 | 이름 | 범위 | 설명 |
|---|---|---|---|
| 승인 규칙 | UX | 모든 파일 | UX 팀 구성원이 프로젝트에서 변경한 모든 사항의 사용자 경험을 검토합니다. |
| 승인 규칙 | Security | 모든 파일 | 보안 팀 구성원이 취약점에 대한 모든 변경 사항을 검토합니다. |
| Code Owner 승인 규칙 | Frontend: Code Style | *.css 파일 |
프론트엔드 엔지니어가 프로젝트 스타일 표준 준수를 위해 CSS 파일 변경 사항을 검토합니다. |
| Code Owner 승인 규칙 | Backend: Code Review | *.rb 파일 |
백엔드 엔지니어가 Ruby 파일의 로직 및 코드 스타일을 검토합니다. |
승인자 또는 Code Owner로서 머지 리퀘스트를 승인할 자격이 있는 사람에 대한 정보는 멤버십 유형별 승인자를 참조하세요.
Code Owners와 보호 브랜치#
CODEOWNERS 파일에 지정된 Code Owners가 머지 리퀘스트 변경 사항을 검토하고 승인하도록 하려면 머지 리퀘스트의 대상 브랜치가 보호되어야 하고 Code Owner 승인이 활성화되어야 합니다.
보호 브랜치에서 Code Owner 승인을 활성화하면 다음 기능을 사용할 수 있습니다:
실용적인 예시#
프로젝트에 config/ 디렉터리에 민감하고 중요한 정보가 포함되어 있습니다. 다음을 수행할 수 있습니다:
- 디렉터리의 소유권을 할당합니다. 이를 위해
CODEOWNERS파일을 설정합니다. - 기본 브랜치에 대한 보호 브랜치를 만듭니다. 예를 들어
main입니다. - 보호 브랜치에서 Required approval from code owners를 활성화합니다.
- 선택 사항.
CODEOWNERS파일을 편집하여 여러 승인을 위한 규칙을 추가합니다.
이 구성을 사용하면 config/ 디렉터리의 파일을 변경하고 main 브랜치를 대상으로 하는 머지 리퀘스트는 머지 전에 지정된 Code Owners의 승인이 필요합니다.
보호 브랜치에 푸시 및 머지가 허용됨#
Allowed to push and merge 권한을 가진 사용자는 변경 사항에 대한 머지 리퀘스트를 만들거나 변경 사항을 브랜치에 직접 푸시하도록 선택할 수 있습니다. 사용자가 머지 리퀘스트 프로세스를 건너뛰면 머지 리퀘스트에 내장된 보호 브랜치 기능 및 Code Owner 승인도 건너뜁니다.
이 권한은 종종 자동화(내부 사용자) 및 릴리스 도구와 관련된 계정에 부여됩니다.
Allowed to push 권한이 없는 사용자의 모든 변경 사항은 머지 리퀘스트를 통해 라우팅되어야 합니다.
파일 또는 디렉터리의 Code Owners 보기#
파일 또는 디렉터리의 Code Owners를 보려면:
- 상단 표시줄에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Code > Repository를 선택합니다.
- Code Owners를 보려는 파일 또는 디렉터리로 이동합니다.
- 선택 사항. 브랜치 또는 태그를 선택합니다.
GitLab은 페이지 상단에 Code Owners를 표시합니다.
Code Owners 설정#
사전 요구 사항:
- 기본 브랜치에 푸시하거나 머지 리퀘스트를 만들 수 있는 권한이 있어야 합니다.
- 선호하는 위치에
CODEOWNERS파일을 만듭니다. CODEOWNERS구문을 따라 파일에 일부 규칙을 정의합니다. 몇 가지 제안:- All eligible users 승인 규칙을 구성합니다.
- 보호 브랜치에서 코드 소유자 승인 요구합니다.
- 변경 사항을 커밋하고 GitLab에 푸시합니다.
CODEOWNERS 파일#
CODEOWNERS 파일은 GitLab 프로젝트에서 코드에 대한 책임자를 정의합니다.
목적은 다음과 같습니다:
- 특정 파일 및 디렉터리에 대한 Code Owners를 정의합니다.
- 보호 브랜치에 대한 승인 요구 사항을 적용합니다.
- 프로젝트에서 코드 소유권을 전달합니다.
이 파일은 누가 변경 사항을 검토하고 승인해야 하는지 결정하고 올바른 전문가가 코드 변경에 참여하도록 보장합니다.
각 리포지터리는 단일 CODEOWNERS 파일을 사용합니다. GitLab은 이 순서대로 리포지터리에서 이러한 위치를 확인합니다. 처음 발견된 CODEOWNERS 파일이 사용되고 다른 파일은 무시됩니다:
- 루트 디렉터리:
./CODEOWNERS. docs디렉터리:./docs/CODEOWNERS..gitlab디렉터리:./.gitlab/CODEOWNERS.
자세한 내용은 CODEOWNERS 구문 및 고급 CODEOWNERS 구성을 참조하세요.
