초대 API

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

그룹 또는 프로젝트에 사용자를 초대하거나 추가하고 보류 중인 초대 목록을 나열하는 데 초대 API를 사용합니다.

유효한 액세스 수준

초대를 보내려면 해당 이메일을 보낼 프로젝트 또는 그룹에 액세스해야 합니다. 유효한 액세스 수준은 Gitlab::Access 모듈에서 정의됩니다. 현재 다음 수준이 유효합니다:

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

그룹 또는 프로젝트에 멤버 추가

새 멤버를 추가합니다. 사용자 ID를 지정하거나 이메일로 사용자를 초대할 수 있습니다.

POST /groups/:id/invitations
POST /projects/:id/invitations
속성 유형 필수 설명
id 정수/문자열 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로
email 문자열 예 (만약 user_id가 제공되지 않는 경우) 새 멤버의 이메일 또는 쉼표로 구분된 여러 이메일
user_id 정수/문자열 예 (만약 email이 제공되지 않는 경우) 새 멤버의 ID 또는 쉼표로 구분된 여러 ID
access_level 정수 유효한 액세스 수준
expires_at 문자열 아니요 연도-월-일 형식의 날짜 문자열
invite_source 문자열 아니요 멤버 생성 프로세스를 시작하는 초대의 소스. 관련 이슈를 참조하세요(이 문제).
member_role_id 정수 아니요 새 멤버를 제공된 사용자 정의 역할에 할당합니다. (소개됨) GitLab 16.6에서. Ultimate 전용.
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "email=test@example.com&user_id=1&access_level=30" "https://gitlab.example.com/api/v4/groups/:id/invitations"
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     --data "email=test@example.com&user_id=1&access_level=30" "https://gitlab.example.com/api/v4/projects/:id/invitations"

예시 응답:

모든 이메일이 성공적으로 전송된 경우:

{  "status":  "success"  }

이메일을 보내는 중에 오류가 있는 경우:

{
  "status": "error",
  "message": {
               "test@example.com": "초대 이메일을 이미 사용 중입니다",
               "test2@example.com": "사용자가 이미 소스에 존재합니다",
               "test_username": "액세스 수준이 목록에 포함되어 있지 않습니다"
             }
}

참고: 설정 비과금 프로모션 관리가 활성화되어 있는 경우, 과금이 발생하는 역할을 가진 새로 초대된 멤버는 관리자의 승인을 받아야 합니다.

비과금 프로모션 관리를 활성화하려면 먼저 enable_member_promotion_management 응용 프로그램 설정을 활성화해야 합니다.

예시 응답:

{
  "queued_users": {
    "username_1": "관리자 승인 대기열에 요청됨."
  },
  "status": "success"
}

그룹 또는 프로젝트에 보류 중인 모든 초대 목록 나열

인증된 사용자가 볼 수 있는 초대된 그룹 또는 프로젝트 멤버의 목록을 가져옵니다. 직접 멤버에게만 초대를 반환하며 계보 상위 그룹을 통해 제공되지 않습니다.

이 함수는 멤버 목록을 제한하기 위해 페이지네이션 매개변수 pageper_page를 사용합니다.

GET /groups/:id/invitations
GET /projects/:id/invitations
속성 유형 필수 설명
id 정수/문자열 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로
page 정수 아니요 검색할 페이지
per_page 정수 아니요 페이지당 반환할 멤버 초대 수
query 문자열 아니요 초대된 멤버를 초대 이메일로 검색하기 위한 질의 문자열. 쿼리 텍스트는 이메일 주소와 정확히 일치해야 합니다. 비어 있으면 모든 초대를 반환합니다.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/invitations?query=member@example.org"
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/invitations?query=member@example.org"

예시 응답:

 [
   {
     "id": 1,
     "invite_email": "member@example.org",
     "created_at": "2020-10-22T14:13:35Z",
     "access_level": 30,
     "expires_at": "2020-11-22T14:13:35Z",
     "user_name": "Raymond Smith",
     "created_by_name": "관리자"
   },
]

그룹 또는 프로젝트 초대 수정

보류 중인 초대의 액세스 수준이나 액세스 만료 날짜를 업데이트합니다.

PUT /groups/:id/invitations/:email
PUT /projects/:id/invitations/:email
속성 유형 필수 설명
id 정수/문자열 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로.
email 문자열 초대를 이전에 보낸 이메일 주소.
access_level 정수 아니요 유효한 액세스 수준 (기본값: 30, 개발자 역할).
expires_at 문자열 아니요 ISO 8601 형식(YYYY-MM-DDTHH:MM:SSZ)의 날짜 문자열
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/55/invitations/email@example.org?access_level=40"
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/55/invitations/email@example.org?access_level=40"

예시 응답:

{
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 40,
}

그룹 또는 프로젝트로 초대장 삭제

이메일 주소를 통해 보류 중인 초대장을 삭제합니다.

DELETE /groups/:id/invitations/:email
DELETE /projects/:id/invitations/:email
속성 유형 필수 설명
id 정수/문자열 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로
email 문자열 이전에 초대장을 보냈던 이메일 주소
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/55/invitations/email@example.org"
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/55/invitations/email@example.org"
  • 성공시 204와 내용이 없이 반환됩니다.
  • 삭제 권한이 없는 경우 403이 반환됩니다.
  • 허가된 상태에서 해당 이메일 주소에 대한 초대장이 없는 경우 404가 반환됩니다.
  • 요청이 유효하지만 초대장을 삭제할 수 없는 경우 409가 반환됩니다.