그룹 및 프로젝트 멤버 API

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

역할

사용자 또는 그룹에 할당된 역할access_level로 정의됩니다.

  • 접근 없음 (0)
  • 최소한의 접근 권한 (5)
  • 게스트 (10)
  • 기고자 (20)
  • 개발자 (30)
  • 유지자 (40)
  • 소유자 (50)

제한 사항

group_saml_identity 속성은 SSO 활성화 그룹의 그룹 소유자에게만 표시됩니다.

email 속성은 그룹의 기업 사용자에 대해 API 요청이 해당 그룹 자체나 해당 그룹의 하위 그룹 또는 프로젝트로 전송될 때에 그룹 소유자에게만 표시됩니다.

그룹 또는 프로젝트의 모든 멤버 나열

인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 멤버의 디렉터리을 가져옵니다. 상속 멤버가 아니라 직접 멤버만 반환합니다.

이 함수는 페이지네이션 매개변수 pageper_page를 사용하여 사용자 디렉터리을 제한합니다.

GET /groups/:id/members
GET /projects/:id/members
속성 유형 필수 여부 설명
id integer/string 인증된 사용자가 소유한 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로
query string 아니요 멤버를 검색하는 쿼리 문자열
user_ids integer의 배열 아니요 결과를 주어진 사용자 ID로 필터링합니다.
skip_users integer의 배열 아니요 결과에서 건너 뛴 사용자를 필터링합니다.
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
    }
  }
]

상속 및 초청된 멤버를 포함한 그룹 또는 프로젝트의 모든 멤버 디렉터리

  • GitLab 16.10부터 웹 UI 멤버 상속 사용자라는 플래그로 변경되어 현재 사용자가 공유된 그룹 또는 프로젝트의 멤버이면 초대된 비공개 그룹의 멤버를 반환하도록 변경되었습니다. 기본값으로 비활성화됩니다.
  • 피처 플래그 webui_members_inherited_users는 GitLab 17.0에서 GitLab.com 및 Self-Managed형에서 사용 가능하도록 허용된 상태로 변경됐습니다.

플래그: Self-Managed형 GitLab에서는 기본적으로 이 기능을 사용할 수 있습니다. 사용자 당 기능을 숨기려면 관리자가 webui_members_inherited_users라는 피처 플래그를 비활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서 이 기능을 사용할 수 있습니다.

인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 멤버의 디렉터리을 가져오며, 상속된 멤버, 초청된 사용자 및 조상 그룹을 통한 권한을 포함합니다.

사용자가 이 그룹 또는 프로젝트의 멤버이고 하나 이상의 상위 그룹의 멤버이면, 가장 높은 access_level을 가진 멤버십만 반환됩니다. 이는 사용자의 유효한 권한을 나타냅니다.

초대된 그룹의 멤버는 다음의 경우에 반환됩니다:

  • 초대된 그룹이 공개인 경우
  • 요청자가 초대된 그룹의 멤버이기도 한 경우
  • 요청자가 공유된 그룹 또는 프로젝트의 멤버일 때
note
초대된 그룹 멤버는 공유된 그룹 또는 프로젝트의 공동 멤버입니다. 즉, 요청자가 공유된 그룹 또는 프로젝트의 멤버이지만 초대된 비공개 그룹의 멤버는 아닌 경우, 이 엔드포인트를 사용하여 요청자는 공유된 그룹 또는 프로젝트 멤버뿐 아니라 초대된 비공개 그룹 멤버를 모두 얻을 수 있습니다.

이 함수는 페이지네이션 매개변수 pageper_page를 사용하여 사용자 디렉터리을 제한합니다.

GET /groups/:id/members/all
GET /projects/:id/members/all
속성 유형 필수 여부 설명
id integer/string 인증된 사용자가 소유한 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로
query string 아니요 멤버를 검색하는 쿼리 문자열
user_ids integer의 배열 아니요 결과를 주어진 사용자 ID로 필터링합니다.
show_seat_info 부울 아니요 사용자의 좌석 정보 표시
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-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에서는 기본적으로 이 기능이 사용 가능합니다. 사용자별로 기능을 숨기려면 관리자가 webui_members_inherited_users라는 피처 플래그를 비활성화할 수 있습니다. GitLab.com 및 GitLab Dedicated에서는 이 기능을 사용할 수 있습니다.

상속되거나 조상 그룹을 통해 초대된 구성원을 포함한 그룹 또는 프로젝트의 구성원을 가져옵니다. 자세한 내용은 상속된 구성원을 나열하는 해당 엔드포인트를 참조하십시오.

note
초대된 그룹 구성원은 공유된 그룹이나 프로젝트의 공동 구성원입니다. 요청자가 공유된 그룹이나 프로젝트의 구성원이지만 초대된 비공개 그룹의 구성원이 아닌 경우, 이 엔드포인트를 사용하여 공유된 그룹 또는 프로젝트 구성원과 초대된 비공개 그룹 구성원을 모두 가져올 수 있습니다.
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 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에는 작동하지 않습니다.

이 기능은 페이징 매개변수 pageper_page를 사용하여 사용자 디렉터리을 제한합니다.

search 매개변수를 사용하여 이름으로 청구 가능한 그룹 구성원을 검색하고, 결과를 정렬하려면 sort를 사용하십시오.

GET /groups/:id/billable_members
속성 유형 필수 설명
id 정수/문자열 인증된 사용자 소유의 그룹의 ID 또는 URL-인코딩된 경로
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"
  }
]

그룹의 과금 가능한 회원의 멤버십 디렉터리

그룹의 과금 가능한 회원의 멤버십 디렉터리을 가져옵니다.

사용자가 소속된 모든 프로젝트와 그룹을 나열합니다. 그룹 계층 내의 프로젝트 및 그룹만 포함됩니다. 예를 들어 요청된 그룹이 루트 그룹이고 요청된 사용자가 루트 그룹 / 서브 그룹 원다른 그룹 / 서브 그룹 투 두 곳에 직접 소속되어 있다면 다른 그룹 / 서브 그룹 투루트 그룹 계층 내에 포함되지 않기 때문에 루트 그룹 / 서브 그룹 원만 반환됩니다.

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

이 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": "루트 그룹 / 서브 그룹 원",
    "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": "개발자",
      "integer_value": 30
    }
  },
  {
    "id": 169,
    "source_id": 63,
    "source_full_name": "루트 그룹 / 서브 그룹 원 / 내 프로젝트",
    "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": "유지관리자",
      "integer_value": 40
    }
  }
]

그룹의 과금 가능한 회원의 간접적인 멤버십 디렉터리

상태: 실험 중

그룹의 과금 가능한 회원의 간접적인 멤버십 디렉터리을 가져옵니다.

요청된 루트 그룹에 초대된 사용자가 소속된 모든 프로젝트와 그룹을 나열합니다. 예를 들어 요청된 그룹이 루트 그룹이고 요청된 사용자가 루트 그룹에 초대된 다른 그룹 / 서브 그룹 투의 직접적인 멤버라면 다른 그룹 / 서브 그룹 투만 반환됩니다.

응답은 간접적인 멤버십만 나열합니다. 직접적인 멤버십은 포함되지 않습니다.

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

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

이 API 엔드포인트는 멤버십 디렉터리을 제한하는 페이지네이션 매개변수 pageper_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": "초대된 그룹 / 서브 그룹 원",
    "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": "개발자",
      "integer_value": 30
    }
  }
]

그룹 또는 프로젝트 멤버 수정

그룹 또는 프로젝트의 멤버를 업데이트합니다.

PUT /groups/:id/members/:user_id
PUT /projects/:id/members/:user_id
속성 유형 필수 설명
id integer/string yes 인증된 사용자가 소유한 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로
user_id integer yes 멤버의 사용자 ID
access_level integer yes 유효한 액세스 레벨
expires_at string no YEAR-MONTH-DAY 형식의 날짜 문자열
member_role_id integer no 멤버 역할의 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 인증된 사용자가 소유한 프로젝트 또는 그룹의 ID 또는 URL-인코딩된 경로
user_id integer yes 멤버의 사용자 ID
skip_subresources boolean false 제거된 멤버의 하위그룹 및 프로젝트에서의 직접 멤버십 삭제를 건너뛰어야 하는지 여부입니다. 기본값은 false입니다.
unassign_issuables boolean false 제거된 멤버가 주어진 그룹 또는 프로젝트 내의 이슈 또는 Merge Request에서 할당 해제되어야 하는지 여부입니다. 기본값은 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 엔드포인트는 멤버 디렉터리을 제한하는 페이지 네이션 매개변수 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
  }
]

프로젝트에 그룹 접근 권한 부여

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