- 역할
- 한계
- 그룹 또는 프로젝트의 모든 멤버 나열
- 그룹 또는 프로젝트의 상속 및 초대된 멤버 모두 나열
- 그룹 또는 프로젝트 멤버 가져오기
- 그룹 또는 프로젝트의 멤버 가져오기(상속 및 초대된 멤버 포함)
- 그룹의 모든 청구 가능한 멤버 목록
- 그룹의 요금 청구 대상 멤버의 멤버십 목록 나열
- 그룹의 요금 청구 대상 멤버의 간접 멤버십 목록 나열
- 그룹에서 요금 청구 대상 멤버 제거
- 그룹에서 사용자의 멤버십 상태 변경
- 그룹 또는 프로젝트에 멤버 추가하기
- 그룹 또는 프로젝트의 멤버 수정하기
- 그룹 또는 프로젝트에서 멤버 제거
- 그룹 멤버 승인
- 그룹의 보류 중인 모든 회원을 승인합니다
- 그룹 및 해당 하위 그룹 및 프로젝트의 보류 중인 회원 목록
- 프로젝트에 그룹 액세스 권한 부여
그룹 및 프로젝트 멤버 API
역할
사용자 또는 그룹에 할당된 역할은 access_level
로 정의됩니다.
- 액세스 권한 없음 (
0
) - 최소한의 액세스 (
5
) - 게스트 (
10
) - 기고자 (
20
) - 개발자 (
30
) - 관리자 (
40
) - 소유자 (
50
) - 관리자 (
60
)
한계
group_saml_identity
속성은 SSO 활성화 그룹의 그룹 소유자에게만 표시됩니다.
이메일
속성은 그룹의 기업 사용자에게만 표시되며, API 요청이 해당 그룹, 또는 해당 그룹의 서브그룹 또는 프로젝트로 전송될 때에만 그룹 소유자에게만 표시됩니다.
그룹 또는 프로젝트의 모든 멤버 나열
인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 멤버 목록을 가져옵니다. 직접 멤버만 반환하고 조상 그룹을 통해 상속된 멤버는 반환하지 않습니다.
이 함수는 사용자 목록을 제한하기 위해 페이지네이션 매개변수 page
와 per_page
를 사용합니다.
GET /groups/:id/members
GET /projects/:id/members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트 또는 그룹의 URL 인코딩 경로 |
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-22",
"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-22",
"access_level": 30,
"email": "john@example.com",
"group_saml_identity": {
"extern_uid":"ABC-1234567890",
"provider": "group_saml",
"saml_provider_id": 10
}
}
]
그룹 또는 프로젝트의 상속 및 초대된 멤버 모두 나열
- GitLab 16.10에서 공유 그룹 또는 프로젝트의 현재 사용자가 멤버인 경우에 초대된 사설 그룹의 멤버를 반환하도록 변경되었습니다. 기본적으로 비활성화되어 있습니다.
- Feature flag
webui_members_inherited_users
은 GitLab 17.0에서 GitLab.com 및 자체 호스팅된 상태로 활성화되었습니다.- Feature flag
webui_members_inherited_users
는 GitLab 17.4에서 제거되었습니다. 초대된 그룹의 멤버가 기본적으로 표시됩니다.
인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 멤버 목록을 가져옵니다. 상속된 멤버, 초대된 사용자 및 조상 그룹을 통해 허가를 포함합니다.
사용자가 이 그룹 또는 프로젝트의 멤버이고 하나 이상의 조상 그룹의 멤버인 경우, 해당 사용자의 가장 높은 access_level
멤버십만 반환합니다. 이는 사용자의 유효한 권한을 나타냅니다.
초대된 그룹의 멤버는 다음 경우에 반환됩니다.
- 초대된 그룹이 공개되어 있는 경우.
- 요청자가 초대된 그룹의 멤버인 경우.
- 요청자가 공유된 그룹 또는 프로젝트의 멤버인 경우.
참고: 초대된 그룹 멤버는 공유된 그룹 또는 프로젝트의 공유 멤버십을 갖습니다. 요청자가 공유된 그룹이나 프로젝트의 멤버이지만 초대된 프라이빗 그룹의 멤버가 아닌 경우, 이 엔드포인트를 사용하여 요청자는 초대된 프라이빗 그룹 멤버를 포함한 모든 공유 그룹 또는 프로젝트 멤버를 얻을 수 있습니다.
이 함수는 사용자 목록을 제한하기 위해 페이지네이션 매개변수 page
와 per_page
를 사용합니다.
GET /groups/:id/members/all
GET /projects/:id/members/all
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수 또는 문자열 | 예 | 프로젝트 또는 그룹의 URL 인코딩 경로 |
query
| 문자열 | 아니요 | 멤버를 검색하기 위한 쿼리 문자열 |
user_ids
| 정수 배열 | 아니요 | 주어진 사용자 ID로 결과 필터링 |
show_seat_info
| 부울 | 아니요 | 사용자에 대한 좌석 정보 표시 |
state
| 문자열 | 아니요 | 멤버 상태로 결과 필터링, awaiting 또는 active 중 하나. Premium 및 Ultimate에서만 사용 가능.
|
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-22",
"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-22",
"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-22",
"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
}
그룹 또는 프로젝트의 멤버 가져오기(상속 및 초대된 멤버 포함)
상속 또는 조상 그룹을 통해 상속된 멤버 및 초대된 멤버를 포함하여 그룹 또는 프로젝트 멤버를 가져옵니다. 자세한 내용은 해당 상속된 멤버 목록을 표시하는 엔드포인트를 참조하세요.
참고: 초대된 그룹 멤버는 공유된 그룹 또는 프로젝트에 대한 공동 멤버 자격을 가지고 있습니다. 요청자가 공유된 그룹 또는 프로젝트의 멤버이지만 초대된 개인 그룹의 멤버가 아닌 경우, 이 엔드포인트를 사용하여 요청자는 초대된 개인 그룹 멤버를 포함한 모든 공유된 그룹 또는 프로젝트 멤버를 가져올 수 있습니다.
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
}
그룹의 모든 청구 가능한 멤버 목록
전제 조건:
- 청구 권한에 대한 API 엔드포인트에 액세스하려면 소유자 역할이어야 함. 무료 사용자 제한에서 표시한 것처럼 청구 권한 액세스가 필요함.
청구 가능한 그룹 멤버 목록을 가져옵니다. 이 목록에는 서브그룹 및 프로젝트의 멤버가 포함됩니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 서브그룹에서는 작동하지 않습니다.
이 기능은 페이징 매개변수 page
및 per_page
를 취하여 사용자 목록을 제한합니다.
검색 매개변수를 사용하여 이름으로 청구 가능한 그룹 멤버를 검색하고 결과를 정렬하려면 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"
}
]
그룹의 요금 청구 대상 멤버의 멤버십 목록 나열
그룹의 요금 청구 대상 멤버의 멤버십 목록을 가져옵니다.
사용자가 멤버인 모든 프로젝트 및 그룹을 나열합니다. 그룹 계층 내의 프로젝트 및 그룹만 포함됩니다.
예를 들어 요청된 그룹이 Root Group
이고, 요청된 사용자가 Root Group / Sub Group One
및 Other Group / Sub Group Two
두 그룹의 직접 멤버인 경우 Other Group / Sub Group Two
는 Root Group
계층 내에 없기 때문에 Root Group / Sub Group One
만 반환됩니다.
응답은 직접 멤버십만을 나타냅니다. 상속된 멤버십은 포함되지 않습니다.
이 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
}
}
]
그룹의 요금 청구 대상 멤버의 간접 멤버십 목록 나열
그룹의 요금 청구 대상 멤버의 간접 멤버십 목록을 가져옵니다.
해당 루트 그룹에 초대된 사용자가 멤버인 프로젝트 및 그룹을 나열합니다.
예를 들어, 요청된 그룹이 Root Group
이고, 요청된 사용자가 Root Group
에 초대된 Other Group / Sub Group Two
의 직접 멤버인 경우 Other Group / Sub Group Two
만 반환됩니다.
응답은 간접 멤버십만을 나열합니다. 직접 멤버십은 포함되지 않습니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 서브그룹에서는 작동하지 않습니다.
이 API 엔드포인트는 그룹의 멤버십을 관리할 수 있는 권한이 필요합니다.
이 API 엔드포인트는 멤버십 목록을 제한하는 데 사용되는 페이징 매개변수 page
와 per_page
를 사용합니다.
GET /groups/:id/billable_members/:user_id/indirect
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
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/indirect"
응답 예시:
[
{
"id": 168,
"source_id": 132,
"source_full_name": "Invited Group / Sub Group One",
"source_members_url": "https://gitlab.example.com/groups/invited-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
}
}
]
그룹에서 요금 청구 대상 멤버 제거
그룹과 해당 서브그룹 및 프로젝트에서 요금 청구 대상 멤버를 제거합니다.
사용자는 제거 대상이 되기 위해 그룹의 멤버여야 하지 않습니다. 예를 들어, 사용자가 그룹 내의 프로젝트에 직접 추가되었더라도 이 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"
그룹에서 사용자의 멤버십 상태 변경
그룹에서 사용자의 멤버십 상태를 변경합니다.
사용자가 무료 사용자 한도를 초과하면 사용자의 그룹 또는 프로젝트에 대한 멤버십 상태를 대기 중
또는 활성
으로 변경하여 해당 그룹이나 프로젝트에 액세스할 수 있도록 할 수 있습니다. 변경 사항은 모든 서브그룹 및 프로젝트에 적용됩니다.
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
| 정수/문자열 | 아니요 |
username 이 제공되지 않는 경우 필수
| 새 멤버의 사용자 ID 또는 쉼표로 구분된 여러 ID |
username
| 문자열 | 아니요 |
user_id 가 제공되지 않는 경우 필수
| 새 멤버의 사용자 이름 또는 쉼표로 구분된 여러 사용자 이름 |
access_level
| 정수 | 예 | 유효한 액세스 레벨 | |
expires_at
| 문자열 | 아니요 |
YEAR-MONTH-DAY 형식의 날짜 문자열
| |
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-22",
"access_level": 30,
"email": "john@example.com",
"group_saml_identity": null
}
참고: Manage non-billable promotions 설정이 활성화되어 있으면, 청구 가능한 권한을 가진 새 멤버는 관리자의 승인이 필요합니다.
Manage Non-Billable Promotions을 활성화하려면 먼저 enable_member_promotion_management
애플리케이션 설정을 활성화해야 합니다.
단일 사용자를 큐에 넣는 예시:
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"
{
"message":{
"username_1":"관리자 승인을 위해 대기 중인 요청입니다."
}
}
여러 사용자를 큐에 넣는 예시:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--data "user_id=1,2&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,2&access_level=30" "https://gitlab.example.com/api/v4/projects/:id/members"
{
"queued_users": {
"username_1": "관리자 승인을 위해 대기 중인 요청입니다.",
"username_2": "관리자 승인을 위해 대기 중인 요청입니다."
},
"status": "success"
}
그룹 또는 프로젝트의 멤버 수정하기
그룹 또는 프로젝트의 멤버를 수정합니다.
PUT /groups/:id/members/:user_id
PUT /projects/:id/members/:user_id
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
access_level
| 정수 | 예 | 유효한 액세스 레벨 |
expires_at
| 문자열 | 아니요 |
YEAR-MONTH-DAY 형식의 날짜 문자열
|
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-22",
"access_level": 40,
"email": "john@example.com",
"group_saml_identity": null
}
참고: Manage non-billable promotions 설정이 활성화되어 있으면, 청구 가능한 권한을 가진 새 멤버는 관리자의 승인이 필요합니다.
Manage non-billable promotions을 활성화하려면 먼저 enable_member_promotion_management
애플리케이션 설정을 활성화해야 합니다.
예시 응답:
{
"message":{
"username_1":"관리자 승인을 위해 대기 중인 요청입니다."
}
}
그룹 멤버의 재정의 플래그 설정
기본적으로 LDAP 그룹 멤버의 액세스 수준은 그룹 동기화를 통해 LDAP에서 지정한 값으로 설정됩니다. 이 엔드포인트를 호출하여 액세스 수준 재정의를 허용할 수 있습니다.
POST /groups/:id/members/:user_id/override
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 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-22",
"access_level": 40,
"email": "john@example.com",
"override": true
}
그룹 멤버의 재정의 제거
재정의 플래그를 false로 설정하고 LDAP 그룹 동기화가 액세스 수준을 LDAP에서 prescribe 한 값으로 재설정하게 합니다.
DELETE /groups/:id/members/:user_id/override
속성 | 유형 | 필요 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 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
| 정수/문자열 | 예 | 프로젝트나 그룹의 ID 또는 URL 인코딩된 경로 |
user_id
| 정수 | 예 | 멤버의 사용자 ID |
skip_subresources
| 부울 | 거짓 | 제거된 멤버의 하위 그룹 및 프로젝트에서의 직접 멤버십 제거 여부. 기본값은 false 입니다.
|
unassign_issuables
| 부울 | 거짓 | 주어진 그룹 또는 프로젝트 내의 이슈 또는 병합 요청에서 제거된 멤버를 할당 해제해야 하는지 여부. 기본값은 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"
그룹 및 해당 하위 그룹 및 프로젝트의 보류 중인 회원 목록
그룹 및 해당 하위 그룹 및 프로젝트에 대해 대기 중
상태인 모든 회원 및 GitLab 계정이 없지만 초대된 회원 목록을 가져옵니다.
이 요청은 루트 그룹의 계층구조에 있는 모든 그룹 및 프로젝트의 매칭되는 그룹 및 프로젝트 회원을 반환합니다.
초대된 사용자 중 아직 GitLab 계정에 가입하지 않은 경우 초대된 이메일 주소가 반환됩니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 API 엔드포인트에는 그룹의 회원을 관리할 수 있는 권한이 필요합니다.
이 API 엔드포인트는 page
및 per_page
페이징(pagination) 매개변수를 사용하여 회원 목록을 제한합니다.
GET /groups/:id/pending_members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | URL로 인코딩된 그룹의 ID 또는 경로 |
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
}
]
프로젝트에 그룹 액세스 권한 부여
그룹과 프로젝트 공유를 참조하세요.