프로젝트의 구성원들

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

구성원은 프로젝트에 액세스 권한을 가진 사용자 및 그룹입니다.

각 구성원은 프로젝트에서 수행할 수 있는 작업을 결정하는 역할을 부여받습니다.

멤버십 유형

  • 변경됨으로 인해 GitLab 16.10에서 Members 페이지의 Members 탭에 초대된 그룹 구성원을 표시하도록 변경되었습니다. 기본 상태에서 비활성화된 채로 webui_members_inherited_users라는 플래그가 있습니다.
  • 기능 플래그 webui_members_inherited_users는 GitLab 17.0에서 GitLab.com 및 자체 관리형에서 활성화되었습니다.
  • 기능 플래그 webui_members_inherited_users가 GitLab 17.4에서 제거되었습니다. 초대된 그룹의 구성원이 기본적으로 표시됩니다.

사용자는 직접 또는 간접적으로 그룹 또는 프로젝트의 구성원이 될 수 있습니다. 간접 멤버십은 상속, 공유 또는 상속된 공유일 수 있습니다.

멤버십 유형 멤버십 프로세스
직접 사용자가 현재 그룹 또는 프로젝트에 직접 추가됩니다.
상속 사용자가 현재 그룹 또는 프로젝트를 포함하는 상위 그룹의 구성원입니다.
공유 사용자가 현재 그룹 또는 프로젝트로 초대된 그룹의 구성원입니다.
상속된 공유 사용자가 현재 그룹 또는 프로젝트의 조상에 초대된 그룹의 구성원입니다.
간접 상속, 공유 또는 상속된 공유 구성원을 나타내는 대표용어입니다.
%%{init: { "fontFamily": "GitLab Sans" }}%% flowchart RL accTitle: 멤버십 유형 accDescr: 멤버십 유형과 상속에 대해 설명합니다. subgraph 그룹 A A(직접 구성원) B{{공유된 구성원}} subgraph 프로젝트 X H(직접 구성원) C{{상속된 구성원}} D{{상속된 공유 구성원}} E{{공유된 구성원}} end A-->|프로젝트 X에서의 상속 멤버십\n그룹 A에서의 직접 멤버십|C end subgraph 그룹 C G(직접 구성원) end subgraph 그룹 B F(직접 구성원) end F-->|그룹 A에서의 초대\n그룹 B로부터 초대받음|B B-->|프로젝트 X에서의 상속 멤버십\n그룹 A에서의 간접 멤버십|D G-->|그룹 C가 프로젝트 X로 초대됨|E

프로젝트 구성원 페이지

위 예제에서:

  • 관리자demo 그룹의 상속 멤버입니다.
  • 사용자 0demo 그룹의 상속 멤버입니다.
  • 사용자 1은 이 프로젝트로 초대된 Acme 그룹의 공유 구성원입니다.
  • 사용자 2demo 그룹으로 초대된 Toolbox 그룹의 상속된 공유 구성원입니다.
  • 사용자 3은 이 프로젝트에 직접 추가된 구성원입니다.

프로젝트에 사용자 추가

  • GitLab 16.2에서 도입된 만료될 액세스 이메일 알림.
  • 서브그룹 및 프로젝트의 직접 멤버에 대한 액세스 만료 날짜가 GitLab 17.4에서 제거되었습니다.

사용자를 프로젝트에 추가하여 사용자가 직접 구성원이 되고 작업을 수행할 수 있는 권한을 부여합니다.

전제 조건:

  • 소유자 또는 유지보수자 역할이어야 합니다.
  • 그룹 구성원 잠금이 비활성화되어 있어야 합니다.
  • 가입 비활성화된 경우, 관리자는 먼저 이메일을 통해 사용자를 추가해야 합니다.
  • 승급 관리가 활성화된 경우, 관리자는 초대를 승인해야 합니다.

사용자를 프로젝트에 추가하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 구성원 초대를 선택합니다.
  4. 사용자가:
    • GitLab 계정을 가지고 있는 경우, 사용자 이름을 입력합니다.
    • GitLab 계정이 없는 경우, 이메일 주소를 입력합니다.
  5. 기본 역할 또는 사용자 정의 역할을 선택합니다.
  6. 선택 사항. 액세스 만료 날짜를 선택합니다. 해당 날짜부터 사용자는 프로젝트에 더 이상 액세스할 수 없습니다.

    액세스 만료 날짜를 선택한 경우, 프로젝트 구성원은 액세스 만료 전 7일 전에 이메일 알림을 받습니다.

    경고: 유지보수자는 자신의 역할이 만료될 때까지(자신의 액세스 만료 날짜를 포함하여)모든 권한을 가집니다.

  7. 초대를 선택합니다. 만일 사용자를
    • GitLab 사용자 이름으로 초대했다면, 구성원 목록에 추가됩니다.
    • 이메일 주소로 초대했다면, 해당 이메일 주소로 초대장이 전송되며 사용자는 계정을 생성하도록 안내됩니다. 초대장이 수락되지 않으면, GitLab은 2, 5, 10일 후에 알림 이메일을 보냅니다. 초대는 90일 후 자동으로 삭제됩니다.

할당할 수 있는 역할

할당할 수 있는 최대 역할은 그룹에서 소유자 또는 유지보수자 역할을 가지고 있는지에 따라 달라집니다. 예를 들어, 설정할 수 있는 최대 역할은 다음과 같습니다: - 프로젝트에 대해 소유자(50) 역할을 가지고 있는 경우 - 프로젝트에 대해 유지보수자(40) 역할을 가지고 있는 경우

소유자 역할은 그룹에만 추가할 수 있습니다.

승급 대기 중인 사용자 보기

승급 관리가 활성화된 경우, 구독 중인 과금 대상 사용자가 될 사용자의 멤버십 요청을 관리자가 승인해야 합니다.

승급 대기 중인 사용자를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 역할 승급 탭을 선택합니다.

역할 승급 탭이 표시되지 않으면, 프로젝트에 승급 대기 중인 사용자가 없습니다.

만료 및 역할 업데이트

만약 사용자가:

  • 프로젝트의 직접 멤버인 경우 만료역할 필드는 프로젝트에서 직접 업데이트할 수 있습니다.
  • 상속된, 공유된 또는 공유된 상속 멤버인 경우 만료역할 필드는 해당 멤버가 시작된 그룹에서 업데이트해야 합니다.

프로젝트를 그룹과 공유

한 명씩 사용자를 추가하는 대신 전체 그룹과 프로젝트를 공유할 수 있습니다.

다른 프로젝트에서 멤버 가져오기

다른 프로젝트의 직접 멤버를 여러분의 프로젝트로 가져올 수 있습니다. 가져온 프로젝트 멤버는 가져온 프로젝트에서의 권한을 유지합니다.

참고: 프로젝트의 직접 멤버만 가져옵니다. 프로젝트의 상속된 또는 공유된 멤버는 가져오지 않습니다.

필수 조건:

  • 관리자 또는 소유자 역할이어야 합니다.

가져오려는 멤버가 대상 프로젝트의 역할이: - 관리자인 경우, 소스 프로젝트의 소유자 역할을 관리자 역할로 가져옵니다. - 소유자인 경우, 소스 프로젝트의 소유자 역할을 소유자 역할로 가져옵니다.

프로젝트 멤버를 가져오려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 다른 프로젝트에서 가져오기를 선택합니다.
  4. 프로젝트를 선택합니다. 여기서는 관리자로서만 볼 수 있습니다.
  5. 프로젝트 멤버 가져오기를 선택합니다.

가져오기가 성공하면 성공 메시지가 표시됩니다. 멤버 탭에서 가져온 멤버를 보려면 페이지를 새로 고칩니다.

프로젝트에서 멤버 제거

사용자가:

  • 프로젝트의 직접 멤버인 경우, 해당 프로젝트에서 직접 제거할 수 있습니다.
  • 상위 그룹에서 상속된 멤버인 경우, 해당 상위 그룹 자체에서만 제거할 수 있습니다.

필수 조건:

  • 다음 역할을 가진 직접 멤버를 삭제하려면:
    • 관리자, 개발자, 기고자 또는 게스트 역할을 삭제하려면 관리자 역할이어야 합니다.
    • 소유자 역할을 삭제하려면 소유자 역할이어야 합니다.
  • 선택 사항. 해당 멤버가 할당된 모든 이슈 및 병합 요청에서 해당 멤버를 해제합니다.

프로젝트에서 멤버를 제거하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 제거하려는 프로젝트 멤버 옆에 멤버 제거를 선택합니다.
  4. 선택 사항. 확인 대화상자에서 해당 사용자를 관련 이슈 및 병합 요청에서도 해제 확인란을 선택합니다.
  5. 개인 프로젝트의 민감한 정보 누설을 방지하기 위해 해당 멤버가 개인 저장소를 포크하거나 웹훅을 생성하지 않았는지 확인합니다. 기존 포크는 상위 프로젝트에서 계속해서 변경을 받고 웹훅은 계속해서 업데이트를 받습니다. 또한 프로젝트를 구성하여 그룹 외부에서 프로젝트가 포크되는 것을 방지할 수도 있습니다.
  6. 멤버 제거를 선택합니다.

삭제된 사용자가 스스로 다시 초대받지 않도록 보장

관리자 또는 소유자 역할을 가진 사용자는 관리자가 그들을 제거한 후에도 그룹이나 프로젝트에 다시 가입할 수 있는 경쟁 조건을 악용할 수 있습니다.

이 문제를 피하기 위해 GitLab 관리자는 다음 작업을 수행할 수 있습니다:

  • GitLab Rails 콘솔에서 악의적인 사용자 세션을 제거합니다.
  • 악의적인 사용자를 흉내냄으로써:
    • 사용자를 프로젝트에서 제거합니다.
    • GitLab에서 사용자를 로그아웃합니다.
  • 악의적인 사용자 계정을 차단합니다.
  • 악의적인 사용자 계정을 제거합니다.
  • 악의적인 사용자 계정의 암호를 변경합니다.

프로젝트 멤버 필터링 및 정렬

프로젝트에서 멤버를 필터링하고 정렬할 수 있습니다.

직접 멤버 표시

  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 멤버 필터 상자에서 멤버십 = 직접를 선택합니다.
  4. Enter를 누릅니다.

간접 멤버 표시

  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 멤버 필터 상자에서 멤버십 = 간접를 선택합니다.
  4. Enter를 누릅니다.

프로젝트에서 멤버 검색

프로젝트 멤버를 검색하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 검색 상자에 멤버의 이름, 사용자 이름 또는 이메일을 입력합니다.
  4. Enter를 누릅니다.

프로젝트의 멤버 정렬

프로젝트의 멤버를 오름차순이나 내림차순으로 정렬할 수 있습니다:

  • 계정 이름
  • 부여된 액세스 날짜
  • 프로젝트에서의 역할
  • 사용자의 생성된 날짜
  • 최근 활동 날짜
  • 마지막 로그인 날짜

멤버를 정렬하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 프로젝트를 찾습니다.
  2. 관리 > 멤버를 선택합니다.
  3. 멤버 목록 상단에서 드롭다운 목록에서 원하는 항목을 선택합니다.

프로젝트에 액세스 요청

GitLab 사용자는 프로젝트의 멤버가 될 수 있도록 요청할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 멤버가 되고 싶은 프로젝트를 찾습니다.
  2. 오른쪽 상단에 수직 엘리시스()을 선택하고 접근 요청을 선택합니다.

최근에 활동한 프로젝트 관리자 중 최대 열 명의 프로젝트 관리자가 알림을 받습니다. 프로젝트 소유자 또는 관리자는 요청을 승인하거나 거부할 수 있습니다. 프로젝트 관리자는 소유자 역할 액세스 요청을 승인할 수 없습니다.

만약 프로젝트에 직접 소유자나 관리자가 없다면, 프로젝트가 속한 상위 그룹의 최근 활동한 소유자들이 알림을 받습니다.

프로젝트에 대한 액세스 요청 철회

액세스 요청을 승인하기 전에 프로젝트로의 액세스 요청을 철회할 수 있습니다. 액세스 요청을 철회하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 액세스를 요청한 프로젝트를 찾습니다.
  2. 프로젝트 이름 옆에 액세스 요청 철회를 선택합니다.

프로젝트로의 액세스 요청 방지

사용자가 프로젝트로의 액세스 요청을 할 수 없도록 할 수 있습니다.

필수 조건:

  • 프로젝트의 소유자 역할을 가져야 합니다.
  • 프로젝트는 공개되어 있어야 합니다.
  1. 왼쪽 사이드바에서 검색 또는 이동를 선택하고 프로젝트를 찾습니다.
  2. 설정 > 일반을 선택합니다.
  3. 가시성, 프로젝트 기능, 권한을 확장합니다.
  4. 프로젝트 가시성 아래, 사용자는 액세스를 요청할 수 있음 확인란이 선택되지 않았는지 확인합니다.
  5. 변경 사항 저장을 선택합니다.

멤버쉽 및 가시성 권한

그룹 또는 프로젝트의 멤버는 멤버십 유형에 따라 가시성 수준과 해당 그룹 또는 프로젝트의 권한이 부여됩니다.

다음 표는 프로젝트 멤버의 멤버쉽과 가시성 권한을 나열합니다.

동작 직접 프로젝트 멤버 상속된 프로젝트 멤버 직접 공유된 프로젝트 멤버 상속된 공유된 프로젝트 멤버
보드 생성
상위 그룹의 이슈 보기 1
상위 그룹의 레이블 보기
상위 그룹의 마일스톤 보기
다른 그룹에 공유 아니요 아니요 아니요
다른 프로젝트로 가져오기 아니요 아니요 아니요
다른 멤버와 프로젝트 공유

각주:

  1. 사용자는 액세스 권한이 있는 프로젝트의 이슈만 볼 수 있습니다.

다음 표는 그룹 멤버의 멤버쉽과 가시성 권한을 나열합니다.

동작 직접 그룹 멤버 상속된 그룹 멤버 직접 공유된 그룹 멤버 상속된 공유된 그룹 멤버
보드 생성
상위 그룹의 이슈 보기
상위 그룹의 레이블 보기
상위 그룹의 마일스톤 보기

다음 예에서 User는 다음과 같습니다:

  • subgroup의 직접 멤버입니다.
  • subsubgroup의 상속 멤버입니다.
  • subgroup-2subgroup-3의 간접 멤버입니다.
  • subsubgroup-2subsubgroup-3의 간접 상속 멤버입니다.
%%{init: { "fontFamily": "GitLab Sans" }}%% graph TD accTitle: 그룹 상속 다이어그램 accDescr: 사용자 상속, 하위 그룹을 통한 직접 및 간접 상속 classDef user stroke:green,color:green; root --> subgroup --> subsubgroup root-2 --> subgroup-2 --> subsubgroup-2 root-3 --> subgroup-3 --> subsubgroup-3 subgroup -. 공유 .-> subgroup-2 -. 공유 .-> subgroup-3 사용자-. 멤버 .- subgroup 클래스 사용자 user