- 구성원 유형
- 프로젝트에 사용자 추가
- 만료 및 역할 업데이트
- 그룹과 프로젝트 공유
- 다른 프로젝트에서 구성원 가져오기
- 프로젝트에서 구성원 제거
- 사용자 제거 후 다시 초대할 수 없도록 하기
- 프로젝트 구성원 필터링 및 정렬
- 프로젝트에 대한 액세스 요청
- 사용자가 프로젝트에 대한 액세스를 요청하지 못하도록 방지
- 멤버십 및 가시성 권한
프로젝트의 구성원
구성원은 프로젝트에 접근할 수 있는 사용자 및 그룹입니다.
각 구성원은 역할을 부여받으며, 이는 그들이 프로젝트에서 수행할 수 있는 작업을 결정합니다.
구성원 유형
사용자는 그룹 또는 프로젝트의 구성원이 직접 또는 간접적으로 될 수 있습니다.
간접 구성원 자격은 상속되거나 공유되거나 상속된 공유될 수 있습니다.
구성원 유형 | 구성원 프로세스 |
---|---|
직접 | 사용자가 현재 그룹 또는 프로젝트에 직접 추가됨. |
상속 | 사용자가 현재 그룹 또는 프로젝트를 포함하는 상위 그룹의 구성원임. |
공유 | 사용자가 현재 그룹 또는 프로젝트에 초대된 그룹의 구성원임. |
상속된 공유 | 사용자가 현재 그룹 또는 프로젝트의 조상 그룹에 초대된 그룹의 구성원임. |
간접 | 상속, 공유 또는 상속된 공유 구성원을 위한 포괄적인 용어. |
위의 예에서:
- Administrator는 demo 그룹에서 상속된 구성원입니다.
- User 0은 demo 그룹에서 상속된 구성원입니다.
- User 1은 이 프로젝트에 초대된 Acme 그룹의 공유 구성원입니다.
- User 2는 demo 그룹에 초대된 Toolbox 그룹의 상속된 공유 구성원입니다.
- User 3은 이 프로젝트에 추가된 직접 구성원입니다.
프로젝트에 사용자 추가
사용자를 프로젝트에 추가하여 직접 구성원이 되고 작업을 수행할 수 있는 권한을 부여합니다.
전제 조건:
- 소유자 또는 유지 관리자 역할이 있어야 합니다.
- 그룹 구성원 자격 잠금을 비활성화해야 합니다.
- 가입이 비활성화된 경우, 관리자가 먼저 이메일로 사용자를 추가해야 합니다.
- 승급 관리가 활성화된 경우, 관리자가 초대를 승인해야 합니다.
사용자를 프로젝트에 추가하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
- 구성원 초대를 선택합니다.
-
사용자에게:
- GitLab 계정이 있는 경우, 사용자 이름을 입력합니다.
- GitLab 계정이 없는 경우, 이메일 주소를 입력합니다.
- 기본 역할 또는 사용자 정의 역할을 선택합니다.
-
선택 사항. 접근 만료 날짜를 선택합니다.
해당 날짜 이후로, 사용자는 더 이상 프로젝트에 접근할 수 없습니다.접근 만료 날짜를 선택한 경우, 프로젝트 구성원은 접근 만료 7일 전에 이메일 알림을 받습니다.
경고:
유지 관리자에게는 역할이 만료될 때까지 완전한 권한이 있으며, 자신의 접근 만료 날짜를 연장할 수 있는 능력이 포함됩니다. -
초대를 선택합니다.
사용자를 다음 방법으로 초대한 경우:- GitLab 사용자 이름을 통해, 그들은 구성원 목록에 추가됩니다.
- 이메일 주소를 통해, 초대장이 그들의 이메일 주소로 전송되며, 계정을 생성하라는 요청을 받습니다.
초대를 수락하지 않으면, GitLab은 2일, 5일, 10일 후에 알림 이메일을 보냅니다.
수락되지 않은 초대는 90일 후에 자동으로 삭제됩니다.
할당할 수 있는 역할
할당할 수 있는 최대 역할은 그룹에 대한 Owner 또는 Maintainer 역할이 있는지 여부에 따라 다릅니다. 예를 들어, 설정할 수 있는 최대 역할은 다음과 같습니다:
- Owner (
50
), 프로젝트에 대해 Owner 역할이 있는 경우. - Maintainer (
40
), 프로젝트에 대해 Maintainer 역할이 있는 경우.
Owner 역할은 그룹에만 추가할 수 있습니다.
승진 대기 중인 사용자 보기
승진 관리가 활성화되면, 관리자가 청구 가능한 사용자가 될 요청을 승인해야 합니다.
승진 대기 중인 사용자를 보려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
- 역할 승진 탭을 선택합니다.
역할 승진 탭이 표시되지 않으면, 프로젝트에 승진 대기 중인 사용자가 없습니다.
만료 및 역할 업데이트
사용자가 다음과 같다면:
- 프로젝트의 직접 구성원인 경우, 만료 및 역할 필드를 프로젝트에서 직접 업데이트할 수 있습니다.
- 상속된, 공유된 또는 상속된 공유 구성원인 경우, 만료 및 역할 필드는 구성원이 유래한 그룹에서 업데이트해야 합니다.
그룹과 프로젝트 공유
사용자를 한 명씩 추가하는 대신, 전체 그룹과 프로젝트를 공유할 수 있습니다.
다른 프로젝트에서 구성원 가져오기
다른 프로젝트의 직접 구성원을 자신의 프로젝트로 가져올 수 있습니다.
가져온 프로젝트 구성원은 가져온 프로젝트의 권한을 그대로 유지합니다.
참고: 프로젝트의 직접 구성원만 가져옵니다. 상속된 또는 공유된 구성원은 가져오지 않습니다.
사전 요구사항:
- Maintainer 또는 Owner 역할이 필요합니다.
가져오는 구성원의 역할이 목표 프로젝트에 대해 다음과 같으면:
- Maintainer인 경우, 소스 프로젝트에서 Owner 역할을 가진 구성원은 Maintainer 역할로 가져옵니다.
- Owner인 경우, 소스 프로젝트에서 Owner 역할을 가진 구성원은 Owner 역할로 가져옵니다.
프로젝트의 구성원을 가져오려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
- 프로젝트에서 가져오기를 선택합니다.
- 프로젝트를 선택합니다. 당신이 Maintainer인 프로젝트만 볼 수 있습니다.
- 프로젝트 구성원 가져오기를 선택합니다.
가져오기가 성공하면, 성공 메시지가 표시됩니다. 구성원 탭에서 가져온 구성원을 보려면 페이지를 새로 고치세요.
프로젝트에서 구성원 제거
사용자가 다음과 같다면:
- 프로젝트의 직접 구성원인 경우, 프로젝트에서 직접 제거할 수 있습니다.
- 부모 그룹에서 상속된 구성원인 경우, 부모 그룹에서만 제거할 수 있습니다.
사전 요구사항:
- 다음 역할을 가진 직접 구성원을 제거하려면:
- Maintainer, Developer, Reporter 또는 Guest 역할, Maintainer 역할이 있어야 합니다.
- Owner 역할, Owner 역할이 있어야 합니다.
- 선택 사항. 그들에게 할당된 모든 문제 및 병합 요청에서 구성원을 할당 해제합니다.
프로젝트에서 구성원을 제거하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
- 제거하려는 프로젝트 구성원 옆에 있는 구성원 제거를 선택합니다.
- 선택 사항. 확인 대화 상자에서 이 사용자를 관련 문제 및 병합 요청에서 할당 해제 체크박스를 선택합니다.
- 개인 프로젝트에서 민감한 정보가 유출되지 않도록 하려면, 구성원이 개인 리포지토리를 포크했거나 웹후크를 생성하지 않았는지 확인합니다. 기존 포크는 상위 프로젝트의 변경 사항을 계속 수신하며, 웹후크는 업데이트를 계속 수신합니다. 또한 그룹 외부에서 프로젝트 포크를 방지하도록 프로젝트를 구성할 수 있습니다.
- 구성원 제거를 선택합니다.
사용자 제거 후 다시 초대할 수 없도록 하기
Maintainer 또는 Owner 역할을 가진 사용자가 관리자가 제거한 후에도 그룹이나 프로젝트에 재가입할 수 있는 경쟁 조건을 악용할 수 있습니다.
이 문제를 방지하기 위해 GitLab 관리자는 다음과 같은 조치를 취할 수 있습니다:
- GitLab Rails 콘솔에서 악의적인 사용자 세션을 제거합니다.
- 악의적인 사용자로 가장하여:
- 프로젝트에서 사용자를 제거합니다.
- 사용자를 GitLab에서 로그아웃합니다.
- 악의적인 사용자 계정을 차단합니다.
- 악의적인 사용자 계정을 제거합니다.
- 악의적인 사용자 계정의 비밀번호를 변경합니다.
프로젝트 구성원 필터링 및 정렬
프로젝트에서 구성원을 필터링하고 정렬할 수 있습니다.
직접 구성원 표시
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
-
구성원 필터 상자에서
Membership
=
Direct
를 선택합니다. - Enter 키를 누릅니다.
간접 구성원 표시
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
-
구성원 필터 상자에서
Membership
=
Indirect
를 선택합니다. - Enter 키를 누릅니다.
프로젝트에서 구성원 검색
프로젝트 구성원을 검색하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
- 검색 상자에 구성원의 이름, 사용자 이름 또는 이메일을 입력합니다.
- Enter 키를 누릅니다.
프로젝트에서 구성원 정렬
다음 기준으로 구성원을 오름차순 또는 내림차순으로 정렬할 수 있습니다:
- 계정 이름
- 접근 권한 부여 날짜
- 프로젝트에서 구성원이 가진 역할
- 사용자 생성 날짜
- 최신 활동 날짜
- 마지막 로그인 날짜
구성원을 정렬하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 관리 > 구성원을 선택합니다.
- 구성원 목록 상단의 드롭다운 목록에서 정렬할 항목을 선택합니다.
프로젝트에 대한 액세스 요청
GitLab 사용자는 프로젝트의 구성원이 되기 위해 요청할 수 있습니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 구성원이 되고 싶은 프로젝트를 찾습니다.
- 오른쪽 상단에서 수직 Ellipsis()를 선택하고 액세스 요청을 선택합니다.
최근에 활동한 프로젝트 Maintainers 또는 Owners에게 이메일이 전송됩니다.
최대 열 개의 프로젝트 Maintainers 또는 Owners가 알림을 받습니다.
모든 프로젝트 Owner 또는 Maintainer가 요청을 승인하거나 거부할 수 있습니다.
프로젝트 Maintainers는 Owner 역할 접근 요청을 승인할 수 없습니다.
프로젝트에 직접 Owner 또는 Maintainer가 없는 경우, 프로젝트의 상위 그룹의 최근 활동한 Owner가 알림을 받습니다.
프로젝트에 대한 액세스 요청 철회
요청이 승인되기 전에 프로젝트에 대한 액세스 요청을 철회할 수 있습니다.
액세스 요청을 철회하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 액세스 요청을 했던 프로젝트를 찾습니다.
- 프로젝트 이름 옆에서 액세스 요청 철회를 선택합니다.
사용자가 프로젝트에 대한 액세스를 요청하지 못하도록 방지
사용자가 프로젝트에 대한 액세스를 요청하지 못하도록 할 수 있습니다.
전제 조건:
- 프로젝트에 대한 Owner 역할을 가지고 있어야 합니다.
- 프로젝트는 공개적이어야 합니다.
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 설정 > 일반을 선택합니다.
- 가시성, 프로젝트 기능, 권한을 확장합니다.
- 프로젝트 가시성 아래에서 사용자가 액세스를 요청할 수 있음 체크 박스가 선택되지 않도록 합니다.
- 변경 사항 저장을 선택합니다.
멤버십 및 가시성 권한
멤버십 유형에 따라 그룹 또는 프로젝트의 구성원에게는 서로 다른 가시성 수준과 권한이 부여됩니다.
다음 표는 프로젝트 구성원의 멤버십 및 가시성 권한을 나열합니다.
작업 | 직접 프로젝트 구성원 | 상속된 프로젝트 구성원 | 직접 공유 프로젝트 구성원 | 상속된 공유 프로젝트 구성원 |
---|---|---|---|---|
보드 생성 | 예 | 예 | 예 | 예 |
상위 그룹의 이슈 보기 1 | 예 | 예 | 예 | 예 |
상위 그룹의 레이블 보기 | 예 | 예 | 예 | 예 |
상위 그룹의 마일스톤 보기 | 예 | 예 | 예 | 예 |
다른 그룹으로 공유되기 | 예 | 아니오 | 아니오 | 아니오 |
다른 프로젝트로 가져오기 | 예 | 아니오 | 아니오 | 아니오 |
다른 구성원과 프로젝트 공유하기 | 예 | 예 | 예 | 예 |
각주:
- 사용자는 액세스할 수 있는 프로젝트의 이슈만 볼 수 있습니다.
다음 표는 그룹 구성원의 멤버십 및 가시성 권한을 나열합니다.
작업 | 직접 그룹 구성원 | 상속된 그룹 구성원 | 직접 공유 그룹 구성원 | 상속된 공유 그룹 구성원 |
---|---|---|---|---|
보드 생성 | 예 | 예 | 예 | 예 |
상위 그룹의 이슈 보기 | 예 | 예 | 예 | 예 |
상위 그룹의 레이블 보기 | 예 | 예 | 예 | 예 |
상위 그룹의 마일스톤 보기 | 예 | 예 | 예 | 예 |
다음 예에서 User
는:
-
subgroup
의 직접 구성원입니다. -
subsubgroup
의 상속된 구성원입니다. -
subgroup-2
및subgroup-3
의 간접 구성원입니다. -
subsubgroup-2
및subsubgroup-3
의 간접 상속된 구성원입니다.