InfoGrab Docs

프로젝트 및 그룹 공유

요약

초대를 통해 다음을 공유할 수 있습니다: 그룹에 프로젝트에 대한 접근 권한을 부여하려면 프로젝트에 그룹을 초대할 수 있습니다. 이 경우 상속된 구성원이란 초대된 그룹의 상위 그룹에서 해당 그룹으로 상속된 구성원입니다. 다음 표는 공유 프로젝트에 접근할 수 있는 그룹 구성원에 대한 개요를 제공합니다.

히스토리
  • 변경됨: GitLab 16.10에서 webui_members_inherited_users라는 플래그와 함께 구성원 페이지의 구성원 탭에 초대된 그룹 구성원이 표시되도록 변경. 기본적으로 비활성화.
  • GitLab 17.0에서 기능 플래그 webui_members_inherited_usersGitLab.com 및 GitLab Self-Managed에서 활성화됨.
  • GitLab 17.4에서 기능 플래그 webui_members_inherited_users제거됨. 초대된 그룹의 구성원이 기본적으로 표시됨.
  • GitLab 18.0에서 그룹 초대는 Owner로 제한됨.

초대를 통해 다음을 공유할 수 있습니다:

  • 프로젝트를 그룹과 공유.
  • 그룹을 다른 그룹과 공유.

프로젝트 공유#

그룹에 프로젝트에 대한 접근 권한을 부여하려면 프로젝트에 그룹을 초대할 수 있습니다. 그룹의 직접 구성원과 상속된 구성원이 프로젝트에 접근할 수 있게 되며, 해당 프로젝트는 공유 프로젝트가 됩니다.

이 경우 상속된 구성원이란 초대된 그룹의 상위 그룹에서 해당 그룹으로 상속된 구성원입니다. 초대된 그룹의 구성원만 공유 프로젝트에 접근할 수 있습니다. 초대하는 그룹의 하위 그룹 구성원에게 프로젝트 접근 권한을 부여하려면 해당 하위 그룹을 별도로 초대해야 합니다.

다음 표는 공유 프로젝트에 접근할 수 있는 그룹 구성원에 대한 개요를 제공합니다.

그룹 구성원 출처 공유 프로젝트 접근
초대된 그룹의 직접 구성원
초대된 그룹의 상속된 구성원
초대된 그룹의 공유 구성원 1
하위 그룹의 직접 구성원이지만 초대된 그룹의 구성원은 아닌 경우
하위 그룹의 상속된 구성원이지만 초대된 그룹의 구성원은 아닌 경우

각주:

  1. GitLab은 공유 그룹 구성원에게 프로젝트 접근 권한을 확장하는 것을 지원하지만, 이 방식은 권장되지 않습니다. 에픽 122에서 이 동작을 변경하고 그룹 공유를 위한 팀 모델로 전환하는 것을 제안하고 있습니다.

초대하는 그룹의 가시성 수준은 프로젝트보다 더 제한적일 수 없습니다. 예를 들어, 다음과 같이 초대할 수 있습니다:

  • private 그룹을 private 프로젝트에.
  • private 그룹을 internal 프로젝트에.
  • private 그룹을 public 프로젝트에.
  • internal 그룹을 internal 프로젝트에.
  • internal 그룹을 public 프로젝트에.
  • public 그룹을 public 프로젝트에.

프로젝트의 최상위 그룹이 프로젝트를 계층 구조 외부와 공유하는 것을 허용하지 않는 경우, 초대된 그룹 또는 하위 그룹은 프로젝트의 네임스페이스 내에 있어야 합니다.

구성원 접근 및 역할#

그룹을 프로젝트에 초대하면 다음 구성원이 프로젝트에 접근할 수 있습니다:

각 구성원의 접근은 다음에 따라 달라집니다:

  • 그룹 내 역할.
  • 그룹을 초대할 때 선택하는 최대 역할.

초대된 구성원은 이 두 역할 중 낮은 역할을 유지합니다. 예를 들어, 구성원이 그룹에서 Guest 역할을 가지고 있고 최대 역할 Maintainer로 그룹을 프로젝트에 추가한 경우, 해당 구성원은 프로젝트에서 Guest 역할을 유지합니다.

또한:

  • 그룹 페이지에서 프로젝트는 공유된 프로젝트 탭에 나열됩니다.
  • 프로젝트의 구성원 페이지에서 그룹은 그룹 탭에 나열됩니다. 이 목록에는 공개 및 비공개 그룹이 모두 포함됩니다.
  • 프로젝트의 구성원 페이지에서 초대된 그룹의 구성원은 구성원 탭에 나열됩니다.
  • 사용량 할당량 페이지에서 프로필 옆에 Project Invite 배지가 있는 구성원은 공유 프로젝트의 최상위 그룹의 청구 가능 구성원에 포함됩니다.

GitLab 16.11 이상에서는 초대된 그룹의 이름과 멤버십 출처가 구성원그룹 탭에서 마스킹됩니다. 단, 다음 중 하나가 해당되는 경우는 예외입니다:

  • 초대된 그룹이 공개 그룹인 경우.
  • 현재 사용자가 초대된 그룹의 구성원인 경우.
  • 현재 사용자가 프로젝트의 Owner인 경우.
Note

초대된 그룹에 접근 권한이 없는 구성원에게는 초대된 그룹의 이름과 멤버십 출처가 마스킹됩니다. 프로젝트 Owner는 프로젝트에 대한 접근을 관리하는 데 도움을 주기 위해 초대된 그룹의 멤버십 세부 정보를 볼 수 있습니다.

예시#

group/subgroup01/project 네임스페이스의 프로젝트:

  • group/subgroup02 또는 group/subgroup01/subgroup03과 공유할 수 있습니다.
  • 프로젝트의 최상위 그룹이 계층 구조 외부와의 공유를 허용하지 않는 경우를 제외하고 group_abc와 공유할 수 있습니다.

Group 1이 생성한 프로젝트의 경우:

  • Group 1의 구성원이 프로젝트에 접근할 수 있습니다.
  • Group 1의 Owner는 프로젝트에 Group 2를 초대할 수 있습니다. 이렇게 하면 Group 1Group 2의 구성원 모두 공유 프로젝트에 접근할 수 있습니다.

프로젝트에 그룹 초대#

히스토리
  • 변경됨: GitLab 16.10에서 webui_members_inherited_users라는 플래그와 함께 구성원 페이지의 구성원 탭에 초대된 그룹 구성원이 표시되도록 변경. 기본적으로 비활성화.
  • GitLab 17.0에서 기능 플래그 webui_members_inherited_usersGitLab.com 및 GitLab Self-Managed에서 활성화됨.
  • GitLab 17.4에서 하위 그룹 및 프로젝트의 직접 구성원에 대한 접근 만료일이 제거되고, 기능 플래그 webui_members_inherited_users제거됨.

전제 조건:

  • 프로젝트에 대한 Owner 역할이 있어야 합니다.
  • 다른 그룹과 프로젝트를 공유하는 것이 금지되지 않아야 합니다.
  • 초대된 그룹 또는 하위 그룹의 구성원이어야 합니다.

프로젝트에 그룹을 초대하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

  3. Invite a group을 선택합니다.

  4. Select a group to invite 목록에서 초대할 그룹을 선택합니다.

  5. Select maximum role 목록에서 초대된 그룹 구성원이 프로젝트에서 가질 수 있는 역할을 선택합니다. 초대된 구성원은 다음 중 낮은 역할을 받습니다:

    • 선택한 최대 역할
    • 그룹 내 기존 역할

    초대된 그룹 구성원은 그룹에서의 역할보다 프로젝트에서 더 높은 역할을 가질 수 없습니다. 자세한 내용은 구성원 접근 및 역할을 참조하세요.

  6. 선택 사항. Access expiration date를 선택합니다. 해당 날짜 이후에는 초대된 그룹이 더 이상 프로젝트에 접근할 수 없습니다.

  7. Invite를 선택합니다.

초대된 그룹은 그룹 탭에 표시됩니다. REST API를 사용하여 프로젝트에 초대된 그룹 목록을 조회할 수도 있습니다.

비공개 그룹은:

  • 권한이 없는 사용자에게 마스킹됩니다.
  • 보호된 브랜치, 보호된 태그, 보호된 환경에 대한 프로젝트 설정에 표시됩니다.

구성원 탭에 표시되는 항목:

  • 프로젝트에 직접 추가된 구성원.
  • 프로젝트가 추가된 그룹 네임스페이스의 상속된 구성원.

webui_members_inherited_users 기능 플래그가 활성화되어 있지 않으면 초대된 그룹의 구성원은 구성원 탭에 표시되지 않습니다.

예시#

project-01이라는 이름의 프로젝트에는 다음 직접 구성원이 있습니다:

  • User A, Owner
  • User B, Maintainer

group-01이라는 이름의 그룹에는 다음 직접 구성원이 있습니다:

  • User C, Owner
  • User D, Maintainer
  • User E, Reporter

group-01Developer 권한으로 project-01에 초대되면 사용자의 역할은 다음과 같습니다:

  • User A, Owner
  • User B, Maintainer
  • User C, Developer
  • User D, Developer
  • User E, Reporter

group-01Owner 권한으로 project-01에 초대되면 사용자의 역할은 다음과 같습니다:

  • User A, Owner
  • User B, Maintainer
  • User C, Owner
  • User D, Maintainer
  • User E, Reporter

공유된 프로젝트 보기#

공유 프로젝트는 그룹 초대 작업을 통해 그룹 구성원을 초대하여 리소스에 접근할 수 있도록 한 프로젝트입니다.

그룹과 공유 접근 권한이 있는 프로젝트를 보려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 그룹 페이지에서 Shared projects 탭을 선택합니다.

공유된 프로젝트 목록이 표시됩니다. REST API를 사용하여 그룹의 공유된 프로젝트 목록을 조회할 수도 있습니다.

프로젝트가 그룹과 공유되지 않도록 방지#

프로젝트를 다른 그룹과 공유하면 프로젝트에 더 많은 구성원을 초대할 수 있는 사용자 수가 늘어납니다. 각 (하위)그룹은 추가적인 접근 권한 출처가 될 수 있으며, 이는 혼란스럽고 제어하기 어려울 수 있습니다.

프로젝트가 다른 그룹과 공유되지 않도록 방지하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > General을 선택합니다.
  3. Permissions and group features 섹션을 펼칩니다.
  4. Projects in <group_name> cannot be shared with other groups를 선택합니다.
  5. Save changes를 선택합니다.

이 설정이 활성화되면:

  • 그룹 Owner가 재정의하지 않는 한 모든 하위 그룹에 적용됩니다.
  • 프로젝트에 이미 추가된 그룹은 접근 권한을 잃게 됩니다.

이 설정이 비활성화되면:

  • 이 그룹에만 적용되며, 하위 그룹에는 적용되지 않습니다.
  • 모든 하위 그룹에 대해 이 설정을 비활성화하려면 각 하위 그룹을 개별적으로 업데이트해야 합니다.

그룹 공유#

다른 그룹의 구성원이 그룹에 접근할 수 있도록 하려면 그룹에 그룹을 초대할 수 있습니다. 그룹의 직접 구성원이 그룹에 접근할 수 있게 되며, 해당 그룹은 공유 그룹이 됩니다.

초대된 그룹의 직접 구성원만 공유 그룹에 접근할 수 있으며, 상속된 구성원, 공유 구성원 또는 하위 그룹 구성원은 접근할 수 없습니다. 하위 그룹 구성원에게 접근 권한을 부여하려면 해당 하위 그룹을 직접 초대하세요.

다음 표는 공유 그룹에 접근할 수 있는 그룹 구성원에 대한 개요를 제공합니다:

그룹 구성원 출처 공유 그룹 접근
초대된 그룹의 직접 구성원
초대된 그룹의 상속된 구성원
초대된 그룹의 공유 구성원
하위 그룹의 구성원이지만 초대된 그룹의 구성원은 아닌 경우

구성원 접근 및 역할#

각 구성원의 접근은 다음에 따라 달라집니다:

  • 초대된 그룹 내 역할.
  • 그룹을 초대할 때 선택하는 최대 역할.

초대된 구성원은 이 두 역할 중 낮은 역할을 유지합니다. 예를 들어, 구성원이 그룹에서 Guest 역할을 가지고 있고 최대 역할 Maintainer로 해당 그룹을 다른 그룹에 초대한 경우, 해당 구성원은 새 그룹에서 Guest 역할을 유지합니다.

그룹에 그룹을 초대한 후:

  • 그룹 개요 페이지에서 이 그룹이 공유된 그룹이 공유 그룹 탭에 나열됩니다.
  • 그룹의 구성원 페이지에서 초대된 그룹은 그룹 탭에 나열됩니다. 이 목록에는 공개 및 비공개 그룹이 모두 포함됩니다.
  • 그룹의 구성원 페이지에서 초대된 그룹의 구성원은 구성원 탭에 나열됩니다.
  • 그룹 사용량 할당량 페이지에서 프로필 옆에 Group Invite 배지가 있는 초대된 그룹의 직접 구성원은 초대한 그룹의 청구 가능 구성원에 포함됩니다.

GitLab 16.11 이상에서는 초대된 그룹의 이름과 멤버십 출처가 구성원그룹 탭에서 마스킹됩니다. 단, 다음 중 하나가 해당되는 경우는 예외입니다:

  • 초대된 그룹이 공개 그룹인 경우.
  • 현재 사용자가 초대된 그룹의 구성원인 경우.
  • 현재 사용자가 프로젝트의 Owner인 경우.
Note

초대된 그룹에 접근 권한이 없는 구성원에게는 초대된 그룹의 이름과 멤버십 출처가 마스킹됩니다. 그러나 그룹 Owner가 비공개 초대된 그룹에 접근할 수 없는 경우에도 비공개 초대된 그룹 구성원의 출처를 볼 수 있습니다. 이 동작은 그룹 Owner가 자신이 소유한 그룹의 멤버십을 더 잘 관리할 수 있도록 돕기 위한 것입니다.

예시#

User AGroup 1의 직접 구성원이며 해당 그룹에서 Maintainer 역할을 가지고 있습니다. Group 2Group 1을 Developer 역할로 초대합니다. User AGroup 2에서 Developer 역할을 가집니다.

User BGroup 1의 상속된 구성원입니다. Group 1이 초대될 때 이 사용자는 Group 2에 접근할 수 없습니다.

그룹에 그룹 초대#

히스토리
  • GitLab 17.4에서 하위 그룹 및 프로젝트의 직접 구성원에 대한 접근 만료일이 제거됨.

프로젝트에 그룹을 초대하는 것과 유사하게, 그룹을 다른 그룹에 초대할 수 있습니다.

전제 조건:

  • 다른 사용자를 초대하려는 그룹에 대한 Owner 역할이 있어야 합니다.
  • 초대하려는 그룹에 접근할 수 있어야 합니다.

그룹에 그룹을 초대하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.

  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

  3. Invite a group을 선택합니다.

  4. Select a group to invite 목록에서 초대할 그룹을 선택합니다.

  5. Select maximum role 목록에서 초대된 그룹 구성원이 그룹에서 가질 수 있는 역할을 선택합니다. 초대된 구성원은 다음 중 낮은 역할을 받습니다:

    • 선택한 최대 역할
    • 초대된 그룹 내 기존 역할

    초대된 구성원은 초대된 그룹에서의 역할보다 더 높은 역할을 가질 수 없습니다. 자세한 내용은 구성원 접근 및 역할을 참조하세요.

  6. 그룹 사용자의 최고 역할 또는 사용자 정의 역할을 선택합니다.

  7. 선택 사항. Access expiration date를 선택합니다. 해당 날짜 이후에는 초대된 그룹이 더 이상 그룹에 접근할 수 없습니다.

  8. Invite를 선택합니다.

초대된 그룹 제거#

초대된 그룹을 제거하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.
  3. 그룹 탭을 선택합니다.
  4. 제거하려는 그룹 오른쪽에서 Remove group ([remove])을 선택합니다.

그룹에서 초대된 그룹을 제거하면:

  • 초대된 그룹의 모든 직접 구성원이 더 이상 그룹에 접근할 수 없습니다.
  • 초대된 그룹의 구성원은 더 이상 그룹의 청구 가능 구성원에 포함되지 않습니다.

공유된 그룹 보기#

공유 그룹은 그룹 초대 작업을 통해 그룹 구성원을 초대하여 리소스에 접근할 수 있도록 한 그룹입니다.

그룹과 공유 접근 권한이 있는 그룹을 보려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 그룹 페이지에서 Shared groups 탭을 선택합니다.

공유된 그룹 목록이 표시됩니다. REST API를 사용하여 그룹의 공유된 그룹 목록을 조회할 수도 있습니다.

그룹 계층 구조 외부의 그룹 초대 방지#

최상위 그룹의 하위 그룹과 프로젝트가 최상위 그룹의 계층 구조 외부에 있는 다른 그룹을 초대할 수 없도록 최상위 그룹을 구성할 수 있습니다. 이 옵션은 최상위 그룹에서만 사용할 수 있습니다.

예를 들어 다음과 같은 그룹 및 프로젝트 계층 구조에서:

  • Animals > Dogs > Dog Project
  • Animals > Cats
  • Plants > Trees

Animals 그룹에 대해 계층 구조 외부의 그룹 초대를 방지하면:

  • DogsCats 그룹을 초대할 수 있습니다.
  • DogsTrees 그룹을 초대할 수 없습니다.
  • Dog ProjectCats 그룹을 초대할 수 있습니다.
  • Dog ProjectTrees 그룹을 초대할 수 없습니다.

그룹의 계층 구조 외부의 그룹 초대를 방지하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > General을 선택합니다.
  3. Permissions and group features를 펼칩니다.
  4. Members cannot invite groups outside of <group_name> and its subgroups를 선택합니다.
  5. Save changes를 선택합니다.

협업을 위한 그룹 설정#

그룹의 프로젝트에서 외부 사용자와 협업하려는 경우 다음 모범 사례를 고려하세요:

  • 조직 필요에 따라 그룹과 하위 그룹을 논리적으로 구성하세요. 불필요한 그룹 생성을 피하세요.
  • 관리해야 할 사용자가 많은 경우 프로젝트를 구성하는 그룹과 별도의 그룹에 사용자를 구성하는 것을 고려하세요. 이러한 사용자 그룹을 접근 권한이 필요한 그룹 및 프로젝트에 공유하세요.
  • 프로젝트에 초대하는 그룹을 신중하게 고려하세요. 과도한 공유를 방지하고 보안을 유지하기 위해 접근이 필요한 그룹만 초대하세요.
  • 그룹을 초대할 때:
    • 최대 역할을 적절하게 설정하세요. 최고 역할을 기본으로 설정하는 대신 필요한 최소 권한을 할당하는 것이 좋습니다.
    • 초대된 그룹의 하위 그룹 구성원은 프로젝트에 접근할 수 없습니다. 대신 하위 그룹을 별도로 초대하는 것을 선호할 수 있습니다.
  • 프로젝트에 접근 권한이 있는 여러 그룹에 속한 사용자의 최대 역할을 확인하세요. 의도치 않은 높은 권한을 방지하기 위해 사용자의 역할을 변경할 수 있습니다.
  • 공유 프로젝트에 대한 그룹 접근을 정기적으로 검토하고 적절하게 업데이트하세요. 그룹이 더 이상 프로젝트에 접근할 필요가 없으면 제거하세요.

프로젝트 및 그룹 공유

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

초대를 통해 다음을 공유할 수 있습니다: 그룹에 프로젝트에 대한 접근 권한을 부여하려면 프로젝트에 그룹을 초대할 수 있습니다. 이 경우 상속된 구성원이란 초대된 그룹의 상위 그룹에서 해당 그룹으로 상속된 구성원입니다. 다음 표는 공유 프로젝트에 접근할 수 있는 그룹 구성원에 대한 개요를 제공합니다.

히스토리
  • 변경됨: GitLab 16.10에서 webui_members_inherited_users라는 플래그와 함께 구성원 페이지의 구성원 탭에 초대된 그룹 구성원이 표시되도록 변경. 기본적으로 비활성화.
  • GitLab 17.0에서 기능 플래그 webui_members_inherited_usersGitLab.com 및 GitLab Self-Managed에서 활성화됨.
  • GitLab 17.4에서 기능 플래그 webui_members_inherited_users제거됨. 초대된 그룹의 구성원이 기본적으로 표시됨.
  • GitLab 18.0에서 그룹 초대는 Owner로 제한됨.

초대를 통해 다음을 공유할 수 있습니다:

  • 프로젝트를 그룹과 공유.
  • 그룹을 다른 그룹과 공유.

프로젝트 공유#

그룹에 프로젝트에 대한 접근 권한을 부여하려면 프로젝트에 그룹을 초대할 수 있습니다. 그룹의 직접 구성원과 상속된 구성원이 프로젝트에 접근할 수 있게 되며, 해당 프로젝트는 공유 프로젝트가 됩니다.

이 경우 상속된 구성원이란 초대된 그룹의 상위 그룹에서 해당 그룹으로 상속된 구성원입니다. 초대된 그룹의 구성원만 공유 프로젝트에 접근할 수 있습니다. 초대하는 그룹의 하위 그룹 구성원에게 프로젝트 접근 권한을 부여하려면 해당 하위 그룹을 별도로 초대해야 합니다.

다음 표는 공유 프로젝트에 접근할 수 있는 그룹 구성원에 대한 개요를 제공합니다.

그룹 구성원 출처 공유 프로젝트 접근
초대된 그룹의 직접 구성원
초대된 그룹의 상속된 구성원
초대된 그룹의 공유 구성원 1
하위 그룹의 직접 구성원이지만 초대된 그룹의 구성원은 아닌 경우
하위 그룹의 상속된 구성원이지만 초대된 그룹의 구성원은 아닌 경우

각주:

  1. GitLab은 공유 그룹 구성원에게 프로젝트 접근 권한을 확장하는 것을 지원하지만, 이 방식은 권장되지 않습니다. 에픽 122에서 이 동작을 변경하고 그룹 공유를 위한 팀 모델로 전환하는 것을 제안하고 있습니다.

초대하는 그룹의 가시성 수준은 프로젝트보다 더 제한적일 수 없습니다. 예를 들어, 다음과 같이 초대할 수 있습니다:

  • private 그룹을 private 프로젝트에.
  • private 그룹을 internal 프로젝트에.
  • private 그룹을 public 프로젝트에.
  • internal 그룹을 internal 프로젝트에.
  • internal 그룹을 public 프로젝트에.
  • public 그룹을 public 프로젝트에.

프로젝트의 최상위 그룹이 프로젝트를 계층 구조 외부와 공유하는 것을 허용하지 않는 경우, 초대된 그룹 또는 하위 그룹은 프로젝트의 네임스페이스 내에 있어야 합니다.

구성원 접근 및 역할#

그룹을 프로젝트에 초대하면 다음 구성원이 프로젝트에 접근할 수 있습니다:

각 구성원의 접근은 다음에 따라 달라집니다:

  • 그룹 내 역할.
  • 그룹을 초대할 때 선택하는 최대 역할.

초대된 구성원은 이 두 역할 중 낮은 역할을 유지합니다. 예를 들어, 구성원이 그룹에서 Guest 역할을 가지고 있고 최대 역할 Maintainer로 그룹을 프로젝트에 추가한 경우, 해당 구성원은 프로젝트에서 Guest 역할을 유지합니다.

또한:

  • 그룹 페이지에서 프로젝트는 공유된 프로젝트 탭에 나열됩니다.
  • 프로젝트의 구성원 페이지에서 그룹은 그룹 탭에 나열됩니다. 이 목록에는 공개 및 비공개 그룹이 모두 포함됩니다.
  • 프로젝트의 구성원 페이지에서 초대된 그룹의 구성원은 구성원 탭에 나열됩니다.
  • 사용량 할당량 페이지에서 프로필 옆에 Project Invite 배지가 있는 구성원은 공유 프로젝트의 최상위 그룹의 청구 가능 구성원에 포함됩니다.

GitLab 16.11 이상에서는 초대된 그룹의 이름과 멤버십 출처가 구성원그룹 탭에서 마스킹됩니다. 단, 다음 중 하나가 해당되는 경우는 예외입니다:

  • 초대된 그룹이 공개 그룹인 경우.
  • 현재 사용자가 초대된 그룹의 구성원인 경우.
  • 현재 사용자가 프로젝트의 Owner인 경우.
Note

초대된 그룹에 접근 권한이 없는 구성원에게는 초대된 그룹의 이름과 멤버십 출처가 마스킹됩니다. 프로젝트 Owner는 프로젝트에 대한 접근을 관리하는 데 도움을 주기 위해 초대된 그룹의 멤버십 세부 정보를 볼 수 있습니다.

예시#

group/subgroup01/project 네임스페이스의 프로젝트:

  • group/subgroup02 또는 group/subgroup01/subgroup03과 공유할 수 있습니다.
  • 프로젝트의 최상위 그룹이 계층 구조 외부와의 공유를 허용하지 않는 경우를 제외하고 group_abc와 공유할 수 있습니다.

Group 1이 생성한 프로젝트의 경우:

  • Group 1의 구성원이 프로젝트에 접근할 수 있습니다.
  • Group 1의 Owner는 프로젝트에 Group 2를 초대할 수 있습니다. 이렇게 하면 Group 1Group 2의 구성원 모두 공유 프로젝트에 접근할 수 있습니다.

프로젝트에 그룹 초대#

히스토리
  • 변경됨: GitLab 16.10에서 webui_members_inherited_users라는 플래그와 함께 구성원 페이지의 구성원 탭에 초대된 그룹 구성원이 표시되도록 변경. 기본적으로 비활성화.
  • GitLab 17.0에서 기능 플래그 webui_members_inherited_usersGitLab.com 및 GitLab Self-Managed에서 활성화됨.
  • GitLab 17.4에서 하위 그룹 및 프로젝트의 직접 구성원에 대한 접근 만료일이 제거되고, 기능 플래그 webui_members_inherited_users제거됨.

전제 조건:

  • 프로젝트에 대한 Owner 역할이 있어야 합니다.
  • 다른 그룹과 프로젝트를 공유하는 것이 금지되지 않아야 합니다.
  • 초대된 그룹 또는 하위 그룹의 구성원이어야 합니다.

프로젝트에 그룹을 초대하려면:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

  3. Invite a group을 선택합니다.

  4. Select a group to invite 목록에서 초대할 그룹을 선택합니다.

  5. Select maximum role 목록에서 초대된 그룹 구성원이 프로젝트에서 가질 수 있는 역할을 선택합니다. 초대된 구성원은 다음 중 낮은 역할을 받습니다:

    • 선택한 최대 역할
    • 그룹 내 기존 역할

    초대된 그룹 구성원은 그룹에서의 역할보다 프로젝트에서 더 높은 역할을 가질 수 없습니다. 자세한 내용은 구성원 접근 및 역할을 참조하세요.

  6. 선택 사항. Access expiration date를 선택합니다. 해당 날짜 이후에는 초대된 그룹이 더 이상 프로젝트에 접근할 수 없습니다.

  7. Invite를 선택합니다.

초대된 그룹은 그룹 탭에 표시됩니다. REST API를 사용하여 프로젝트에 초대된 그룹 목록을 조회할 수도 있습니다.

비공개 그룹은:

  • 권한이 없는 사용자에게 마스킹됩니다.
  • 보호된 브랜치, 보호된 태그, 보호된 환경에 대한 프로젝트 설정에 표시됩니다.

구성원 탭에 표시되는 항목:

  • 프로젝트에 직접 추가된 구성원.
  • 프로젝트가 추가된 그룹 네임스페이스의 상속된 구성원.

webui_members_inherited_users 기능 플래그가 활성화되어 있지 않으면 초대된 그룹의 구성원은 구성원 탭에 표시되지 않습니다.

예시#

project-01이라는 이름의 프로젝트에는 다음 직접 구성원이 있습니다:

  • User A, Owner
  • User B, Maintainer

group-01이라는 이름의 그룹에는 다음 직접 구성원이 있습니다:

  • User C, Owner
  • User D, Maintainer
  • User E, Reporter

group-01Developer 권한으로 project-01에 초대되면 사용자의 역할은 다음과 같습니다:

  • User A, Owner
  • User B, Maintainer
  • User C, Developer
  • User D, Developer
  • User E, Reporter

group-01Owner 권한으로 project-01에 초대되면 사용자의 역할은 다음과 같습니다:

  • User A, Owner
  • User B, Maintainer
  • User C, Owner
  • User D, Maintainer
  • User E, Reporter

공유된 프로젝트 보기#

공유 프로젝트는 그룹 초대 작업을 통해 그룹 구성원을 초대하여 리소스에 접근할 수 있도록 한 프로젝트입니다.

그룹과 공유 접근 권한이 있는 프로젝트를 보려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 그룹 페이지에서 Shared projects 탭을 선택합니다.

공유된 프로젝트 목록이 표시됩니다. REST API를 사용하여 그룹의 공유된 프로젝트 목록을 조회할 수도 있습니다.

프로젝트가 그룹과 공유되지 않도록 방지#

프로젝트를 다른 그룹과 공유하면 프로젝트에 더 많은 구성원을 초대할 수 있는 사용자 수가 늘어납니다. 각 (하위)그룹은 추가적인 접근 권한 출처가 될 수 있으며, 이는 혼란스럽고 제어하기 어려울 수 있습니다.

프로젝트가 다른 그룹과 공유되지 않도록 방지하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > General을 선택합니다.
  3. Permissions and group features 섹션을 펼칩니다.
  4. Projects in <group_name> cannot be shared with other groups를 선택합니다.
  5. Save changes를 선택합니다.

이 설정이 활성화되면:

  • 그룹 Owner가 재정의하지 않는 한 모든 하위 그룹에 적용됩니다.
  • 프로젝트에 이미 추가된 그룹은 접근 권한을 잃게 됩니다.

이 설정이 비활성화되면:

  • 이 그룹에만 적용되며, 하위 그룹에는 적용되지 않습니다.
  • 모든 하위 그룹에 대해 이 설정을 비활성화하려면 각 하위 그룹을 개별적으로 업데이트해야 합니다.

그룹 공유#

다른 그룹의 구성원이 그룹에 접근할 수 있도록 하려면 그룹에 그룹을 초대할 수 있습니다. 그룹의 직접 구성원이 그룹에 접근할 수 있게 되며, 해당 그룹은 공유 그룹이 됩니다.

초대된 그룹의 직접 구성원만 공유 그룹에 접근할 수 있으며, 상속된 구성원, 공유 구성원 또는 하위 그룹 구성원은 접근할 수 없습니다. 하위 그룹 구성원에게 접근 권한을 부여하려면 해당 하위 그룹을 직접 초대하세요.

다음 표는 공유 그룹에 접근할 수 있는 그룹 구성원에 대한 개요를 제공합니다:

그룹 구성원 출처 공유 그룹 접근
초대된 그룹의 직접 구성원
초대된 그룹의 상속된 구성원
초대된 그룹의 공유 구성원
하위 그룹의 구성원이지만 초대된 그룹의 구성원은 아닌 경우

구성원 접근 및 역할#

각 구성원의 접근은 다음에 따라 달라집니다:

  • 초대된 그룹 내 역할.
  • 그룹을 초대할 때 선택하는 최대 역할.

초대된 구성원은 이 두 역할 중 낮은 역할을 유지합니다. 예를 들어, 구성원이 그룹에서 Guest 역할을 가지고 있고 최대 역할 Maintainer로 해당 그룹을 다른 그룹에 초대한 경우, 해당 구성원은 새 그룹에서 Guest 역할을 유지합니다.

그룹에 그룹을 초대한 후:

  • 그룹 개요 페이지에서 이 그룹이 공유된 그룹이 공유 그룹 탭에 나열됩니다.
  • 그룹의 구성원 페이지에서 초대된 그룹은 그룹 탭에 나열됩니다. 이 목록에는 공개 및 비공개 그룹이 모두 포함됩니다.
  • 그룹의 구성원 페이지에서 초대된 그룹의 구성원은 구성원 탭에 나열됩니다.
  • 그룹 사용량 할당량 페이지에서 프로필 옆에 Group Invite 배지가 있는 초대된 그룹의 직접 구성원은 초대한 그룹의 청구 가능 구성원에 포함됩니다.

GitLab 16.11 이상에서는 초대된 그룹의 이름과 멤버십 출처가 구성원그룹 탭에서 마스킹됩니다. 단, 다음 중 하나가 해당되는 경우는 예외입니다:

  • 초대된 그룹이 공개 그룹인 경우.
  • 현재 사용자가 초대된 그룹의 구성원인 경우.
  • 현재 사용자가 프로젝트의 Owner인 경우.
Note

초대된 그룹에 접근 권한이 없는 구성원에게는 초대된 그룹의 이름과 멤버십 출처가 마스킹됩니다. 그러나 그룹 Owner가 비공개 초대된 그룹에 접근할 수 없는 경우에도 비공개 초대된 그룹 구성원의 출처를 볼 수 있습니다. 이 동작은 그룹 Owner가 자신이 소유한 그룹의 멤버십을 더 잘 관리할 수 있도록 돕기 위한 것입니다.

예시#

User AGroup 1의 직접 구성원이며 해당 그룹에서 Maintainer 역할을 가지고 있습니다. Group 2Group 1을 Developer 역할로 초대합니다. User AGroup 2에서 Developer 역할을 가집니다.

User BGroup 1의 상속된 구성원입니다. Group 1이 초대될 때 이 사용자는 Group 2에 접근할 수 없습니다.

그룹에 그룹 초대#

히스토리
  • GitLab 17.4에서 하위 그룹 및 프로젝트의 직접 구성원에 대한 접근 만료일이 제거됨.

프로젝트에 그룹을 초대하는 것과 유사하게, 그룹을 다른 그룹에 초대할 수 있습니다.

전제 조건:

  • 다른 사용자를 초대하려는 그룹에 대한 Owner 역할이 있어야 합니다.
  • 초대하려는 그룹에 접근할 수 있어야 합니다.

그룹에 그룹을 초대하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.

  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

  3. Invite a group을 선택합니다.

  4. Select a group to invite 목록에서 초대할 그룹을 선택합니다.

  5. Select maximum role 목록에서 초대된 그룹 구성원이 그룹에서 가질 수 있는 역할을 선택합니다. 초대된 구성원은 다음 중 낮은 역할을 받습니다:

    • 선택한 최대 역할
    • 초대된 그룹 내 기존 역할

    초대된 구성원은 초대된 그룹에서의 역할보다 더 높은 역할을 가질 수 없습니다. 자세한 내용은 구성원 접근 및 역할을 참조하세요.

  6. 그룹 사용자의 최고 역할 또는 사용자 정의 역할을 선택합니다.

  7. 선택 사항. Access expiration date를 선택합니다. 해당 날짜 이후에는 초대된 그룹이 더 이상 그룹에 접근할 수 없습니다.

  8. Invite를 선택합니다.

초대된 그룹 제거#

초대된 그룹을 제거하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.
  3. 그룹 탭을 선택합니다.
  4. 제거하려는 그룹 오른쪽에서 Remove group ([remove])을 선택합니다.

그룹에서 초대된 그룹을 제거하면:

  • 초대된 그룹의 모든 직접 구성원이 더 이상 그룹에 접근할 수 없습니다.
  • 초대된 그룹의 구성원은 더 이상 그룹의 청구 가능 구성원에 포함되지 않습니다.

공유된 그룹 보기#

공유 그룹은 그룹 초대 작업을 통해 그룹 구성원을 초대하여 리소스에 접근할 수 있도록 한 그룹입니다.

그룹과 공유 접근 권한이 있는 그룹을 보려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 그룹 페이지에서 Shared groups 탭을 선택합니다.

공유된 그룹 목록이 표시됩니다. REST API를 사용하여 그룹의 공유된 그룹 목록을 조회할 수도 있습니다.

그룹 계층 구조 외부의 그룹 초대 방지#

최상위 그룹의 하위 그룹과 프로젝트가 최상위 그룹의 계층 구조 외부에 있는 다른 그룹을 초대할 수 없도록 최상위 그룹을 구성할 수 있습니다. 이 옵션은 최상위 그룹에서만 사용할 수 있습니다.

예를 들어 다음과 같은 그룹 및 프로젝트 계층 구조에서:

  • Animals > Dogs > Dog Project
  • Animals > Cats
  • Plants > Trees

Animals 그룹에 대해 계층 구조 외부의 그룹 초대를 방지하면:

  • DogsCats 그룹을 초대할 수 있습니다.
  • DogsTrees 그룹을 초대할 수 없습니다.
  • Dog ProjectCats 그룹을 초대할 수 있습니다.
  • Dog ProjectTrees 그룹을 초대할 수 없습니다.

그룹의 계층 구조 외부의 그룹 초대를 방지하려면:

  1. 상단 바에서 Search or go to를 선택하고 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Settings > General을 선택합니다.
  3. Permissions and group features를 펼칩니다.
  4. Members cannot invite groups outside of <group_name> and its subgroups를 선택합니다.
  5. Save changes를 선택합니다.

협업을 위한 그룹 설정#

그룹의 프로젝트에서 외부 사용자와 협업하려는 경우 다음 모범 사례를 고려하세요:

  • 조직 필요에 따라 그룹과 하위 그룹을 논리적으로 구성하세요. 불필요한 그룹 생성을 피하세요.
  • 관리해야 할 사용자가 많은 경우 프로젝트를 구성하는 그룹과 별도의 그룹에 사용자를 구성하는 것을 고려하세요. 이러한 사용자 그룹을 접근 권한이 필요한 그룹 및 프로젝트에 공유하세요.
  • 프로젝트에 초대하는 그룹을 신중하게 고려하세요. 과도한 공유를 방지하고 보안을 유지하기 위해 접근이 필요한 그룹만 초대하세요.
  • 그룹을 초대할 때:
    • 최대 역할을 적절하게 설정하세요. 최고 역할을 기본으로 설정하는 대신 필요한 최소 권한을 할당하는 것이 좋습니다.
    • 초대된 그룹의 하위 그룹 구성원은 프로젝트에 접근할 수 없습니다. 대신 하위 그룹을 별도로 초대하는 것을 선호할 수 있습니다.
  • 프로젝트에 접근 권한이 있는 여러 그룹에 속한 사용자의 최대 역할을 확인하세요. 의도치 않은 높은 권한을 방지하기 위해 사용자의 역할을 변경할 수 있습니다.
  • 공유 프로젝트에 대한 그룹 접근을 정기적으로 검토하고 적절하게 업데이트하세요. 그룹이 더 이상 프로젝트에 접근할 필요가 없으면 제거하세요.