서브그룹

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab 그룹을 서브그룹으로 구성할 수 있습니다. 서브그룹을 사용하여:

  • 내부 및 외부 콘텐츠를 분리합니다. 각 서브그룹마다 가시성 수준이 다르기 때문에 동일한 상위 그룹 내에서 다양한 목적의 그룹을 호스팅할 수 있습니다.
  • 큰 프로젝트를 구성합니다. 서브그룹을 사용하여 소스 코드의 특정 부분에 액세스할 수 있는 사용자를 관리할 수 있습니다.
  • 권한을 관리합니다. 사용자에게 역할을 그룹마다 다르게 할당합니다.

서브그룹은 다음을 수행할 수 있습니다:

  • 하나의 즉시 부모 그룹에 속합니다.
  • 여러 서브그룹을 가질 수 있습니다.
  • 최대 20단계까지 중첩될 수 있습니다.
  • 부모 그룹에 등록된 러너(runner)를 사용합니다:
    • 부모 그룹에 구성된 시크릿은 서브그룹 작업에서 사용할 수 있습니다.
    • 서브그룹에 속한 프로젝트에서 최소한 Maintainer 역할을 가진 사용자는 부모 그룹에 등록된 러너의 세부 정보를 볼 수 있습니다.

예시:

graph TD subgraph "상위 그룹" subgraph "서브그룹 A" subgraph "서브그룹 A1" G["프로젝트 E"] end C["프로젝트 A"] D["프로젝트 B"] E["프로젝트 C"] end subgraph "서브그룹 B" F["프로젝트 D"] end end

그룹의 서브그룹 보기

필수 조건:

  • 비공개 중첩 서브그룹을 보려면 해당 비공개 서브그룹의 직접적이거나 상속된 멤버여야 합니다.

그룹의 서브그룹을 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 서브그룹 및 프로젝트 탭을 선택합니다.
  3. 보고 싶은 서브그룹을 선택합니다. 중첩된 서브그룹을 보려면 서브그룹을 확장합니다 ().

공개 상위 그룹의 비공개 서브그룹

계층 디렉터리에서 비공개 서브그룹이 있는 공개 그룹은 확장 옵션이 있습니다 (), 이것은 해당 그룹에 중첩된 서브그룹이 있음을 나타냅니다. 확장 옵션()은 모든 사용자에게 표시되지만 비공개 그룹은 해당 비공개 서브그룹의 직접적이거나 상속된 멤버인 사용자에게만 표시됩니다.

중첩된 서브그룹의 존재 정보를 비공개로 유지하려면 비공개 상위 그룹에만 비공개 서브그룹을 추가해야 합니다.

서브그룹 생성

필수 조건:

  • 그룹에 적어도 Maintainer 역할이 있어야 합니다.
  • 사용자 설정에서 관리자가 그룹 생성을 비활성화한 경우에도 그룹을 생성할 수 있는 역할을 가져야 합니다.
note
GitLab Pages의 서브그룹 웹사이트를 최상위 도메인 이름으로 호스팅할 수 없습니다. 예를 들어 subgroupname.example.io와 같이 사용할 수 없는 예약된 이름 디렉터리을 확인하세요.

서브그룹을 생성하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 서브그룹을 생성하려는 그룹을 찾습니다.
  2. 상위 그룹 개요 페이지에서 오른쪽 상단에서 새 서브그룹을 선택합니다.
  3. 필드에 정보를 입력합니다. 사용할 수 없는 예약된 이름 디렉터리을 확인합니다.
  4. 서브그룹 생성을 선택합니다.

서브그룹 생성 권한 변경

필수 조건:

  • 그룹에서 최소한 Maintainer 역할을 가지고 있어야 합니다.

그룹에서 누가 서브그룹을 생성할 수 있는지 변경하려면:

  • 그룹에서 Owner 역할을 가진 사용자로서:
    1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
    2. 설정 > 일반을 선택합니다.
    3. 권한 및 그룹 기능을 확장합니다.
    4. 서브그룹 생성 허용 역할에서 옵션을 선택합니다.
    5. 변경 사항 저장을 선택합니다.
  • 관리자로서:
    1. 왼쪽 사이드바에서 관리자 영역을 선택합니다.
    2. 왼쪽 사이드바에서 개요 > 그룹을 선택하고 그룹을 찾습니다.
    3. 그룹의 행에서 편집을 선택합니다.
    4. 서브그룹 생성 허용 대상 드롭다운 디렉터리에서 옵션을 선택합니다.
    5. 변경 사항 저장을 선택합니다.

자세한 정보는 권한 테이블을 확인하세요.

서브그룹 멤버십

그룹에 멤버를 추가하면 해당 멤버는 해당 그룹의 모든 서브그룹에 추가됩니다. 멤버의 권한은 해당 그룹에서 모든 서브그룹으로 상속됩니다.

서브그룹 멤버는 다음 중 하나일 수 있습니다:

  1. 서브그룹의 직접 멤버.
  2. 서브그룹의 상속된 멤버 (서브그룹의 상위 그룹에서 상속됨).
  3. 서브그룹의 최상위 그룹이 공유된 그룹의 멤버일 수도 있음.
flowchart RL subgraph 그룹 A A(직접 멤버) B{{공유된 멤버}} subgraph 서브그룹 A H(1. 직접 멤버) C{{2. 상속된 멤버}} D{{상속된 멤버}} E{{3. 공유된 멤버}} end A-->|그룹 A의 직접적 멤버십\n서브그룹 A의 상속된 멤버십|C end subgraph 그룹 C G(직접 멤버) end subgraph 그룹 B F(직접 멤버) end F-->|그룹 B의 공유\n그룹 A와 공유됨|B B-->|서브그룹 A의 상속된 멤버십|D G-->|그룹 C가 서브그룹 A와 공유됨|E

멤버의 그룹 권한은 다음 사용자에 의해서만 변경할 수 있습니다:

  • 그룹에서 Owner 역할을 가진 사용자.
  • 해당 그룹 구성의 변경.

멤버십 상속 결정

멤버가 상위 그룹에서 권한을 상속했는지 확인하려면 다음 단계를 따릅니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹을 찾습니다.
  2. 관리 > 멤버를 선택합니다. 멤버의 상속은 소스(Source) 열에 표시됩니다.

예를 들어, _Four_라는 하위 그룹의 멤버 디렉터리:

그룹 멤버 페이지

위 스크린샷에서:

  • 5명의 멤버가 그룹 _Four_에 액세스 권한을 갖고 있습니다.
  • 사용자 0은 그룹 _Four_에서 Reporter 역할을 하며 권한을 그룹 _One_에서 상속받았습니다:
    • 사용자 0은 그룹 _One_의 직접 멤버입니다.
    • 그룹 _One_은 그룹 _Four_보다 상위에 있습니다.
  • 사용자 1은 그룹 _Four_에서 Developer 역할을 하며 권한을 그룹 _Two_에서 상속받았습니다:
    • 사용자 1은 그룹 _Two_의 직접 멤버이며, 이 그룹은 그룹 _One_의 하위 그룹입니다.
    • 그룹 _One / Two_는 그룹 _Four_보다 상위에 있습니다.
  • 사용자 2는 그룹 _Four_에서 Developer 역할을 하며 권한을 그룹 _Three_에서 상속받았습니다:
    • 사용자 2는 그룹 _Three_의 직접 멤버이며, 이 그룹은 그룹 _Two_의 하위 그룹입니다. 그룹 _Two_는 그룹 _One_의 하위 그룹입니다.
    • 그룹 _One / Two / Three_는 그룹 _Four_보다 상위에 있습니다.
  • 사용자 3은 그룹 _Four_의 직접 멤버입니다. 이는 그들이 Maintainer 역할을 그룹 _Four_에서 직접 받는다는 것을 의미합니다.
  • 관리자는 그룹 _Four_에서 Owner 역할을 가지며 모든 하위 그룹의 멤버입니다. 따라서 사용자 3과 마찬가지로 소스(Source) 열에서 그들이 직접 멤버임을 나타냅니다.

멤버는 상속된 또는 직접적인 멤버십으로 필터링될 수 있습니다.

상위 그룹 멤버십 재정의

하위 그룹에서 Owner 역할을 하는 사용자는 해당 그룹에 멤버를 추가할 수 있습니다.

사용자에게 부모 그룹에서의 역할보다 낮은 역할을 부여할 수는 없습니다. 사용자의 부모 그룹에서의 역할을 재정의하려면 사용자를 더 높은 역할을 가진 하위 그룹에 다시 추가하세요. 예를 들면:

  • 사용자 1이 Developer 역할로 그룹 _Two_에 추가되면, 사용자 1은 그룹 _Two_의 모든 하위 그룹에서 그 역할을 상속받습니다.
  • 사용자 1에게 Maintainer 역할을 주려면 (하위 그룹인 One / Two / Three_에 있는)_Four 그룹에 사용자 1을 Maintainer 역할로 다시 추가하세요.
  • 사용자 1이 그룹 _Four_에서 제거된다면, 사용자의 역할은 그룹 _Two_의 역할로 다시 바뀝니다. 사용자 1은 다시 그룹 _Four_에서 Developer 역할을 가지게 됩니다.

하위 그룹 언급

하위 그룹을 언급(@<subgroup_name>)하면 에픽, 이슈, 커밋 및 Merge Request에서 해당 그룹의 직접 멤버에게 알림이 전송됩니다. 하위 그룹의 상속된 멤버들은 언급으로 알림을 받지 않습니다. 언급은 프로젝트와 그룹에 대한 것과 같이 작동하며, 알림을 받을 멤버 그룹을 선택할 수 있습니다.