초대 API
초대 API를 사용하여 사용자 그룹이나 프로젝트에 사용자를 초대하거나 추가하고, 대기 중인 초대 목록을 확인할 수 있습니다.
유효한 접근 수준
초대를 보내려면 이메일을 보내는 프로젝트나 그룹에 대한 접근 권한이 있어야 합니다. 유효한 접근 수준은 Gitlab::Access 모듈에 정의되어 있습니다. 현재 유효한 수준은 다음과 같습니다:
- 접근 없음 (0)
- 최소 접근 (5)
- 게스트 (10)
- 리포터 (20)
- 개발자 (30)
- 운영자 (40)
- 소유자 (50)
그룹 또는 프로젝트에 구성원 추가
새 구성원을 추가합니다. 사용자 ID를 지정하거나 이메일로 사용자를 초대할 수 있습니다.
POST /groups/:id/invitations  
POST /projects/:id/invitations  
| 속성 | 유형 | 필수 | 설명 | 
|---|---|---|---|
| id | integer/string | 예 | 프로젝트 또는 그룹의 ID 또는 URL 인코딩된 경로 | 
| email | string | 예 (если user_id가 제공되지 않음) | 새 구성원의 이메일 또는 쉼표로 구분된 여러 이메일. | 
| user_id | integer/string | 예 (если email이 제공되지 않음) | 새 구성원의 ID 또는 쉼표로 구분된 여러 ID. | 
| access_level | integer | 예 | 유효한 접근 수준 | 
| expires_at | string | 아니오 | YEAR-MONTH-DAY 형식의 날짜 문자열 | 
| invite_source | string | 아니오 | 구성원 생성을 시작하는 초대의 출처. 이 문제를 참조하세요. | 
| member_role_id | integer | 아니오 | 제공된 사용자 정의 역할에 새 구성원을 할당합니다. (소개) 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"
}  
그룹 또는 프로젝트에 대해 대기 중인 모든 초대장 목록
인증된 사용자가 볼 수 있는 초대한 그룹 또는 프로젝트 구성원의 목록을 가져옵니다.
상속된 조상의 그룹을 통해 초대한 구성원이 아닌 직접 구성원에 대한 초대장을 반환합니다.
이 함수는 회원 목록을 제한하기 위해 페이지 매개변수 page와 per_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가 반환됩니다.
 도움말
        도움말