초대 API
그룹이나 프로젝트에 사용자를 초대하거나 추가하고 보류 중인 초대를 나열하는 데 Invitations API를 사용합니다.
유효한 액세스 레벨
초대를 보내려면 해당 이메일을 보낼 프로젝트 또는 그룹에 대한 액세스가 있어야 합니다. 유효한 액세스 레벨은 Gitlab::Access
모듈에서 정의됩니다. 현재 유효한 레벨은 다음과 같습니다:
- 액세스 없음 (
0
) - 최소한의 액세스 (
5
) (GitLab 13.5에서 도입됨) - 게스트 (
10
) - 기고자 (
20
) - 개발자 (
30
) - 유지자 (
40
) - 소유자 (
50
). GitLab 14.9 및 이후의 프로젝트에서 유효.
참고: 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": "초대 이메일이 이미 사용 중입니다",
"test2@example.com": "사용자가 소스에 이미 존재합니다",
"test_username": "액세스 레벨이 목록에 포함되어 있지 않습니다"
}
}
그룹 또는 프로젝트에 대기 중인 모든 초대 나열
인증된 사용자가 볼 수 있는 초대된 그룹 또는 프로젝트 멤버 목록을 얻습니다. 직접 멤버에 대한 초대를 반환하며, 상속된 조상 그룹을 통한 멤버는 포함하지 않습니다.
이 기능은 멤버 목록을 제한하는 페이지네이션 매개변수 page
와 per_page
를 취합니다.
GET /groups/:id/invitations
GET /projects/:id/invitations
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 인증된 사용자가 소유한 프로젝트나 그룹의 ID 또는 URL 인코딩된 경로 |
page
| integer | 아니요 | 검색할 페이지 |
per_page
| integer | 아니요 | 페이지 당 반환할 멤버 초대 수 |
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
가 반환됩니다.