그룹 서비스 계정

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

서비스 계정을 REST API를 사용하여 상호 작용합니다.

전제 조건:

  • 자체 관리형 인스턴스의 관리자이거나 GitLab.com 그룹의 소유자 역할이어야 합니다.

서비스 계정 사용자 목록

그룹에서 할당된 모든 서비스 계정 사용자를 나열합니다.

이 함수는 pageper_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"
}

서비스 계정 사용자 삭제

서비스 계정 사용자를 삭제합니다.

이 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"

서비스 계정 사용자를 위한 개인 액세스 토큰 생성

이 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>"
}

서비스 계정 사용자의 개인 액세스 토큰 회전

이 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>"
}