초대 API

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

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

유효한 액세스 수준

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

  • 액세스 없음 (0)
  • 최소한의 액세스 (5) (소개됨 in GitLab 13.5)
  • 게스트 (10)
  • 기고자 (20)
  • 개발자 (30)
  • 유지자 (40)
  • 소유자 (50). GitLab 14.9 이후의 프로젝트에 유효함.
note
GitLab 14.9 이후, 프로젝트는 최대 소유자 역할을 갖습니다. 알려진 문제로 인해, GitLab 14.8 및 이전 버전의 프로젝트는 최대 유지자 역할을 갖습니다.

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

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

POST /groups/:id/invitations
POST /projects/:id/invitations
속성 유형 필수 설명
id 정수/문자열 인증된 사용자가 소유하는 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로
email 문자열 예 (만약 user_id가 제공되지 않으면) 새 멤버의 이메일 또는 쉼표로 구분된 여러 이메일
user_id 정수/문자열 예 (만약 email이 제공되지 않으면) 새 멤버의 ID 또는 쉼표로 구분된 여러 ID. GitLab 14.10에서 도입됨
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": "Invite email has already been taken",
               "test2@example.com": "User already exists in source",
               "test_username": "Access level is not included in the list"
             }
}

그룹 또는 프로젝트에 대기 중인 모든 초대 나열

인증된 사용자가 볼 수 있는 그룹 또는 프로젝트 멤버의 초대 디렉터리을 가져옵니다. 직속 조상의 그룹을 통해 아닌 직접 멤버에게 초대를 제공합니다.

이 함수는 멤버 디렉터리을 제한하기 위해 페이지네이션 매개변수 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": "Administrator"
   },
]

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

대기 중인 초대의 액세스 수준 또는 액세스 만료 날짜를 업데이트합니다.

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 반환