그룹 서비스 계정

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

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

필수 조건:

  • 당신은 Self-managed 인스턴스의 관리자이거나, GitLab.com 그룹의 소유자 역할을 가져야 합니다.

서비스 계정 사용자 목록

그룹에서 프로비저닝한 모든 서비스 계정 사용자를 나열합니다.

이 함수는 사용자 목록을 제한하기 위해 pageper_page 페이지 매개변수를 사용합니다.

GET /groups/:id/service_accounts  

매개변수:

속성 유형 필수 설명
id integer/string 대상 그룹의 ID 또는 URL 인코딩 경로.
order_by string 아니요 사용자를 username 또는 id로 정렬합니다. 기본값은 id입니다.
sort string 아니요 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 integer/string 대상 그룹의 ID 또는 URL 인코딩 경로.
name string 아니요 사용자의 이름. 지정되지 않은 경우 기본 Service account user 이름이 사용됩니다.
username string 아니요 사용자의 사용자 이름. 지정되지 않은 경우 자동으로 생성됩니다.

예제 요청:

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 integer/string 대상 그룹의 ID 또는 URL 인코딩 경로입니다.
user_id integer 서비스 계정 사용자의 ID입니다.
hard_delete boolean 아니요 true인 경우, 일반적으로 Ghost 사용자로 이동되는 기여가 삭제되며, 이 서비스 계정 사용자가 단독으로 소유한 그룹도 삭제됩니다.

예제 요청:

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 integer/string 대상 그룹의 ID 또는 URL 인코딩 경로입니다.
user_id integer 서비스 계정 사용자의 ID입니다.
name string 개인 액세스 토큰의 이름입니다.
scopes array 개인 액세스 토큰의 범위 배열입니다. 개인 액세스 토큰 범위를 참조하여 가능한 값을 확인하세요.
expires_at date 아니요 개인 액세스 토큰 만료 날짜입니다. 비워두면, 토큰은 개인 액세스 토큰에 대한 표준 만료 규칙을 따릅니다. 만료일이 없도록 지정하려면 이 값을 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 정수/문자열 대상 그룹의 ID 또는 URL 인코딩된 경로입니다.
user_id 정수 서비스 계정 사용자의 ID입니다.
token_id 정수 토큰의 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>"
}