InfoGrab Docs

튜토리얼: 프로젝트를 위한 보호된 워크플로 구축

요약

팀이 새 프로젝트를 시작할 때 효율성과 적절한 검토 사이의 균형을 맞추는 워크플로가 필요합니다. 이 튜토리얼은 "Excelsior"라는 예제 프로젝트의 1.x 및 1.x.x 릴리스 브랜치에 대한 보호를 설정하고 프로젝트를 위한 최소한의 승인 워크플로를 만듭니다:

팀이 새 프로젝트를 시작할 때 효율성과 적절한 검토 사이의 균형을 맞추는 워크플로가 필요합니다. GitLab에서 사용자 그룹을 만들고, 해당 그룹을 브랜치 보호와 결합한 다음, 승인 규칙으로 해당 보호를 시행할 수 있습니다.

이 튜토리얼은 "Excelsior"라는 예제 프로젝트의 1.x1.x.x 릴리스 브랜치에 대한 보호를 설정하고 프로젝트를 위한 최소한의 승인 워크플로를 만듭니다:

  1. engineering 그룹 만들기
  2. engineering에 서브그룹 만들기
  3. 서브그룹에 사용자 추가
  4. Excelsior 프로젝트 만들기
  5. 기본 CODEOWNERS 파일 추가
  6. 승인 규칙 구성
  7. 브랜치에 CODEOWNER 승인 시행
  8. 릴리스 브랜치 만들기

시작하기 전에#

  • Maintainer 또는 Owner 역할이 있어야 합니다.
  • 관리자 목록과 이메일 주소가 필요합니다.
  • 백엔드 및 프론트엔드 엔지니어 목록과 이메일 주소가 필요합니다.
  • 브랜치 이름에 대한 시맨틱 버전 관리를 이해해야 합니다.

engineering 그룹 만들기#

Excelsior 프로젝트를 설정하기 전에 프로젝트를 소유할 그룹을 만들어야 합니다. 여기에서 Engineering 그룹을 설정합니다:

  1. 오른쪽 상단에서 Create new(+)와 New group을 선택합니다.
  2. Create group을 선택합니다.
  3. Group nameEngineering을 입력합니다.
  4. Group URLengineering을 입력합니다.
  5. Visibility levelPrivate으로 설정합니다.
  6. GitLab이 가장 유용한 정보를 표시할 수 있도록 경험을 개인화합니다:
    • Role에서 System administrator를 선택합니다.
    • **Who will be using this group?**에서 My company or team을 선택합니다.
    • **What will you use this group for?**에서 I want to store my code를 선택합니다.
  7. 그룹에 구성원 초대를 건너뜁니다. 이 튜토리얼의 이후 섹션에서 사용자를 추가합니다.
  8. Create group을 선택합니다.

다음으로 더 세분화된 제어를 위해 이 engineering 그룹에 서브그룹을 추가합니다.

engineering에 서브그룹 만들기#

engineering 그룹은 좋은 시작점이지만, Excelsior 프로젝트의 백엔드 엔지니어, 프론트엔드 엔지니어 및 관리자는 서로 다른 작업과 전문 분야를 가집니다.

여기에서 Engineering 그룹에 더 세분화된 서브그룹 세 개를 만들어 수행하는 작업 유형별로 사용자를 구분합니다: managers, frontend, backend. 그런 다음 이 새 그룹들을 engineering 그룹의 구성원으로 추가합니다.

먼저 새 서브그룹을 만듭니다:

  1. 상단 바에서 Search or go to를 선택하고 engineering을 검색합니다.

  2. Engineering이라는 그룹을 선택합니다:

    검색 결과의 engineering 그룹

  3. engineering 그룹 개요 페이지의 오른쪽 상단에서 Create subgroup을 선택합니다.

  4. Subgroup nameManagers를 입력합니다.

  5. Visibility levelPrivate으로 설정합니다.

  6. Create subgroup을 선택합니다.

다음으로 서브그룹을 engineering 그룹의 구성원으로 추가합니다:

  1. 상단 바에서 Search or go to를 선택하고 engineering을 검색합니다.
  2. Engineering이라는 그룹을 선택합니다.
  3. Manage > Members를 선택합니다.
  4. 오른쪽 상단에서 Invite a group을 선택합니다.
  5. Select a group to invite에서 Engineering / Managers를 선택합니다.
  6. 서브그룹 추가 시 Maintainer 역할을 선택합니다. 이는 서브그룹 구성원이 engineering 그룹 및 해당 프로젝트에 액세스할 때 상속받을 수 있는 최고 역할을 구성합니다.
  7. 선택 사항. 만료일을 선택합니다.
  8. Invite를 선택합니다.

backendfrontend에 대한 서브그룹을 만들기 위해 이 과정을 반복합니다. 완료되면 engineering 그룹을 다시 검색합니다. 개요 페이지에 다음과 같이 세 개의 서브그룹이 표시되어야 합니다:

engineering 그룹에 세 개의 서브그룹이 있습니다

서브그룹에 사용자 추가#

이전 단계에서 서브그룹을 부모 그룹(engineering)에 추가할 때 서브그룹 구성원을 Maintainer 역할로 제한했습니다. 이 역할은 engineering이 소유한 프로젝트에 대해 상속받을 수 있는 최고 역할입니다. 결과적으로:

  • 사용자 1이 Guest 역할로 manager 서브그룹에 추가되면 engineering 프로젝트에서 Guest 역할을 받습니다.
  • 사용자 2가 Owner 역할로 manager 그룹에 추가됩니다. 이 역할은 설정한 최대 역할(Maintainer)보다 높으므로 사용자 2는 Owner 대신 Maintainer 역할을 받습니다.

frontend 서브그룹에 사용자를 추가하려면:

  1. 상단 바에서 Search or go to를 선택하고 frontend를 검색합니다.
  2. Frontend 그룹을 선택합니다.
  3. Manage > Members를 선택합니다.
  4. Invite members를 선택합니다.
  5. 필드를 작성합니다. 기본적으로 Developer 역할을 선택하고, 이 사용자가 다른 사람의 작업을 검토한다면 Maintainer로 높입니다.
  6. Invite를 선택합니다.
  7. 모든 프론트엔드 엔지니어를 frontend 서브그룹에 추가할 때까지 이 단계를 반복합니다.

backendmanagers 그룹에도 동일하게 수행합니다. 동일한 사용자가 여러 서브그룹의 구성원이 될 수 있습니다.

Excelsior 프로젝트 만들기#

그룹 구조가 준비되었으므로 팀이 작업할 excelsior 프로젝트를 만듭니다. 프론트엔드 및 백엔드 엔지니어 모두 참여하므로 excelsior는 방금 만든 소규모 서브그룹이 아닌 engineering에 속해야 합니다.

excelsior 프로젝트를 만들려면:

  1. 상단 바에서 Search or go to를 선택하고 engineering을 검색합니다.
  2. Engineering이라는 그룹을 선택합니다.
  3. engineering 그룹 개요 페이지의 오른쪽 상단에서 Create new(+)와 In this group > New project/repository를 선택합니다.
  4. Create blank project를 선택합니다.
  5. 프로젝트 세부 정보를 입력합니다:
    • Project name 필드에 Excelsior를 입력합니다. Project slug는 자동으로 excelsior로 채워져야 합니다.
    • Visibility Level에서 Public을 선택합니다.
    • Initialize repository with a README를 선택하여 저장소에 초기 파일을 추가합니다.
  6. Create project를 선택합니다.

GitLab이 excelsior 프로젝트를 만들고 홈페이지로 리디렉션합니다. 다음과 같이 표시됩니다:

새롭고 거의 비어 있는 excelsior 프로젝트

다음 단계에서 이 페이지의 기능을 사용합니다.

기본 CODEOWNERS 파일 추가#

프로젝트의 루트 디렉토리에 CODEOWNERS 파일을 추가하여 올바른 서브그룹으로 검토를 라우팅합니다. 이 예제는 네 가지 규칙을 설정합니다:

  • 모든 변경 사항은 engineering 그룹의 누군가가 검토해야 합니다.
  • CODEOWNERS 파일 자체에 대한 변경 사항은 관리자가 검토해야 합니다.
  • 프론트엔드 파일에 대한 변경 사항은 프론트엔드 엔지니어가 검토해야 합니다.
  • 백엔드 파일에 대한 변경 사항은 백엔드 엔지니어가 검토해야 합니다.
Note

GitLab Free는 선택적 검토만 지원합니다. 검토를 필수로 만들려면 GitLab Premium 또는 Ultimate가 필요합니다.

excelsior 프로젝트에 CODEOWNERS 파일을 추가하려면:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.

  2. Excelsior라는 프로젝트를 선택합니다.

  3. 브랜치 이름 옆에서 더하기 아이콘(+)을 선택한 다음 New file을 선택합니다: 프로젝트에서 새 파일 만들기

  4. FilenameCODEOWNERS를 입력합니다. 이렇게 하면 프로젝트의 루트 디렉토리에 CODEOWNERS라는 파일이 만들어집니다.

  5. 편집 영역에 이 예제를 붙여넣습니다. 그룹 구조와 일치하지 않으면 @engineering/을 변경합니다:

    # All changes should be reviewed by someone in the engineering group
    * @engineering
    
    # A manager should review any changes to this file
    CODEOWNERS @engineering/managers
    
    # Frontend files should be reviewed by FE engineers
    [Frontend] @engineering/frontend
    *.scss
    *.js
    
    # Backend files should be reviewed by BE engineers
    [Backend] @engineering/backend
    *.rb
    
  6. Commit message에 다음을 붙여넣습니다:

    Adds a new CODEOWNERS file
    
    Creates a small CODEOWNERS file to:
    - Route backend and frontend changes to the right teams
    - Route CODEOWNERS file changes to managers
    - Request all changes be reviewed
    
  7. Commit changes를 선택합니다.

CODEOWNERS 파일이 이제 프로젝트의 main 브랜치에 있으며 이 프로젝트에서 만들어지는 모든 미래 브랜치에서 사용할 수 있습니다.

승인 규칙 구성#

CODEOWNERS 파일은 디렉토리 및 파일 유형에 대한 적절한 검토자를 설명합니다. 승인 규칙은 해당 검토자에게 머지 리퀘스트를 보냅니다. 여기에서 새 CODEOWNERS 파일의 정보를 사용하고 릴리스 브랜치에 대한 보호를 추가하는 승인 규칙을 설정합니다:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.
  2. Excelsior라는 프로젝트를 선택합니다.
  3. Settings > Merge requests를 선택합니다.
  4. Merge request approvals 섹션에서 Approval rules로 스크롤합니다.
  5. Add approval rule을 선택합니다.
  6. Enforce CODEOWNERS라는 규칙을 만듭니다.
  7. All protected branches를 선택합니다.
  8. GitLab Premium 및 GitLab Ultimate에서 규칙을 필수로 만들려면 Approvals required1로 설정합니다.
  9. managers 그룹을 승인자로 추가합니다.
  10. Add approval rule을 선택합니다.
  11. Approval settings로 스크롤하여 Prevent editing approval rules in merge requests가 선택되어 있는지 확인합니다.
  12. Save changes를 선택합니다.

추가되면 Enforce CODEOWNERS 규칙이 다음과 같이 표시됩니다:

적용된 새 승인 규칙

브랜치에 CODEOWNER 승인 시행#

프로젝트에 대한 여러 보호 기능을 구성했으며 이제 이러한 보호 기능을 결합하여 프로젝트의 중요한 브랜치를 보호할 준비가 되었습니다:

  • 사용자는 논리적인 그룹 및 서브그룹으로 정렬되었습니다.
  • CODEOWNERS 파일은 파일 유형 및 디렉토리에 대한 전문가를 설명합니다.
  • 승인 규칙은 (GitLab Free에서) 권장하거나 (GitLab Premium 및 GitLab Ultimate에서) 전문가가 변경 사항을 검토하도록 요구합니다.

excelsior 프로젝트는 릴리스 브랜치 이름에 시맨틱 버전 관리를 사용하므로 릴리스 브랜치가 1.x1.x.x 패턴을 따른다는 것을 알고 있습니다. 이 브랜치에 추가되는 모든 코드는 전문가가 검토하고, 관리자가 릴리스 브랜치에 머지되는 작업에 대해 최종 결정을 내리도록 합니다.

브랜치별로 보호를 만드는 대신 와일드카드 브랜치 규칙을 구성하여 여러 브랜치를 보호합니다:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.
  2. Excelsior라는 프로젝트를 선택합니다.
  3. Settings > Repository를 선택합니다.
  4. Branch rules를 확장합니다.
  5. Add branch rule > Branch name or pattern을 선택합니다.
  6. 드롭다운 목록에서 1.*를 입력한 다음 **Create wildcard 1.***를 선택합니다.
  7. 커밋을 직접 푸시하는 대신 모든 사람이 머지 리퀘스트를 제출하도록 요구하려면:
    1. Allowed to merge 섹션에서 Edit를 선택하고 Maintainers로 설정한 다음 Save changes를 선택합니다.
    2. Allowed to push and merge 섹션에서 Edit를 선택하고 No one으로 설정한 다음 Save changes를 선택합니다.
    3. Allowed to force push는 비활성화된 상태로 둡니다.
  8. GitLab Premium 및 GitLab Ultimate에서 코드 소유자가 작업하는 파일에 대한 변경 사항을 검토하도록 요구하려면 Require approval from code owners를 토글합니다.
  9. 브랜치 테이블에서 Default로 표시된 규칙을 찾습니다. (GitLab 버전에 따라 이 브랜치는 main 또는 master로 명명될 수 있습니다.) 이 브랜치에 대한 값을 1.* 규칙에 사용한 설정과 일치하도록 설정합니다.

1.* 브랜치가 아직 없더라도 규칙이 이제 적용됩니다:

main과 1.x가 이제 보호됩니다

릴리스 브랜치 만들기#

모든 브랜치 보호가 적용되었으므로 이제 1.0.0 릴리스 브랜치를 만들 준비가 되었습니다:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.
  2. Excelsior라는 프로젝트를 선택합니다.
  3. 왼쪽 사이드바에서 Code > Branches를 선택합니다.
  4. 오른쪽 상단에서 New branch를 선택합니다. 1.0.0으로 이름을 지정합니다.
  5. Create branch를 선택합니다.

브랜치 보호가 이제 UI에서 표시됩니다:

  • 왼쪽 사이드바에서 Code > Branches를 선택합니다. 브랜치 목록에서 브랜치 1.0.0이 보호됨을 표시해야 합니다:

    브랜치 목록, 1.0.0이 보호됨을 표시

  • 왼쪽 사이드바에서 Settings > Repository를 선택한 다음 Branch rules를 확장하여 모든 보호된 브랜치에 대한 세부 정보를 봅니다:

    보호된 브랜치 및 해당 보호 목록

축하합니다! 엔지니어들은 자신의 브랜치에서 독립적으로 작업할 수 있으며, 1.0.0 릴리스 브랜치 검토를 위해 제출된 모든 코드는 전문가가 검토합니다.

튜토리얼: 프로젝트를 위한 보호된 워크플로 구축

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

팀이 새 프로젝트를 시작할 때 효율성과 적절한 검토 사이의 균형을 맞추는 워크플로가 필요합니다. 이 튜토리얼은 "Excelsior"라는 예제 프로젝트의 1.x 및 1.x.x 릴리스 브랜치에 대한 보호를 설정하고 프로젝트를 위한 최소한의 승인 워크플로를 만듭니다:

팀이 새 프로젝트를 시작할 때 효율성과 적절한 검토 사이의 균형을 맞추는 워크플로가 필요합니다. GitLab에서 사용자 그룹을 만들고, 해당 그룹을 브랜치 보호와 결합한 다음, 승인 규칙으로 해당 보호를 시행할 수 있습니다.

이 튜토리얼은 "Excelsior"라는 예제 프로젝트의 1.x1.x.x 릴리스 브랜치에 대한 보호를 설정하고 프로젝트를 위한 최소한의 승인 워크플로를 만듭니다:

  1. engineering 그룹 만들기
  2. engineering에 서브그룹 만들기
  3. 서브그룹에 사용자 추가
  4. Excelsior 프로젝트 만들기
  5. 기본 CODEOWNERS 파일 추가
  6. 승인 규칙 구성
  7. 브랜치에 CODEOWNER 승인 시행
  8. 릴리스 브랜치 만들기

시작하기 전에#

  • Maintainer 또는 Owner 역할이 있어야 합니다.
  • 관리자 목록과 이메일 주소가 필요합니다.
  • 백엔드 및 프론트엔드 엔지니어 목록과 이메일 주소가 필요합니다.
  • 브랜치 이름에 대한 시맨틱 버전 관리를 이해해야 합니다.

engineering 그룹 만들기#

Excelsior 프로젝트를 설정하기 전에 프로젝트를 소유할 그룹을 만들어야 합니다. 여기에서 Engineering 그룹을 설정합니다:

  1. 오른쪽 상단에서 Create new(+)와 New group을 선택합니다.
  2. Create group을 선택합니다.
  3. Group nameEngineering을 입력합니다.
  4. Group URLengineering을 입력합니다.
  5. Visibility levelPrivate으로 설정합니다.
  6. GitLab이 가장 유용한 정보를 표시할 수 있도록 경험을 개인화합니다:
    • Role에서 System administrator를 선택합니다.
    • **Who will be using this group?**에서 My company or team을 선택합니다.
    • **What will you use this group for?**에서 I want to store my code를 선택합니다.
  7. 그룹에 구성원 초대를 건너뜁니다. 이 튜토리얼의 이후 섹션에서 사용자를 추가합니다.
  8. Create group을 선택합니다.

다음으로 더 세분화된 제어를 위해 이 engineering 그룹에 서브그룹을 추가합니다.

engineering에 서브그룹 만들기#

engineering 그룹은 좋은 시작점이지만, Excelsior 프로젝트의 백엔드 엔지니어, 프론트엔드 엔지니어 및 관리자는 서로 다른 작업과 전문 분야를 가집니다.

여기에서 Engineering 그룹에 더 세분화된 서브그룹 세 개를 만들어 수행하는 작업 유형별로 사용자를 구분합니다: managers, frontend, backend. 그런 다음 이 새 그룹들을 engineering 그룹의 구성원으로 추가합니다.

먼저 새 서브그룹을 만듭니다:

  1. 상단 바에서 Search or go to를 선택하고 engineering을 검색합니다.

  2. Engineering이라는 그룹을 선택합니다:

    검색 결과의 engineering 그룹

  3. engineering 그룹 개요 페이지의 오른쪽 상단에서 Create subgroup을 선택합니다.

  4. Subgroup nameManagers를 입력합니다.

  5. Visibility levelPrivate으로 설정합니다.

  6. Create subgroup을 선택합니다.

다음으로 서브그룹을 engineering 그룹의 구성원으로 추가합니다:

  1. 상단 바에서 Search or go to를 선택하고 engineering을 검색합니다.
  2. Engineering이라는 그룹을 선택합니다.
  3. Manage > Members를 선택합니다.
  4. 오른쪽 상단에서 Invite a group을 선택합니다.
  5. Select a group to invite에서 Engineering / Managers를 선택합니다.
  6. 서브그룹 추가 시 Maintainer 역할을 선택합니다. 이는 서브그룹 구성원이 engineering 그룹 및 해당 프로젝트에 액세스할 때 상속받을 수 있는 최고 역할을 구성합니다.
  7. 선택 사항. 만료일을 선택합니다.
  8. Invite를 선택합니다.

backendfrontend에 대한 서브그룹을 만들기 위해 이 과정을 반복합니다. 완료되면 engineering 그룹을 다시 검색합니다. 개요 페이지에 다음과 같이 세 개의 서브그룹이 표시되어야 합니다:

engineering 그룹에 세 개의 서브그룹이 있습니다

서브그룹에 사용자 추가#

이전 단계에서 서브그룹을 부모 그룹(engineering)에 추가할 때 서브그룹 구성원을 Maintainer 역할로 제한했습니다. 이 역할은 engineering이 소유한 프로젝트에 대해 상속받을 수 있는 최고 역할입니다. 결과적으로:

  • 사용자 1이 Guest 역할로 manager 서브그룹에 추가되면 engineering 프로젝트에서 Guest 역할을 받습니다.
  • 사용자 2가 Owner 역할로 manager 그룹에 추가됩니다. 이 역할은 설정한 최대 역할(Maintainer)보다 높으므로 사용자 2는 Owner 대신 Maintainer 역할을 받습니다.

frontend 서브그룹에 사용자를 추가하려면:

  1. 상단 바에서 Search or go to를 선택하고 frontend를 검색합니다.
  2. Frontend 그룹을 선택합니다.
  3. Manage > Members를 선택합니다.
  4. Invite members를 선택합니다.
  5. 필드를 작성합니다. 기본적으로 Developer 역할을 선택하고, 이 사용자가 다른 사람의 작업을 검토한다면 Maintainer로 높입니다.
  6. Invite를 선택합니다.
  7. 모든 프론트엔드 엔지니어를 frontend 서브그룹에 추가할 때까지 이 단계를 반복합니다.

backendmanagers 그룹에도 동일하게 수행합니다. 동일한 사용자가 여러 서브그룹의 구성원이 될 수 있습니다.

Excelsior 프로젝트 만들기#

그룹 구조가 준비되었으므로 팀이 작업할 excelsior 프로젝트를 만듭니다. 프론트엔드 및 백엔드 엔지니어 모두 참여하므로 excelsior는 방금 만든 소규모 서브그룹이 아닌 engineering에 속해야 합니다.

excelsior 프로젝트를 만들려면:

  1. 상단 바에서 Search or go to를 선택하고 engineering을 검색합니다.
  2. Engineering이라는 그룹을 선택합니다.
  3. engineering 그룹 개요 페이지의 오른쪽 상단에서 Create new(+)와 In this group > New project/repository를 선택합니다.
  4. Create blank project를 선택합니다.
  5. 프로젝트 세부 정보를 입력합니다:
    • Project name 필드에 Excelsior를 입력합니다. Project slug는 자동으로 excelsior로 채워져야 합니다.
    • Visibility Level에서 Public을 선택합니다.
    • Initialize repository with a README를 선택하여 저장소에 초기 파일을 추가합니다.
  6. Create project를 선택합니다.

GitLab이 excelsior 프로젝트를 만들고 홈페이지로 리디렉션합니다. 다음과 같이 표시됩니다:

새롭고 거의 비어 있는 excelsior 프로젝트

다음 단계에서 이 페이지의 기능을 사용합니다.

기본 CODEOWNERS 파일 추가#

프로젝트의 루트 디렉토리에 CODEOWNERS 파일을 추가하여 올바른 서브그룹으로 검토를 라우팅합니다. 이 예제는 네 가지 규칙을 설정합니다:

  • 모든 변경 사항은 engineering 그룹의 누군가가 검토해야 합니다.
  • CODEOWNERS 파일 자체에 대한 변경 사항은 관리자가 검토해야 합니다.
  • 프론트엔드 파일에 대한 변경 사항은 프론트엔드 엔지니어가 검토해야 합니다.
  • 백엔드 파일에 대한 변경 사항은 백엔드 엔지니어가 검토해야 합니다.
Note

GitLab Free는 선택적 검토만 지원합니다. 검토를 필수로 만들려면 GitLab Premium 또는 Ultimate가 필요합니다.

excelsior 프로젝트에 CODEOWNERS 파일을 추가하려면:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.

  2. Excelsior라는 프로젝트를 선택합니다.

  3. 브랜치 이름 옆에서 더하기 아이콘(+)을 선택한 다음 New file을 선택합니다: 프로젝트에서 새 파일 만들기

  4. FilenameCODEOWNERS를 입력합니다. 이렇게 하면 프로젝트의 루트 디렉토리에 CODEOWNERS라는 파일이 만들어집니다.

  5. 편집 영역에 이 예제를 붙여넣습니다. 그룹 구조와 일치하지 않으면 @engineering/을 변경합니다:

    # All changes should be reviewed by someone in the engineering group
    * @engineering
    
    # A manager should review any changes to this file
    CODEOWNERS @engineering/managers
    
    # Frontend files should be reviewed by FE engineers
    [Frontend] @engineering/frontend
    *.scss
    *.js
    
    # Backend files should be reviewed by BE engineers
    [Backend] @engineering/backend
    *.rb
    
  6. Commit message에 다음을 붙여넣습니다:

    Adds a new CODEOWNERS file
    
    Creates a small CODEOWNERS file to:
    - Route backend and frontend changes to the right teams
    - Route CODEOWNERS file changes to managers
    - Request all changes be reviewed
    
  7. Commit changes를 선택합니다.

CODEOWNERS 파일이 이제 프로젝트의 main 브랜치에 있으며 이 프로젝트에서 만들어지는 모든 미래 브랜치에서 사용할 수 있습니다.

승인 규칙 구성#

CODEOWNERS 파일은 디렉토리 및 파일 유형에 대한 적절한 검토자를 설명합니다. 승인 규칙은 해당 검토자에게 머지 리퀘스트를 보냅니다. 여기에서 새 CODEOWNERS 파일의 정보를 사용하고 릴리스 브랜치에 대한 보호를 추가하는 승인 규칙을 설정합니다:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.
  2. Excelsior라는 프로젝트를 선택합니다.
  3. Settings > Merge requests를 선택합니다.
  4. Merge request approvals 섹션에서 Approval rules로 스크롤합니다.
  5. Add approval rule을 선택합니다.
  6. Enforce CODEOWNERS라는 규칙을 만듭니다.
  7. All protected branches를 선택합니다.
  8. GitLab Premium 및 GitLab Ultimate에서 규칙을 필수로 만들려면 Approvals required1로 설정합니다.
  9. managers 그룹을 승인자로 추가합니다.
  10. Add approval rule을 선택합니다.
  11. Approval settings로 스크롤하여 Prevent editing approval rules in merge requests가 선택되어 있는지 확인합니다.
  12. Save changes를 선택합니다.

추가되면 Enforce CODEOWNERS 규칙이 다음과 같이 표시됩니다:

적용된 새 승인 규칙

브랜치에 CODEOWNER 승인 시행#

프로젝트에 대한 여러 보호 기능을 구성했으며 이제 이러한 보호 기능을 결합하여 프로젝트의 중요한 브랜치를 보호할 준비가 되었습니다:

  • 사용자는 논리적인 그룹 및 서브그룹으로 정렬되었습니다.
  • CODEOWNERS 파일은 파일 유형 및 디렉토리에 대한 전문가를 설명합니다.
  • 승인 규칙은 (GitLab Free에서) 권장하거나 (GitLab Premium 및 GitLab Ultimate에서) 전문가가 변경 사항을 검토하도록 요구합니다.

excelsior 프로젝트는 릴리스 브랜치 이름에 시맨틱 버전 관리를 사용하므로 릴리스 브랜치가 1.x1.x.x 패턴을 따른다는 것을 알고 있습니다. 이 브랜치에 추가되는 모든 코드는 전문가가 검토하고, 관리자가 릴리스 브랜치에 머지되는 작업에 대해 최종 결정을 내리도록 합니다.

브랜치별로 보호를 만드는 대신 와일드카드 브랜치 규칙을 구성하여 여러 브랜치를 보호합니다:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.
  2. Excelsior라는 프로젝트를 선택합니다.
  3. Settings > Repository를 선택합니다.
  4. Branch rules를 확장합니다.
  5. Add branch rule > Branch name or pattern을 선택합니다.
  6. 드롭다운 목록에서 1.*를 입력한 다음 **Create wildcard 1.***를 선택합니다.
  7. 커밋을 직접 푸시하는 대신 모든 사람이 머지 리퀘스트를 제출하도록 요구하려면:
    1. Allowed to merge 섹션에서 Edit를 선택하고 Maintainers로 설정한 다음 Save changes를 선택합니다.
    2. Allowed to push and merge 섹션에서 Edit를 선택하고 No one으로 설정한 다음 Save changes를 선택합니다.
    3. Allowed to force push는 비활성화된 상태로 둡니다.
  8. GitLab Premium 및 GitLab Ultimate에서 코드 소유자가 작업하는 파일에 대한 변경 사항을 검토하도록 요구하려면 Require approval from code owners를 토글합니다.
  9. 브랜치 테이블에서 Default로 표시된 규칙을 찾습니다. (GitLab 버전에 따라 이 브랜치는 main 또는 master로 명명될 수 있습니다.) 이 브랜치에 대한 값을 1.* 규칙에 사용한 설정과 일치하도록 설정합니다.

1.* 브랜치가 아직 없더라도 규칙이 이제 적용됩니다:

main과 1.x가 이제 보호됩니다

릴리스 브랜치 만들기#

모든 브랜치 보호가 적용되었으므로 이제 1.0.0 릴리스 브랜치를 만들 준비가 되었습니다:

  1. 상단 바에서 Search or go to를 선택하고 Excelsior를 검색합니다.
  2. Excelsior라는 프로젝트를 선택합니다.
  3. 왼쪽 사이드바에서 Code > Branches를 선택합니다.
  4. 오른쪽 상단에서 New branch를 선택합니다. 1.0.0으로 이름을 지정합니다.
  5. Create branch를 선택합니다.

브랜치 보호가 이제 UI에서 표시됩니다:

  • 왼쪽 사이드바에서 Code > Branches를 선택합니다. 브랜치 목록에서 브랜치 1.0.0이 보호됨을 표시해야 합니다:

    브랜치 목록, 1.0.0이 보호됨을 표시

  • 왼쪽 사이드바에서 Settings > Repository를 선택한 다음 Branch rules를 확장하여 모든 보호된 브랜치에 대한 세부 정보를 봅니다:

    보호된 브랜치 및 해당 보호 목록

축하합니다! 엔지니어들은 자신의 브랜치에서 독립적으로 작업할 수 있으며, 1.0.0 릴리스 브랜치 검토를 위해 제출된 모든 코드는 전문가가 검토합니다.