그룹 서비스 계정
Tier: Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
서비스 계정을 REST API를 사용하여 상호 작용합니다.
전제 조건:
- 자체 관리형 인스턴스의 관리자이거나 GitLab.com 그룹의 소유자 역할이어야 합니다.
서비스 계정 사용자 목록
- GitLab 17.1에서 소개되었습니다.
그룹에서 할당된 모든 서비스 계정 사용자를 나열합니다.
이 함수는 page
및 per_page
페이징 매개변수를 사용하여 사용자 목록을 제한합니다.
GET /groups/:id/service_accounts
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 대상 그룹의 ID 또는 URL 인코딩된 경로. |
order_by
| 문자열 | 아니오 | 사용자 목록을 username 또는 id 로 정렬합니다. 기본값은 id 입니다.
|
sort
| 문자열 | 아니오 |
asc 또는 desc 로 정렬을 지정합니다. 기본값은 desc 입니다.
|
예시 요청:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/345/service_accounts"
예시 응답:
[
{
"id": 57,
"username": "service_account_group_345_<random_hash>",
"name": "Service account user"
},
{
"id": 58,
"username": "service_account_group_346_<random_hash>",
"name": "Service account user"
}
]
서비스 계정 사용자 생성
- GitLab 16.1에서 소개되었습니다.
- 사용자 이름 또는 이름을 지정할 수 있는 기능은 GitLab 16.10에서 소개되었습니다.
서비스 계정 사용자를 생성합니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 서브그룹에서는 작동하지 않습니다.
POST /groups/:id/service_accounts
지원되는 속성:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 대상 그룹의 ID 또는 URL 인코딩된 경로. |
name
| 문자열 | 아니오 | 사용자의 이름입니다. 지정하지 않으면 기본 Service account user 이름이 사용됩니다.
|
username
| 문자열 | 아니오 | 사용자의 사용자 이름입니다. 지정하지 않으면 자동으로 생성됩니다. |
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/345/service_accounts"
예시 응답:
{
"id": 57,
"username": "service_account_group_345_6018816a18e515214e0c34c2b33523fc",
"name": "Service account user"
}
서비스 계정 사용자 삭제
- GitLab 17.1에서 소개되었습니다.
서비스 계정 사용자를 삭제합니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 서브그룹에서는 작동하지 않습니다.
DELETE /groups/:id/service_accounts/:user_id
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 대상 그룹의 ID 또는 URL 인코딩된 경로. |
user_id
| 정수 | 예 | 서비스 계정 사용자의 ID. |
hard_delete
| 부울 | 아니오 | 참이면 일반적으로 Ghost User로 이동될 기여 사항이 해당 사용자만 소유한 그룹과 함께 삭제됩니다. |
예시 요청:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/345/service_accounts/181"
서비스 계정 사용자를 위한 개인 액세스 토큰 생성
- GitLab 16.1에서 소개되었습니다.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 서브그룹에서는 작동하지 않습니다.
POST /groups/:id/service_accounts/:user_id/personal_access_tokens
매개변수:
속성 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
id
| 정수/문자열 | 예 | 대상 그룹의 ID 또는 URL 인코딩된 경로. |
user_id
| 정수 | 예 | 서비스 계정 사용자의 ID. |
name
| 문자열 | 예 | 개인 액세스 토큰의 이름. |
scopes
| 배열 | 예 | 가능한 값에 대한 개인 액세스 토큰 스코프의 배열입니다. |
expires_at
| 날짜 | 아니오 | 개인 액세스 토큰 만료 날짜입니다. 비워 두면 토큰은 개인 액세스 토큰 만료에 대한 기본 규칙을 따릅니다. 만료 날짜를 지정하지 않으려면이 값을 null 로 설정합니다.
|
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/35/service_accounts/71/personal_access_tokens" --data "scopes[]=api,read_user,read_repository" --data "name=service_accounts_token"
예시 응답:
{
"id":6,
"name":"service_accounts_token",
"revoked":false,
"created_at":"2023-06-13T07:47:13.900Z",
"scopes":["api"],
"user_id":71,
"last_used_at":null,
"active":true,
"expires_at":"2024-06-12",
"token":"<token_value>"
}
서비스 계정 사용자의 개인 액세스 토큰 회전
- 소개됨 GitLab 16.1에서.
이 API 엔드포인트는 최상위 그룹에서만 작동합니다. 하위 그룹에서는 작동하지 않습니다.
POST /groups/:id/service_accounts/:user_id/personal_access_tokens/:token_id/rotate
매개변수:
속성 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
id
| integer/string | yes | 대상 그룹의 ID 또는 URL 인코딩 된 경로. |
user_id
| integer | yes | 서비스 계정 사용자의 ID. |
token_id
| integer | yes | 토큰의 ID. |
예시 요청:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/35/service_accounts/71/personal_access_tokens/6/rotate"
예시 응답:
{
"id":7,
"name":"service_accounts_token",
"revoked":false,
"created_at":"2023-06-13T07:54:49.962Z",
"scopes":["api"],
"user_id":71,
"last_used_at":null,
"active":true,
"expires_at":"2023-06-20",
"token":"<token_value>"
}