InfoGrab DocsInfoGrab Docs

Code Owners

요약

Code Owners 기능을 사용하면 프로젝트 코드베이스의 특정 영역을 누가 잘 아는지 정의할 수 있습니다. 리포지터리의 파일과 디렉터리 소유자를 정의하면 다음을 할 수 있습니다. 소유자의 변경 사항 승인을 요구합니다.

Code Owners 기능을 사용하면 프로젝트 코드베이스의 특정 영역을 누가 잘 아는지 정의할 수 있습니다.

리포지터리의 파일과 디렉터리 소유자를 정의하면 다음을 할 수 있습니다.

  • 소유자의 변경 사항 승인을 요구합니다. 보호된 브랜치와 Code Owners를 함께 사용하면 머지 리퀘스트가 보호된 브랜치에 머지되기 전에 전문가의 승인을 받도록 요구할 수 있습니다. 자세한 내용은 Code Owners와 보호된 브랜치를 참고합니다.

  • 소유자를 식별합니다. Code Owner의 이름은 해당 소유자가 담당하는 파일과 디렉터리에 표시됩니다.

    가장 최근 변경 사항 설명 아래에 Code Owners가 나열된 파일 화면.

Code Owners와 승인 규칙#

Code Owners를 머지 리퀘스트 승인 규칙(선택 또는 필수)과 결합하면 유연한 승인 워크플로를 구성할 수 있습니다.

  • Code Owners로 품질을 확보합니다. 리포지터리의 특정 경로에 대한 도메인 전문성을 갖춘 사용자를 정의합니다.
  • 승인 규칙으로는 리포지터리의 특정 파일 경로와 대응되지 않는 전문 영역을 정의합니다. 승인 규칙은 머지 리퀘스트 작성자가 프론트엔드 개발자나 보안 팀처럼 적절한 리뷰어를 찾도록 안내합니다.

예를 들면 다음과 같습니다.

유형 이름 범위 설명
승인 규칙 UX 모든 파일 UX 팀 구성원이 프로젝트에서 변경한 모든 사항의 사용자 경험을 검토합니다.
승인 규칙 Security 모든 파일 보안 팀 구성원이 모든 변경 사항에서 취약점을 검토합니다.
Code Owner 승인 규칙 Frontend: Code Style *.css 파일 프론트엔드 엔지니어가 프로젝트 스타일 표준 준수 여부를 기준으로 CSS 파일 변경 사항을 검토합니다.
Code Owner 승인 규칙 Backend: Code Review *.rb 파일 백엔드 엔지니어가 Ruby 파일의 로직과 코드 스타일을 검토합니다.
Video introduction: Code Owners.

승인자 또는 Code Owner로서 머지 리퀘스트를 승인할 자격이 있는 사람에 대한 정보는 멤버십 유형별 승인자를 참고합니다.

Code Owners와 보호된 브랜치#

머지 리퀘스트의 변경 사항이 CODEOWNERS 파일에 지정된 Code Owners의 검토와 승인을 거치도록 하려면, 머지 리퀘스트의 대상 브랜치가 보호된 브랜치여야 하고 Code Owner 승인이 활성화되어 있어야 합니다.

보호된 브랜치에서 Code Owner 승인을 활성화하면 다음 기능을 사용할 수 있습니다.

실용적인 예시#

프로젝트의 config/ 디렉터리에 민감하고 중요한 정보가 들어 있다고 가정하면 다음과 같이 할 수 있습니다.

  1. 해당 디렉터리의 소유권을 지정합니다. 이를 위해 CODEOWNERS 파일을 설정합니다.
  2. 기본 브랜치에 대한 보호된 브랜치를 만듭니다. 예를 들면 main 입니다.
  3. 보호된 브랜치에서 Required approval from code owners를 활성화합니다.
  4. 선택 사항. CODEOWNERS 파일을 편집해 다중 승인 규칙을 추가합니다.

이렇게 구성하면 config/ 디렉터리의 파일을 변경하고 main 브랜치를 대상으로 하는 머지 리퀘스트는 머지 전에 지정된 Code Owners의 승인을 받아야 합니다.

Code Owner가 없는 파일#

GitLab은 머지 리퀘스트에서 변경된 파일을 대상 브랜치의 CODEOWNERS 파일과 비교합니다. 어떤 CODEOWNERS 규칙과도 일치하지 않는 파일은 Code Owner의 승인이 필요하지 않습니다. 여기에는 새 파일과, 머지 리퀘스트가 열려 있는 동안 대상 브랜치에서 이동되거나 이름이 바뀐 파일이 포함됩니다.

모든 파일에 승인을 요구하려면 파일 맨 위에 * 항목으로 기본 소유자를 추가합니다.

나중에 더 구체적인 항목을 추가하면 일치하는 마지막 항목이 사용되므로 * 항목보다 우선합니다.

자세한 내용은 CODEOWNERS 구문과 고급 CODEOWNERS 구성을 참고합니다.

보호된 브랜치에 푸시 및 머지가 허용됨#

Allowed to push and merge 권한이 있는 사용자는 변경 사항에 대해 머지 리퀘스트를 만들 수도 있고, 브랜치에 변경 사항을 직접 푸시할 수도 있습니다. 사용자가 머지 리퀘스트 절차를 건너뛰면 머지 리퀘스트에 내장된 보호된 브랜치 기능과 Code Owner 승인도 함께 건너뜁니다.

이 권한은 주로 자동화와 관련된 계정(내부 사용자)과 릴리스 도구에 부여됩니다.

Allowed to push 권한이 없는 사용자의 모든 변경 사항은 머지 리퀘스트를 거쳐야 합니다.

파일 또는 디렉터리의 Code Owners 보기#

파일 또는 디렉터리의 Code Owners를 보려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Repository를 선택합니다.
  3. Code Owners를 확인하려는 파일 또는 디렉터리로 이동합니다.
  4. 선택 사항. 브랜치 또는 태그를 선택합니다.

GitLab은 페이지 상단에 Code Owners를 표시합니다.

Code Owners 설정#

사전 요구 사항:

  • 기본 브랜치에 푸시하거나 머지 리퀘스트를 만들 수 있는 권한이 있어야 합니다.
  1. 원하는 위치에 CODEOWNERS 파일을 만듭니다.
  2. CODEOWNERS 구문에 따라 파일에 규칙을 정의합니다. 다음을 함께 고려합니다.
  3. 변경 사항을 커밋하고 GitLab에 푸시합니다.

CODEOWNERS 파일#

CODEOWNERS 파일은 GitLab 프로젝트에서 코드를 책임지는 주체를 정의합니다. 이 파일의 목적은 다음과 같습니다.

  • 특정 파일과 디렉터리의 Code Owners를 정의합니다.
  • 보호된 브랜치의 승인 요건을 적용합니다.
  • 프로젝트의 코드 소유권을 알립니다.

이 파일은 누가 변경 사항을 검토하고 승인해야 하는지 결정하며, 코드 변경에 적합한 전문가가 참여하도록 합니다.

리포지터리마다 CODEOWNERS 파일 하나만 사용합니다. GitLab은 리포지터리에서 다음 위치를 이 순서대로 확인합니다. 가장 먼저 찾은 CODEOWNERS 파일이 사용되고 나머지는 모두 무시됩니다.

  1. 루트 디렉터리: ./CODEOWNERS.
  2. docs 디렉터리: ./docs/CODEOWNERS.
  3. .gitlab 디렉터리: ./.gitlab/CODEOWNERS.

자세한 내용은 CODEOWNERS 구문과 고급 CODEOWNERS 구성을 참고합니다.

관련 주제#

Code Owners

GitLab v19.5
Tier: Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

Code Owners 기능을 사용하면 프로젝트 코드베이스의 특정 영역을 누가 잘 아는지 정의할 수 있습니다. 리포지터리의 파일과 디렉터리 소유자를 정의하면 다음을 할 수 있습니다. 소유자의 변경 사항 승인을 요구합니다.

Code Owners 기능을 사용하면 프로젝트 코드베이스의 특정 영역을 누가 잘 아는지 정의할 수 있습니다.

리포지터리의 파일과 디렉터리 소유자를 정의하면 다음을 할 수 있습니다.

  • 소유자의 변경 사항 승인을 요구합니다. 보호된 브랜치와 Code Owners를 함께 사용하면 머지 리퀘스트가 보호된 브랜치에 머지되기 전에 전문가의 승인을 받도록 요구할 수 있습니다. 자세한 내용은 Code Owners와 보호된 브랜치를 참고합니다.

  • 소유자를 식별합니다. Code Owner의 이름은 해당 소유자가 담당하는 파일과 디렉터리에 표시됩니다.

    가장 최근 변경 사항 설명 아래에 Code Owners가 나열된 파일 화면.

Code Owners와 승인 규칙#

Code Owners를 머지 리퀘스트 승인 규칙(선택 또는 필수)과 결합하면 유연한 승인 워크플로를 구성할 수 있습니다.

  • Code Owners로 품질을 확보합니다. 리포지터리의 특정 경로에 대한 도메인 전문성을 갖춘 사용자를 정의합니다.
  • 승인 규칙으로는 리포지터리의 특정 파일 경로와 대응되지 않는 전문 영역을 정의합니다. 승인 규칙은 머지 리퀘스트 작성자가 프론트엔드 개발자나 보안 팀처럼 적절한 리뷰어를 찾도록 안내합니다.

예를 들면 다음과 같습니다.

유형 이름 범위 설명
승인 규칙 UX 모든 파일 UX 팀 구성원이 프로젝트에서 변경한 모든 사항의 사용자 경험을 검토합니다.
승인 규칙 Security 모든 파일 보안 팀 구성원이 모든 변경 사항에서 취약점을 검토합니다.
Code Owner 승인 규칙 Frontend: Code Style *.css 파일 프론트엔드 엔지니어가 프로젝트 스타일 표준 준수 여부를 기준으로 CSS 파일 변경 사항을 검토합니다.
Code Owner 승인 규칙 Backend: Code Review *.rb 파일 백엔드 엔지니어가 Ruby 파일의 로직과 코드 스타일을 검토합니다.
Video introduction: Code Owners.

승인자 또는 Code Owner로서 머지 리퀘스트를 승인할 자격이 있는 사람에 대한 정보는 멤버십 유형별 승인자를 참고합니다.

Code Owners와 보호된 브랜치#

머지 리퀘스트의 변경 사항이 CODEOWNERS 파일에 지정된 Code Owners의 검토와 승인을 거치도록 하려면, 머지 리퀘스트의 대상 브랜치가 보호된 브랜치여야 하고 Code Owner 승인이 활성화되어 있어야 합니다.

보호된 브랜치에서 Code Owner 승인을 활성화하면 다음 기능을 사용할 수 있습니다.

실용적인 예시#

프로젝트의 config/ 디렉터리에 민감하고 중요한 정보가 들어 있다고 가정하면 다음과 같이 할 수 있습니다.

  1. 해당 디렉터리의 소유권을 지정합니다. 이를 위해 CODEOWNERS 파일을 설정합니다.
  2. 기본 브랜치에 대한 보호된 브랜치를 만듭니다. 예를 들면 main 입니다.
  3. 보호된 브랜치에서 Required approval from code owners를 활성화합니다.
  4. 선택 사항. CODEOWNERS 파일을 편집해 다중 승인 규칙을 추가합니다.

이렇게 구성하면 config/ 디렉터리의 파일을 변경하고 main 브랜치를 대상으로 하는 머지 리퀘스트는 머지 전에 지정된 Code Owners의 승인을 받아야 합니다.

Code Owner가 없는 파일#

GitLab은 머지 리퀘스트에서 변경된 파일을 대상 브랜치의 CODEOWNERS 파일과 비교합니다. 어떤 CODEOWNERS 규칙과도 일치하지 않는 파일은 Code Owner의 승인이 필요하지 않습니다. 여기에는 새 파일과, 머지 리퀘스트가 열려 있는 동안 대상 브랜치에서 이동되거나 이름이 바뀐 파일이 포함됩니다.

모든 파일에 승인을 요구하려면 파일 맨 위에 * 항목으로 기본 소유자를 추가합니다.

나중에 더 구체적인 항목을 추가하면 일치하는 마지막 항목이 사용되므로 * 항목보다 우선합니다.

자세한 내용은 CODEOWNERS 구문과 고급 CODEOWNERS 구성을 참고합니다.

보호된 브랜치에 푸시 및 머지가 허용됨#

Allowed to push and merge 권한이 있는 사용자는 변경 사항에 대해 머지 리퀘스트를 만들 수도 있고, 브랜치에 변경 사항을 직접 푸시할 수도 있습니다. 사용자가 머지 리퀘스트 절차를 건너뛰면 머지 리퀘스트에 내장된 보호된 브랜치 기능과 Code Owner 승인도 함께 건너뜁니다.

이 권한은 주로 자동화와 관련된 계정(내부 사용자)과 릴리스 도구에 부여됩니다.

Allowed to push 권한이 없는 사용자의 모든 변경 사항은 머지 리퀘스트를 거쳐야 합니다.

파일 또는 디렉터리의 Code Owners 보기#

파일 또는 디렉터리의 Code Owners를 보려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Code > Repository를 선택합니다.
  3. Code Owners를 확인하려는 파일 또는 디렉터리로 이동합니다.
  4. 선택 사항. 브랜치 또는 태그를 선택합니다.

GitLab은 페이지 상단에 Code Owners를 표시합니다.

Code Owners 설정#

사전 요구 사항:

  • 기본 브랜치에 푸시하거나 머지 리퀘스트를 만들 수 있는 권한이 있어야 합니다.
  1. 원하는 위치에 CODEOWNERS 파일을 만듭니다.
  2. CODEOWNERS 구문에 따라 파일에 규칙을 정의합니다. 다음을 함께 고려합니다.
  3. 변경 사항을 커밋하고 GitLab에 푸시합니다.

CODEOWNERS 파일#

CODEOWNERS 파일은 GitLab 프로젝트에서 코드를 책임지는 주체를 정의합니다. 이 파일의 목적은 다음과 같습니다.

  • 특정 파일과 디렉터리의 Code Owners를 정의합니다.
  • 보호된 브랜치의 승인 요건을 적용합니다.
  • 프로젝트의 코드 소유권을 알립니다.

이 파일은 누가 변경 사항을 검토하고 승인해야 하는지 결정하며, 코드 변경에 적합한 전문가가 참여하도록 합니다.

리포지터리마다 CODEOWNERS 파일 하나만 사용합니다. GitLab은 리포지터리에서 다음 위치를 이 순서대로 확인합니다. 가장 먼저 찾은 CODEOWNERS 파일이 사용되고 나머지는 모두 무시됩니다.

  1. 루트 디렉터리: ./CODEOWNERS.
  2. docs 디렉터리: ./docs/CODEOWNERS.
  3. .gitlab 디렉터리: ./.gitlab/CODEOWNERS.

자세한 내용은 CODEOWNERS 구문과 고급 CODEOWNERS 구성을 참고합니다.

관련 주제#