- 역할
- 제한 사항
- 그룹 또는 프로젝트의 모든 구성원 나열
- 그룹 또는 프로젝트의 모든 구성원, 상속된 멤버 및 초대된 멤버 목록
- 그룹 또는 프로젝트 멤버 가져오기
- 그룹 또는 프로젝트 멤버 가져오기(상속 및 초대된 멤버 포함)
- 그룹의 모든 청구 가능한 멤버 목록 가져오기
- 그룹의 요금 청구 대상 멤버십 목록
- 그룹에서 요금 청구 대상 멤버 삭제
- 그룹에서 사용자의 멤버십 상태 변경
- 그룹 또는 프로젝트에 멤버 추가
- 그룹 또는 프로젝트 멤버 수정
- 그룹 또는 프로젝트에서 멤버 제거
- 그룹 멤버의 승인
- 그룹의 모든 대기 중인 멤버를 승인
- 그룹 및 해당 하위 그룹 및 프로젝트의 대기 중인 멤버 목록
- 프로젝트에 그룹 액세스 권한 부여
그룹 및 프로젝트 구성원 API
created_by
필드는 GitLab 14.10에서 도입되었습니다.
역할
사용자 또는 그룹에 할당된 역할은 access_level
로 Gitlab::Access
모듈에서 정의됩니다.
- 액세스 없음 (
0
) - 최소한의 액세스 (
5
) (GitLab 13.5에서 도입.) - 게스트(
10
) - 보고자(
20
) - 개발자(
30
) - 유지자(
40
) - 소유자(
50
). GitLab 14.9 및 그 이후 프로젝트에 유효합니다.
참고:
GitLab 14.9 및 그 이후에는 개인 네임스페이스의 프로젝트에 대해 access_level
이 50
(소유자)입니다.
GitLab 14.8 및 그 이전에는 개인 네임스페이스의 프로젝트에 대해 이 문제로 인해 access_level
이 40
(유지자)입니다.
제한 사항
group_saml_identity
속성은 SSO 활성화된 그룹의 그룹 소유자만 볼 수 있습니다.
이메일
속성은 그룹의 엔터프라이즈 사용자에게만 API 요청이 해당 그룹 자체 또는 해당 그룹의 하위 그룹 또는 프로젝트로 전송될 때 그룹 소유자에게만 보입니다.
그룹 또는 프로젝트의 모든 구성원 나열
인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 구성원의 목록을 가져옵니다. 직접 멤버만 반환하며 상위 그룹을 통해 상속된 멤버는 반환하지 않습니다.
이 함수는 페이지네이션 매개변수 page
및 per_page
를 취하여 사용자 목록을 제한합니다.
GET /groups/:id/members
GET /projects/:id/members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트 또는 그룹의 URL 인코딩된 경로 또는 ID |
query
| 문자열 | 아니요 | 구성원을 검색하는 쿼리 문자열 |
user_ids
| 정수 배열 | 아니요 | 주어진 사용자 ID로 결과 필터링 |
skip_users
| 정수 배열 | 아니요 | 결과에서 생략된 사용자 필터링 |
show_seat_info
| 부울 | 아니요 | 사용자의 좌석 정보 표시 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members"
예시 응답:
[
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-09-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 30,
"group_saml_identity": null
},
{
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-09-22T14:13:35Z",
"created_by": {
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 30,
"email": "john@example.com",
"group_saml_identity": {
"extern_uid":"ABC-1234567890",
"provider": "group_saml",
"saml_provider_id": 10
}
}
]
그룹 또는 프로젝트의 모든 구성원, 상속된 멤버 및 초대된 멤버 목록
인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 구성원 목록을 가져와서, 상속된 멤버, 초대받은 사용자 및 조상 그룹을 통한 권한을 포함합니다.
사용자가 이 그룹 또는 프로젝트의 멤버이며 동시에 하나 이상의 조상 그룹의 멤버인 경우,
가장 높은 access_level
멤버십만 반환됩니다. (GitLab 13.11에서 향상됨.)
이는 사용자의 유효한 권한을 나타냅니다.
초대된 그룹의 구성원은 다음 중 하나인 경우 반환됩니다:
- 초대된 그룹이 공개 상태인 경우.
- 요청자가 초대된 그룹의 구성원인 경우.
이 함수는 페이지네이션 파라미터 page
와 per_page
를 사용하여 사용자 목록을 제한합니다.
GET /groups/:id/members/all
GET /projects/:id/members/all
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로. |
query
| 문자열 | 아니요 | 구성원을 검색하기 위한 쿼리 문자열 |
user_ids
| 정수 배열 | 아니요 | 주어진 사용자 ID에 따라 결과를 필터링합니다. |
show_seat_info
| 부울 | 아니요 | 사용자의 좌석 정보를 표시합니다. |
state
| 문자열 | 아니요 | 멤버 상태로 결과를 필터링하며, awaiting 또는 active 중 하나입니다. 프리미엄 및 얼티밋 전용입니다.
|
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/all"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members/all"
예시 응답:
[
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-09-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 30,
"group_saml_identity": null
},
{
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-09-22T14:13:35Z",
"created_by": {
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 30,
"email": "john@example.com",
"group_saml_identity": {
"extern_uid":"ABC-1234567890",
"provider": "group_saml",
"saml_provider_id": 10
}
},
{
"id": 3,
"username": "foo_bar",
"name": "Foo bar",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-11-22T14:13:35Z",
"access_level": 30,
"group_saml_identity": null
}
]
그룹 또는 프로젝트 멤버 가져오기
그룹 또는 프로젝트 멤버를 가져옵니다. 직접 멤버만 반환하며 상위 그룹을 통해 상속된 멤버는 반환하지 않습니다.
GET /groups/:id/members/:user_id
GET /projects/:id/members/:user_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자 소유의 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members/:user_id"
예시 응답:
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"access_level": 30,
"email": "john@example.com",
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": null,
"group_saml_identity": null
}
그룹 또는 프로젝트 멤버 가져오기(상속 및 초대된 멤버 포함)
- GitLab 12.4에 도입되었습니다.
그룹 또는 프로젝트의 멤버를 가져오며, 조상 그룹을 통해 상속되거나 초대된 멤버를 포함합니다. 자세한 내용은 상속된 멤버의 목록을 보는 엔드포인트를 참조하십시오.
GET /groups/:id/members/all/:user_id
GET /projects/:id/members/all/:user_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자 소유의 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/all/:user_id"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members/all/:user_id"
예시 응답:
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"access_level": 30,
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"email": "john@example.com",
"expires_at": null,
"group_saml_identity": null
}
그룹의 모든 청구 가능한 멤버 목록 가져오기
- GitLab 13.5에 도입되었습니다.
청구 가능한 그룹 멤버의 목록을 가져옵니다. 하위 그룹과 프로젝트의 멤버를 포함합니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 함수는 사용자 목록을 제한하는 페이지네이션(pagination) 매개변수 page
와 per_page
를 사용합니다.
GitLab 13.7 및 이후에는 search
매개변수를 사용하여 이름으로 청구 가능한 그룹 멤버를 검색하고 결과를 sort
로 정렬합니다.
GET /groups/:id/billable_members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 URL-인코딩된 그룹의 ID 또는 경로 |
search
| 문자열 | 아니요 | 이름, 사용자명 또는 공개 이메일로 그룹 멤버를 검색하는 쿼리 문자열 |
sort
| 문자열 | 아니요 | 지원되는 값에 따라 정렬 속성과 순서를 지정하는 매개변수를 포함하는 쿼리 문자열. 지원되는 값은 아래와 같습니다. |
sort
속성의 지원되는 값:
값 | 설명 |
---|---|
access_level_asc
| 액세스 레벨, 오름차순 |
access_level_desc
| 액세스 레벨, 내림차순 |
last_joined
| 마지막 가입일 |
name_asc
| 이름, 오름차순 |
name_desc
| 이름, 내림차순 |
oldest_joined
| 가장 오래된 가입일 |
oldest_sign_in
| 가장 오래된 로그인 |
recent_sign_in
| 최근 로그인 |
last_activity_on_asc
| 가장 최근 활동 날짜, 오름차순 |
last_activity_on_desc
| 가장 최근 활동 날짜, 내림차순 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/billable_members"
예시 응답:
[
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"last_activity_on": "2021-01-27",
"membership_type": "group_member",
"removable": true,
"created_at": "2021-01-03T12:16:02.000Z",
"last_login_at": "2022-10-09T01:33:06.000Z"
},
{
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"email": "john@example.com",
"last_activity_on": "2021-01-25",
"membership_type": "group_member",
"removable": true,
"created_at": "2021-01-04T18:46:42.000Z",
"last_login_at": "2022-09-29T22:18:46.000Z"
},
{
"id": 3,
"username": "foo_bar",
"name": "Foo bar",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"last_activity_on": "2021-01-20",
"membership_type": "group_invite",
"removable": false,
"created_at": "2021-01-09T07:12:31.000Z",
"last_login_at": "2022-10-10T07:28:56.000Z"
}
]
그룹의 요금 청구 대상 멤버십 목록
- GitLab 13.11에서 소개됨.
그룹의 요금 청구 대상 멤버십 목록을 가져옵니다.
사용자가 속한 모든 프로젝트와 그룹 목록을 나열합니다. 그룹 계층 내의 프로젝트 및 그룹만 포함됩니다.
예를 들어, 요청된 그룹이 루트 그룹
이고, 요청된 사용자가 루트 그룹 / 서브 그룹 1
및 다른 그룹 / 서브 그룹 2
모두에 직접 속한 경우 루트 그룹 / 서브 그룹 1
만 반환됩니다. 왜냐하면 다른 그룹 / 서브 그룹 2
는 루트 그룹
계층 내에 없기 때문입니다.
응답은 직접 멤버십만 나타냅니다. 상속된 멤버십은 포함되지 않습니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 API 엔드포인트에는 그룹의 멤버십을 관리할 수 있는 권한이 필요합니다.
이 API 엔드포인트는 멤버십 목록을 제한하기 위해 페이지네이션 매개변수 page
및 per_page
를 사용합니다.
GET /groups/:id/billable_members/:user_id/memberships
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 요금 청구 대상 멤버의 사용자 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id/memberships"
예시 응답:
[
{
"id": 168,
"source_id": 131,
"source_full_name": "Root Group / Sub Group One",
"source_members_url": "https://gitlab.example.com/groups/root-group/sub-group-one/-/group_members",
"created_at": "2021-03-31T17:28:44.812Z",
"expires_at": "2022-03-21",
"access_level": {
"string_value": "Developer",
"integer_value": 30
}
},
{
"id": 169,
"source_id": 63,
"source_full_name": "Root Group / Sub Group One / My Project",
"source_members_url": "https://gitlab.example.com/root-group/sub-group-one/my-project/-/project_members",
"created_at": "2021-03-31T17:29:14.934Z",
"expires_at": null,
"access_level": {
"string_value": "Maintainer",
"integer_value": 40
}
}
]
그룹에서 요금 청구 대상 멤버 삭제
그룹 및 해당 하위 그룹 및 프로젝트에서 요금 청구 대상 멤버를 삭제합니다.
사용자는 삭제 대상이 되기 위해 그룹 멤버여야 합니다. 예를 들어, 사용자가 그룹 내의 프로젝트에 직접 추가되었더라도 이 API를 사용하여 그들을 삭제할 수 있습니다.
DELETE /groups/:id/billable_members/:user_id
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id"
그룹에서 사용자의 멤버십 상태 변경
- GitLab 15.0에서 소개됨.
그룹 내 사용자의 멤버십 상태를 변경합니다. 상태는 모든 하위 그룹 및 프로젝트에 적용됩니다.
PUT /groups/:id/members/:user_id/state
속성 | 유형 | 필수여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
state
| 문자열 | 예 | 사용자의 새로운 상태. 상태는 awaiting 또는 active 중 하나입니다.
|
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/state?state=active"
예시 응답:
{
"success":true
}
그룹 또는 프로젝트에 멤버 추가
그룹 또는 프로젝트에 멤버를 추가합니다.
POST /groups/:id/members
POST /projects/:id/members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트나 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수/문자열 | 예 | 새 멤버의 사용자 ID 또는 쉼표로 구분된 여러 ID |
access_level
| 정수 | 예 | 유효한 액세스 수준 |
expires_at
| 문자열 | 아니요 |
연도-월-일 형식의 날짜 문자열
|
invite_source
| 문자열 | 아니요 | 멤버 생성 프로세스를 시작하는 초대의 소스. GitLab 팀 멤버는 이 비밀 문제에서 더 많은 정보를 볼 수 있습니다: https://gitlab.com/gitlab-org/gitlab/-/issues/327120>
|
member_role_id
| 정수 | 아니요 | 멤버 역할의 ID. Ultimate 전용. |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--data "user_id=1&access_level=30" "https://gitlab.example.com/api/v4/groups/:id/members"
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--data "user_id=1&access_level=30" "https://gitlab.example.com/api/v4/projects/:id/members"
예시 응답:
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 30,
"email": "john@example.com",
"group_saml_identity": null
}
그룹 또는 프로젝트 멤버 수정
그룹 또는 프로젝트의 멤버를 수정합니다.
PUT /groups/:id/members/:user_id
PUT /projects/:id/members/:user_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 프로젝트나 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
access_level
| 정수 | 예 | 유효한 액세스 수준 |
expires_at
| 문자열 | 아니요 |
연도-월-일 형식의 날짜 문자열
|
member_role_id
| 정수 | 아니요 | 멤버 역할의 ID. Ultimate 전용. |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id?access_level=40"
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members/:user_id?access_level=40"
예시 응답:
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 40,
"email": "john@example.com",
"group_saml_identity": null
}
그룹 멤버의 재정의 플래그 설정
- 도입된 날짜 : GitLab 13.0.
기본적으로 LDAP 그룹 멤버의 액세스 수준은 그룹 동기화를 통해 LDAP에서 지정한 값으로 설정됩니다. 이 엔드포인트를 호출하여 액세스 수준 재정의를 허용할 수 있습니다.
POST /groups/:id/members/:user_id/override
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| integer | yes | 멤버의 사용자 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override"
응답 예시:
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22T14:13:35Z",
"access_level": 40,
"email": "john@example.com",
"override": true
}
그룹 멤버의 재정의 제거
- 도입된 날짜 : GitLab 13.0.
재정의 플래그를 false로 설정하고 LDAP 그룹 동기화에게 액세스 수준을 LDAP에서 지정한 값으로 재설정할 수 있도록 합니다.
DELETE /groups/:id/members/:user_id/override
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| integer | yes | 멤버의 사용자 ID |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/override"
응답 예시:
{
"id": 1,
"username": "raymond_smith",
"name": "Raymond Smith",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root",
"created_at": "2012-10-22T14:13:35Z",
"created_by": {
"id": 2,
"username": "john_doe",
"name": "John Doe",
"state": "active",
"avatar_url": "https://www.gravatar.com/avatar/c2525a7f58ae3776070e44c106c48e15?s=80&d=identicon",
"web_url": "http://192.168.1.8:3000/root"
},
"expires_at": "2012-10-22",
"access_level": 40,
"email": "john@example.com",
"override": false
}
그룹 또는 프로젝트에서 멤버 제거
그룹 또는 프로젝트에서 사용자를 명시적으로 할당된 역할에서 제거합니다.
사용자는 제거를 위해 그룹 멤버여야 합니다. 예를 들어, 사용자가 그룹 내에서 직접 프로젝트에 추가되었지만 이 그룹에 명시적으로 추가되지 않았다면, 이 API를 사용하여 그들을 제거할 수 없습니다. 다른 방법은 그룹에서 과금 멤버 제거참조하세요.
DELETE /groups/:id/members/:user_id
DELETE /projects/:id/members/:user_id
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 프로젝트 또는 그룹의 URL 인코딩된 경로 |
user_id
| integer | yes | 멤버의 사용자 ID |
skip_subresources
| boolean | false | 제거된 멤버의 하위 그룹과 프로젝트의 직접 멤버 자격을 건너뛸지 여부. 기본값은 false .
|
unassign_issuables
| boolean | false | 제거된 멤버가 주어진 그룹 또는 프로젝트 내의 이슈 또는 병합 요청에서 할당을 해제해야 하는지 여부. 기본값은 false .
|
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id"
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members/:user_id"
그룹 멤버의 승인
그룹과 해당 하위 그룹 및 프로젝트에 보류 중인 사용자를 승인합니다.
PUT /groups/:id/members/:member_id/approve
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 루트 그룹의 ID 또는 URL 인코딩된 경로 |
member_id
| 정수 | 예 | 멤버의 ID |
예시 요청:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:member_id/approve"
그룹의 모든 대기 중인 멤버를 승인
그룹과 해당 하위 그룹 및 프로젝트에 대기 중인 모든 사용자를 승인합니다.
POST /groups/:id/members/approve_all
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 루트 그룹의 ID 또는 URL 인코딩된 경로 |
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/approve_all"
그룹 및 해당 하위 그룹 및 프로젝트의 대기 중인 멤버 목록
- Introduced in GitLab 14.6.
그룹과 해당 하위 그룹 및 프로젝트에 대해 대기 중
상태와 GitLab 계정이 없지만 초대된 모든 멤버의 목록을 가져옵니다.
이 요청은 루트 그룹의 계층 구조에서 모든 그룹 및 프로젝트 멤버를 반환합니다.
멤버가 아직 GitLab 계정에 가입하지 않은 초대된 사용자인 경우 초대된 이메일 주소가 반환됩니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 API 엔드포인트는 그룹의 멤버를 관리하기 위한 권한이 필요합니다.
이 API 엔드포인트는 페이지네이션 매개변수 page
및 per_page
를 사용하여 멤버 목록을 제한합니다.
GET /groups/:id/pending_members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 인증된 사용자가 소유한 그룹의 ID 또는 URL 인코딩된 경로 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/pending_members"
예시 응답:
[
{
"id": 168,
"name": "Alex Garcia",
"username": "alex_garcia",
"email": "alex@example.com",
"avatar_url": "http://example.com/uploads/user/avatar/1/cd8.jpeg",
"web_url": "http://example.com/alex_garcia",
"approved": false,
"invited": false
},
{
"id": 169,
"email": "sidney@example.com",
"avatar_url": "http://gravatar.com/../e346561cd8.jpeg",
"approved": false,
"invited": true
},
{
"id": 170,
"email": "zhang@example.com",
"avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
"approved": true,
"invited": true
}
]
프로젝트에 그룹 액세스 권한 부여
그룹과 프로젝트 공유를 참조하세요.