그룹 및 프로젝트 구성원 API

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

created_by 필드는 GitLab 14.10에서 도입되었습니다.

역할

사용자 또는 그룹에 할당된 역할access_levelGitlab::Access 모듈에서 정의됩니다.

  • 액세스 없음 (0)
  • 최소한의 액세스 (5) (GitLab 13.5에서 도입.)
  • 게스트(10)
  • 보고자(20)
  • 개발자(30)
  • 유지자(40)
  • 소유자(50). GitLab 14.9 및 그 이후 프로젝트에 유효합니다.

참고: GitLab 14.9 및 그 이후에는 개인 네임스페이스의 프로젝트에 대해 access_level50(소유자)입니다. GitLab 14.8 및 그 이전에는 개인 네임스페이스의 프로젝트에 대해 이 문제로 인해 access_level40(유지자)입니다.

제한 사항

group_saml_identity 속성은 SSO 활성화된 그룹의 그룹 소유자만 볼 수 있습니다.

이메일 속성은 그룹의 엔터프라이즈 사용자에게만 API 요청이 해당 그룹 자체 또는 해당 그룹의 하위 그룹 또는 프로젝트로 전송될 때 그룹 소유자에게만 보입니다.

그룹 또는 프로젝트의 모든 구성원 나열

인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 구성원의 목록을 가져옵니다. 직접 멤버만 반환하며 상위 그룹을 통해 상속된 멤버는 반환하지 않습니다.

이 함수는 페이지네이션 매개변수 pageper_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에서 향상됨.) 이는 사용자의 유효한 권한을 나타냅니다.

초대된 그룹의 구성원은 다음 중 하나인 경우 반환됩니다:

  • 초대된 그룹이 공개 상태인 경우.
  • 요청자가 초대된 그룹의 구성원인 경우.

이 함수는 페이지네이션 파라미터 pageper_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
}

그룹 또는 프로젝트 멤버 가져오기(상속 및 초대된 멤버 포함)

그룹 또는 프로젝트의 멤버를 가져오며, 조상 그룹을 통해 상속되거나 초대된 멤버를 포함합니다. 자세한 내용은 상속된 멤버의 목록을 보는 엔드포인트를 참조하십시오.

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 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.

이 함수는 사용자 목록을 제한하는 페이지네이션(pagination) 매개변수 pageper_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"
  }
]

그룹의 요금 청구 대상 멤버십 목록

그룹의 요금 청구 대상 멤버십 목록을 가져옵니다.

사용자가 속한 모든 프로젝트와 그룹 목록을 나열합니다. 그룹 계층 내의 프로젝트 및 그룹만 포함됩니다. 예를 들어, 요청된 그룹이 루트 그룹이고, 요청된 사용자가 루트 그룹 / 서브 그룹 1다른 그룹 / 서브 그룹 2 모두에 직접 속한 경우 루트 그룹 / 서브 그룹 1만 반환됩니다. 왜냐하면 다른 그룹 / 서브 그룹 2루트 그룹 계층 내에 없기 때문입니다.

응답은 직접 멤버십만 나타냅니다. 상속된 멤버십은 포함되지 않습니다.

이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.

이 API 엔드포인트에는 그룹의 멤버십을 관리할 수 있는 권한이 필요합니다.

이 API 엔드포인트는 멤버십 목록을 제한하기 위해 페이지네이션 매개변수 pageper_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"

그룹에서 사용자의 멤버십 상태 변경

그룹 내 사용자의 멤버십 상태를 변경합니다. 상태는 모든 하위 그룹 및 프로젝트에 적용됩니다.

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
}

그룹 멤버의 재정의 플래그 설정

기본적으로 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
}

그룹 멤버의 재정의 제거

재정의 플래그를 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"

그룹 및 해당 하위 그룹 및 프로젝트의 대기 중인 멤버 목록

History

그룹과 해당 하위 그룹 및 프로젝트에 대해 대기 중 상태와 GitLab 계정이 없지만 초대된 모든 멤버의 목록을 가져옵니다.

이 요청은 루트 그룹의 계층 구조에서 모든 그룹 및 프로젝트 멤버를 반환합니다.

멤버가 아직 GitLab 계정에 가입하지 않은 초대된 사용자인 경우 초대된 이메일 주소가 반환됩니다.

이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.

이 API 엔드포인트는 그룹의 멤버를 관리하기 위한 권한이 필요합니다.

이 API 엔드포인트는 페이지네이션 매개변수 pageper_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
  }
]

프로젝트에 그룹 액세스 권한 부여

그룹과 프로젝트 공유를 참조하세요.