- 역할
- 제한사항
- 그룹 또는 프로젝트의 모든 멤버 목록
- 그룹 또는 프로젝트의 모든 구성원 목록(상속된 구성원 및 초대된 구성원 포함)
- 그룹 또는 프로젝트의 멤버 가져오기
- 상속된 멤버 및 초대된 멤버를 포함하여 그룹 또는 프로젝트의 멤버 가져오기
- 그룹의 청구 가능한 모든 구성원 목록
- 청구 가능한 그룹 구성원의 멤버십 목록
- 청구 가능한 그룹 구성원의 간접 멤버십 목록
- 그룹에서 비용 청구 회원 제거
- 그룹 내 사용자의 멤버십 상태 변경
- 그룹 또는 프로젝트에 회원 추가
- 그룹 또는 프로젝트의 구성원 수정
- 그룹 또는 프로젝트에서 구성원 제거
- 그룹의 구성원 승인
- 그룹의 모든 대기 중인 구성원 승인
- 그룹 및 그 하위 그룹과 프로젝트의 대기 중인 구성원 목록
- 프로젝트에 그룹 액세스 부여
그룹 및 프로젝트 멤버 API
역할
사용자 또는 그룹에 할당된 역할은
Gitlab::Access
모듈에서 access_level
으로 정의됩니다.
- 접근 불가 (
0
) - 최소 접근 (
5
) - 게스트 (
10
) - 리포터 (
20
) - 개발자 (
30
) - 관리자 (
40
) - 소유자 (
50
) - 관리자 (
60
)
제한사항
group_saml_identity
속성은 SSO가 활성화된 그룹의 그룹 소유자에게만 표시됩니다.
email
속성은 API 요청이 그룹 자체 또는 해당 그룹의 하위 그룹이나 프로젝트에 전송될 때 그룹의 기업 사용자에게만 그룹 소유자에게 표시됩니다.
그룹 또는 프로젝트의 모든 멤버 목록
인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 멤버 목록을 가져옵니다.
직접 멤버만 반환되며 조상 그룹을 통해 상속된 멤버는 반환되지 않습니다.
이 기능은 사용자 목록을 제한하기 위해 페이지 매김 매개변수 page
및 per_page
를 사용합니다.
GET /groups/:id/members
GET /projects/:id/members
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로 |
query |
string | 아니요 | 멤버 검색을 위한 쿼리 문자열 |
user_ids |
정수 배열 | 아니요 | 주어진 사용자 ID로 결과를 필터링 |
skip_users |
정수 배열 | 아니요 | 결과에서 건너뛴 사용자 필터링 |
show_seat_info |
boolean | 아니요 | 사용자에 대한 좌석 정보를 표시 |
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에서 공유 그룹 또는 프로젝트의 구성원인 경우 초대된 비공식 그룹의 구성원을 반환하도록 변경됨. 기본적으로 비활성화되어 있습니다.
- 기능 플래그
webui_members_inherited_users
는 GitLab.com 및 자체 관리에서 GitLab 17.0에 대해 활성화되었습니다.- 기능 플래그
webui_members_inherited_users
는 GitLab 17.4에서 제거됨. 초대된 그룹의 구성원이 기본적으로 표시됩니다.
인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 구성원의 목록을 가져옵니다. 여기에는 상속된 구성원, 초대된 사용자 및 조상 그룹을 통한 권한이 포함됩니다.
사용자가 이 그룹 또는 프로젝트의 구성원이면서 하나 이상의 조상 그룹의 구성원일 경우,
가장 높은 access_level
을 가진 구성원만 반환됩니다.
이것은 사용자의 유효한 권한을 나타냅니다.
초대된 그룹의 구성원은 다음 중 하나일 경우 반환됩니다:
- 초대된 그룹이 공개입니다.
- 요청자가 초대된 그룹의 구성원입니다.
- 요청자가 공유 그룹 또는 프로젝트의 구성원입니다.
노트:
초대된 그룹 구성원은 공유 그룹 또는 프로젝트에서 공유된 구성원이 있습니다.
즉, 요청자가 공유 그룹 또는 프로젝트의 구성원이지만 초대된 비공식 그룹의 구성원이 아닌 경우,
이 엔드포인트를 사용하여 요청자는 초대된 비공식 그룹 구성원을 포함한 모든 공유 그룹 또는 프로젝트 구성원을 가져올 수 있습니다.
이 함수는 사용자 목록을 제한하기 위해 페이지 매김 매개변수 page
와 per_page
를 사용합니다.
GET /groups/:id/members/all
GET /projects/:id/members/all
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로. |
query |
string | 아니요 | 구성원을 검색하기 위한 쿼리 문자열. |
user_ids |
정수 배열 | 아니요 | 주어진 사용자 ID로 결과를 필터링합니다. |
show_seat_info |
boolean | 아니요 | 사용자에 대한 좌석 정보를 표시합니다. |
state |
string | 아니요 | 구성원 상태별로 결과를 필터링합니다. 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 |
integer/string | 예 | 프로젝트 또는 그룹의 URL 인코딩된 경로 또는 ID |
user_id |
integer | 예 | 멤버의 사용자 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에서 도입됨.
- GitLab 16.10에서 변경됨: 현재 사용자가 공유 그룹 또는 프로젝트의 멤버인 경우 초대된 개인 그룹의 멤버를 반환합니다. 기본적으로 비활성화되어 있습니다.
- GitLab 17.0에서 GitLab.com 및 자체 관리에서 활성화됨.
- GitLab 17.4에서 기능 플래그
webui_members_inherited_users
가 제거됨. 초대된 그룹의 멤버가 기본적으로 표시됩니다.
상속된 그룹을 통해 상속되거나 초대된 멤버를 포함하여 그룹 또는 프로젝트의 멤버를 가져옵니다. 상속된 멤버와 초대된 멤버를 모두 나열하는 엔드포인트를 확인하세요.
참고:
초대된 그룹의 멤버는 공유 그룹 또는 프로젝트에 공유 멤버십이 있습니다.
즉, 요청자가 공유 그룹 또는 프로젝트의 멤버이지만 초대된 개인 그룹의 멤버가 아닌 경우, 이 엔드포인트를 사용하면 요청자가 모든 공유 그룹 또는 프로젝트 멤버를 가져올 수 있으며, 초대된 개인 그룹의 멤버도 포함됩니다.
GET /groups/:id/members/all/:user_id
GET /projects/:id/members/all/:user_id
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 프로젝트 또는 그룹의 URL 인코딩된 경로 또는 ID |
user_id |
integer | 예 | 멤버의 사용자 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 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 함수는 사용자 목록을 제한하기 위해 pagination 매개변수 page
와 per_page
를 사용합니다.
청구 가능한 그룹 구성원을 이름으로 검색하려면 search
매개변수를 사용하고 결과를 정렬하려면 sort
를 사용합니다.
GET /groups/:id/billable_members
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 그룹의 ID 또는 URL 인코딩 경로 |
search |
string | 아니오 | 이름, 사용자 이름 또는 공개 이메일로 그룹 구성원을 검색하기 위한 쿼리 문자열. |
sort |
string | 아니오 | 정렬 속성과 순서를 지정하는 매개변수를 포함하는 쿼리 문자열. 아래에서 지원 값 참조. |
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
의 직접 구성원인 경우, Root Group
계층에 있지 않은 Other Group / Sub Group Two
는 제외되므로 Root Group / Sub Group One
만 반환됩니다.
응답은 직접 멤버십만 나타냅니다. 상속된 멤버십은 포함되지 않습니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 API 엔드포인트는 그룹의 멤버십을 관리할 수 있는 권한이 필요합니다.
이 API 엔드포인트는 멤버십 목록을 제한하기 위해 pagination 매개변수 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
}
}
]
청구 가능한 그룹 구성원의 간접 멤버십 목록
- Introduced in GitLab 16.11.
청구 가능한 그룹 구성원의 간접 멤버십 목록을 가져옵니다.
요청된 루트 그룹에 초대된 사용자가 구성원인 모든 프로젝트와 그룹을 나열합니다.
예를 들어, 요청된 그룹이 Root Group
이고 요청된 사용자가 Other Group / Sub Group Two
의 직접 구성원인 경우, 이 그룹이 Root Group
에 초대되었을 때 Other Group / Sub Group Two
만 반환됩니다.
응답은 간접 멤버십만 나열됩니다. 직접 멤버십은 포함되지 않습니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
이 API 엔드포인트는 그룹의 멤버십을 관리할 수 있는 권한이 필요합니다.
이 API 엔드포인트는 멤버십 목록을 제한하기 위해 pagination 매개변수 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 |
integer/string | 예 | 그룹의 ID 또는 URL-인코딩된 경로 |
user_id |
integer | 예 | 회원의 사용자 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/billable_members/:user_id"
그룹 내 사용자의 멤버십 상태 변경
그룹 내 사용자의 멤버십 상태를 변경합니다.
사용자가 무료 사용자 한도를 초과한 경우, 그룹 또는 프로젝트의 멤버십 상태를 awaiting
또는 active
로 변경하면 해당 그룹 또는 프로젝트에 접근할 수 있습니다. 변경 사항은 모든 하위 그룹 및 프로젝트에 적용됩니다.
PUT /groups/:id/members/:user_id/state
속성 | 타입 | 필수 | 설명 |
---|---|---|---|
id |
integer/string | 예 | 그룹의 ID 또는 URL-인코딩된 경로. |
user_id |
integer | 예 | 회원의 사용자 ID. |
state |
string | 예 | 사용자의 새 상태. 상태는 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 |
integer/string | 예 | 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로. |
user_id |
integer/string | 예, username 이 제공되지 않는 경우 |
새 회원의 사용자 ID 또는 쉼표로 구분된 여러 ID. |
username |
string | 예, user_id 가 제공되지 않는 경우 |
새 회원의 사용자 이름 또는 쉼표로 구분된 여러 사용자 이름. |
access_level |
integer | 예 | 유효한 접근 수준. |
expires_at |
string | 아니오 |
YEAR-MONTH-DAY 형식의 날짜 문자열. |
invite_source |
string | 아니오 | 회원 생성 프로세스를 시작하는 초대의 출처입니다. GitLab 팀 구성원은 비공식 문제에서 더 많은 정보를 볼 수 있습니다: https://gitlab.com/gitlab-org/gitlab/-/issues/327120> . |
member_role_id |
integer | 아니오 | 회원 역할의 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
}
참고:
설정 비용 청구되지 않는 프로모션 관리가 활성화되면, 비용 청구 역할을 가진 새 초대된 회원은 관리자의 승인을 받아야 합니다.
비용 청구되지 않는 프로모션 관리를 활성화하려면, 먼저 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을 활성화하려면,
먼저 enable_member_promotion_management
애플리케이션 설정을 활성화해야 합니다.
예시 응답:
{
"message":{
"username_1":"Request queued for administrator approval."
}
}
그룹 구성원에 대한 오버라이드 플래그 설정
기본적으로 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에서 지정한 값으로 재설정할 수 있도록 허용합니다.
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
를 사용합니다.
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
}
]
프로젝트에 그룹 액세스 부여
그룹과 프로젝트 공유하기를 참조하세요.