러너 API
Offering: GitLab Self-Managed, GitLab Dedicated
이 API를 사용하여 인스턴스에 등록된 러너를 관리합니다. 새로운 인스턴스, 그룹 또는 프로젝트 러너를 만들려면 POST /user/runners 엔드포인트를 사용하세요. 다음 API 엔드포인트에서 페이지네이션을 사용할 수 있습니다(기본적으로 20개 항목 반환):
이 API를 사용하여 인스턴스에 등록된 러너를 관리합니다.
새로운 인스턴스, 그룹 또는 프로젝트 러너를 만들려면 POST /user/runners 엔드포인트를 사용하세요.
이 API를 사용하여 기존 러너를 관리합니다.
다음 API 엔드포인트에서 페이지네이션을 사용할 수 있습니다(기본적으로 20개 항목 반환):
GET /runners
GET /runners/all
GET /runners/:id/jobs
GET /projects/:id/runners
GET /groups/:id/runners
등록 및 인증 토큰#
러너를 GitLab에 연결하려면 두 개의 토큰이 필요합니다.
| 토큰 | 설명 |
|---|---|
| 등록 토큰 (레거시) | 러너를 등록하는 데 사용되는 토큰입니다. GitLab을 통해 얻을 수 있습니다. |
| 인증 토큰 | GitLab 인스턴스로 러너를 인증하는 데 사용되는 토큰입니다. 러너를 등록하거나, 러너 API에서 러너를 만들거나 인증 토큰을 재설정할 때 자동으로 토큰을 얻습니다. POST /user/runners 엔드포인트를 사용하여 토큰을 얻을 수도 있습니다. |
러너 등록에 토큰을 사용하는 방법의 예시:
-
등록 토큰과 함께 GitLab API를 사용하여 러너를 등록하면 인증 토큰이 반환됩니다.
-
인증 토큰을 러너의 구성 파일에 추가합니다:
[[runners]] token = "<authentication_token>"
그런 다음 GitLab과 러너가 연결됩니다.
사용 가능한 모든 러너 목록#
사용자가 사용 가능한 모든 러너를 나열합니다.
사전 요구 사항:
- 그룹 러너의 경우, 소유자 네임스페이스에서 Owner 권한이 있어야 합니다.
- 프로젝트 러너의 경우, 러너에 할당된 프로젝트에서 Security Manager, Maintainer 또는 Owner 권한이 있어야 합니다.
GET /runners
GET /runners?scope=active
GET /runners?type=project_type
GET /runners?status=online
GET /runners?paused=true
GET /runners?tag_list=tag1,tag2
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
scope |
string | 아니요 | 사용 중단됨: 대신 type 또는 status를 사용하세요. 반환할 러너의 범위로, active, paused, online, offline 중 하나; 아무것도 제공되지 않으면 모든 러너를 표시합니다 |
type |
string | 아니요 | 반환할 러너의 유형으로, instance_type, group_type, project_type 중 하나 |
status |
string | 아니요 | 반환할 러너의 상태로, online, offline, stale, 또는 never_contacted 중 하나.다른 가능한 값은 사용 중단된 active 및 paused입니다.offline 러너를 요청하면 stale이 offline에 포함되어 있으므로 stale 러너도 반환될 수 있습니다. |
paused |
boolean | 아니요 | 새 job을 수락하거나 무시하는 러너만 포함할지 여부 |
tag_list |
string array | 아니요 | 러너 태그 목록 |
version_prefix |
string | 아니요 | 반환할 러너 버전의 접두사입니다. 예: 15.0, 14, 16.1.241 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners"
사용 중단:
status쿼리 매개변수의active및paused값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused쿼리 매개변수를 사용하세요.- 응답의
active속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused속성을 사용하세요. - 응답의
ip_address속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다.ipAddress속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQLCiRunnerManager유형을 통해서만 사용할 수 있습니다.
응답 예시:
[
{
"active": true,
"paused": false,
"description": "test-1-20150125",
"id": 6,
"ip_address": "",
"is_shared": false,
"runner_type": "project_type",
"name": null,
"online": true,
"status": "online",
"job_execution_status": "idle"
},
{
"active": true,
"paused": false,
"description": "test-2-20150125",
"id": 8,
"ip_address": "",
"is_shared": false,
"runner_type": "group_type",
"name": null,
"online": false,
"status": "offline",
"job_execution_status": "idle"
}
]
모든 러너 목록#
GitLab 인스턴스의 모든 러너(프로젝트 및 공유)를 나열합니다.
사전 요구 사항:
- 관리자 접근 권한 또는 감사인 접근 권한이 있어야 합니다.
GET /runners/all
GET /runners/all?scope=online
GET /runners/all?type=project_type
GET /runners/all?status=online
GET /runners/all?paused=true
GET /runners/all?tag_list=tag1,tag2
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
scope |
string | 아니요 | 사용 중단됨: 대신 type 또는 status를 사용하세요. 반환할 러너의 범위로, specific, shared, active, paused, online, offline 중 하나; 아무것도 제공되지 않으면 모든 러너를 표시합니다 |
type |
string | 아니요 | 반환할 러너의 유형으로, instance_type, group_type, project_type 중 하나 |
status |
string | 아니요 | 반환할 러너의 상태로, online, offline, stale, 또는 never_contacted 중 하나.다른 가능한 값은 사용 중단된 active 및 paused입니다.offline 러너를 요청하면 stale이 offline에 포함되어 있으므로 stale 러너도 반환될 수 있습니다. |
paused |
boolean | 아니요 | 새 job을 수락하거나 무시하는 러너만 포함할지 여부 |
tag_list |
string array | 아니요 | 러너 태그 목록 |
version_prefix |
string | 아니요 | 반환할 러너 버전의 접두사입니다. 예: 15.0, 16.1.241 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/all"
사용 중단:
status쿼리 매개변수의active및paused값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused쿼리 매개변수를 사용하세요.- 응답의
active속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused속성을 사용하세요. - 응답의
ip_address속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다.ipAddress속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQLCiRunnerManager유형을 통해서만 사용할 수 있습니다.
응답 예시:
[
{
"active": true,
"paused": false,
"description": "shared-runner-1",
"id": 1,
"ip_address": "",
"is_shared": true,
"runner_type": "instance_type",
"name": null,
"online": true,
"status": "online",
"job_execution_status": "idle"
},
{
"active": true,
"paused": false,
"description": "shared-runner-2",
"id": 3,
"ip_address": "",
"is_shared": true,
"runner_type": "instance_type",
"name": null,
"online": false,
"status": "offline",
"job_execution_status": "idle"
},
{
"active": true,
"paused": false,
"description": "test-1-20150125",
"id": 6,
"ip_address": "",
"is_shared": false,
"runner_type": "project_type",
"name": null,
"online": true,
"status": "paused",
"job_execution_status": "idle"
},
{
"active": true,
"paused": false,
"description": "test-2-20150125",
"id": 8,
"ip_address": "",
"is_shared": false,
"runner_type": "group_type",
"name": null,
"online": false,
"status": "offline",
"job_execution_status": "idle"
}
]
처음 20개 이상의 러너를 보려면 페이지네이션을 사용하세요.
러너의 세부 정보 조회#
러너의 세부 정보를 조회합니다.
인스턴스 러너 세부 정보는 이 엔드포인트를 통해 모든 인증된 사용자가 사용할 수 있습니다.
사전 요구 사항:
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- 그룹 러너의 경우: 소유자 네임스페이스에서 Maintainer 또는 Owner 권한.
- 프로젝트 러너의 경우: 러너를 소유한 프로젝트에서 Security Manager, Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
GET /runners/:id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 러너의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6"
사용 중단:
- 응답의
active속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused속성을 사용하세요. - 응답의
ip_address속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다.ipAddress속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQLCiRunnerManager유형을 통해서만 사용할 수 있습니다. - 응답의
version,revision,platform,architecture속성은 GitLab 17.0에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 동일한 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQLCiRunnerManager유형을 통해서만 사용할 수 있습니다.
응답 예시:
{
"active": true,
"paused": false,
"architecture": null,
"description": "test-1-20150125",
"id": 6,
"ip_address": "",
"is_shared": false,
"runner_type": "project_type",
"contacted_at": "2016-01-25T16:39:48.066Z",
"maintenance_note": null,
"name": null,
"online": true,
"status": "online",
"job_execution_status": "idle",
"platform": null,
"projects": [
{
"id": 1,
"name": "GitLab Community Edition",
"name_with_namespace": "GitLab.org / GitLab Community Edition",
"path": "gitlab-foss",
"path_with_namespace": "gitlab-org/gitlab-foss"
}
],
"revision": null,
"tag_list": [
"ruby",
"mysql"
],
"version": null,
"access_level": "ref_protected",
"maximum_timeout": 3600
}
러너의 세부 정보 업데이트#
러너의 세부 정보를 업데이트합니다.
PUT /runners/:id
사전 요구 사항:
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- 인스턴스 러너의 경우: GitLab 인스턴스에 대한 관리자 접근.
- 그룹 러너의 경우: 소유자 네임스페이스에서 Owner 권한.
- 프로젝트 러너의 경우: 러너에 할당된 프로젝트에서 Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 러너의 ID |
description |
string | 아니요 | 러너의 설명 |
active |
boolean | 아니요 | 사용 중단됨: 대신 paused를 사용하세요. 러너가 job을 받을 수 있는지 나타내는 플래그 |
paused |
boolean | 아니요 | 러너가 새 job을 무시해야 하는지 지정합니다 |
tag_list |
array | 아니요 | 러너의 태그 목록 |
run_untagged |
boolean | 아니요 | 러너가 태그 없는 job을 실행할 수 있는지 지정합니다 |
locked |
boolean | 아니요 | 러너가 잠겨 있는지 지정합니다 |
access_level |
string | 아니요 | 러너의 접근 수준; not_protected 또는 ref_protected |
maximum_timeout |
integer | 아니요 | 러너가 job을 실행할 수 있는 시간(초)을 제한하는 최대 타임아웃 |
maintenance_note |
string | 아니요 | 러너에 대한 자유 형식 유지보수 노트 (1024자) |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6" \
--form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2"
사용 중단:
active쿼리 매개변수는 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused속성을 사용하세요.- 응답의
ip_address속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다.ipAddress속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQLCiRunnerManager유형을 통해서만 사용할 수 있습니다.
응답 예시:
{
"active": true,
"architecture": null,
"description": "test-1-20150125-test",
"id": 6,
"ip_address": "",
"is_shared": false,
"runner_type": "group_type",
"contacted_at": "2016-01-25T16:39:48.066Z",
"maintenance_note": null,
"name": null,
"online": true,
"status": "online",
"job_execution_status": "idle",
"platform": null,
"projects": [
{
"id": 1,
"name": "GitLab Community Edition",
"name_with_namespace": "GitLab.org / GitLab Community Edition",
"path": "gitlab-foss",
"path_with_namespace": "gitlab-org/gitlab-foss"
}
],
"revision": null,
"tag_list": [
"ruby",
"mysql",
"tag1",
"tag2"
],
"version": null,
"access_level": "ref_protected",
"maximum_timeout": null
}
러너 일시 중지#
러너를 일시 중지합니다.
사전 요구 사항:
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- 인스턴스 러너의 경우: GitLab 인스턴스에 대한 관리자 접근.
- 그룹 러너의 경우: 소유자 네임스페이스에서 Owner 권한.
- 프로젝트 러너의 경우: 러너에 할당된 프로젝트에서 Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
PUT --form "paused=true" /runners/:runner_id
# --or--
# 사용 중단됨: 16.0에서 제거 예정
PUT --form "active=false" /runners/:runner_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
runner_id |
integer | 예 | 러너의 ID |
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
--form "paused=true" "https://gitlab.example.com/api/v4/runners/6"
# --or--
# 사용 중단됨: 16.0에서 제거 예정
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
--form "active=false" "https://gitlab.example.com/api/v4/runners/6"
active 폼 속성은 사용 중단되었으며
향후 REST API 버전에서 제거될 예정입니다.
대신 paused 속성을 사용하세요.
러너가 처리한 모든 job 목록#
지정된 러너가 처리 중이거나 처리했던 모든 job을 나열합니다. job 목록은 사용자가 Reporter, Developer, Maintainer, 또는 Owner 권한을 가진 프로젝트로 제한됩니다.
GET /runners/:id/jobs
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 러너의 ID |
system_id |
string | 아니요 | 러너 매니저가 실행 중인 머신의 시스템 ID |
status |
string | 아니요 | job의 상태; running, success, failed, canceled 중 하나 |
order_by |
string | 아니요 | id로 job 정렬 |
sort |
string | 아니요 | asc 또는 desc 순서로 job 정렬(기본값: desc). sort가 지정된 경우 order_by도 지정되어야 합니다 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/1/jobs?status=running"
응답 예시:
[
{
"id": 2,
"status": "running",
"stage": "test",
"name": "test",
"ref": "main",
"tag": false,
"coverage": null,
"created_at": "2017-11-16T08:50:29.000Z",
"started_at": "2017-11-16T08:51:29.000Z",
"finished_at": "2017-11-16T08:53:29.000Z",
"duration": 120,
"queued_duration": 2,
"user": {
"id": 1,
"name": "John Doe2",
"username": "user2",
"state": "active",
"avatar_url": "http://www.gravatar.com/avatar/c922747a93b40d1ea88262bf1aebee62?s=80&d=identicon",
"web_url": "http://localhost/user2",
"created_at": "2017-11-16T18:38:46.000Z",
"bio": null,
"location": null,
"public_email": "",
"linkedin": "",
"twitter": "",
"website_url": "",
"organization": null
},
"commit": {
"id": "97de212e80737a608d939f648d959671fb0a0142",
"short_id": "97de212e",
"title": "Update configuration\r",
"created_at": "2017-11-16T08:50:28.000Z",
"parent_ids": [
"1b12f15a11fc6e62177bef08f47bc7b5ce50b141",
"498214de67004b1da3d820901307bed2a68a8ef6"
],
"message": "See merge request !123",
"author_name": "John Doe2",
"author_email": "user2@example.org",
"authored_date": "2017-11-16T08:50:27.000Z",
"committer_name": "John Doe2",
"committer_email": "user2@example.org",
"committed_date": "2017-11-16T08:50:27.000Z"
},
"pipeline": {
"id": 2,
"sha": "97de212e80737a608d939f648d959671fb0a0142",
"ref": "main",
"status": "running"
},
"project": {
"id": 1,
"description": null,
"name": "project1",
"name_with_namespace": "John Doe2 / project1",
"path": "project1",
"path_with_namespace": "namespace1/project1",
"created_at": "2017-11-16T18:38:46.620Z"
}
}
]
러너의 모든 매니저 목록#
러너의 모든 매니저를 나열합니다.
GET /runners/:id/managers
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 러너의 ID |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/1/managers"
응답 예시:
[
{
"id": 1,
"system_id": "s_89e5e9956577",
"version": "16.11.1",
"revision": "535ced5f",
"platform": "linux",
"architecture": "amd64",
"created_at": "2024-06-09T11:12:02.507Z",
"contacted_at": "2024-06-09T06:30:09.355Z",
"ip_address": "127.0.0.1",
"status": "offline",
"job_execution_status": "idle"
},
{
"id": 2,
"system_id": "runner-2",
"version": "16.11.0",
"revision": "91a27b2a",
"platform": "linux",
"architecture": "amd64",
"created_at": "2024-06-09T09:12:02.507Z",
"contacted_at": "2024-06-09T06:30:09.355Z",
"ip_address": "127.0.0.1",
"status": "offline",
"job_execution_status": "idle"
}
]
프로젝트의 모든 러너 목록#
프로젝트에서 사용 가능한 모든 러너를 나열합니다. 상위 그룹 및 허용된 인스턴스 러너가 포함됩니다.
사전 요구 사항:
- GitLab 인스턴스의 관리자이거나 대상 프로젝트에 대해 최소한 Maintainer 또는 Auditor 권한이 있어야 합니다.
GET /projects/:id/runners
GET /projects/:id/runners?scope=active
GET /projects/:id/runners?type=project_type
GET /projects/:id/runners?status=online
GET /projects/:id/runners?paused=true
GET /projects/:id/runners?tag_list=tag1,tag2
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
scope |
string | 아니요 | 사용 중단됨: 대신 type 또는 status를 사용하세요. 반환할 러너의 범위로, active, paused, online, offline 중 하나; 아무것도 제공되지 않으면 모든 러너를 표시합니다 |
type |
string | 아니요 | 반환할 러너의 유형으로, instance_type, group_type, project_type 중 하나 |
status |
string | 아니요 | 반환할 러너의 상태로, online, offline, stale, 또는 never_contacted 중 하나.다른 가능한 값은 사용 중단된 active 및 paused입니다.offline 러너를 요청하면 stale이 offline에 포함되어 있으므로 stale 러너도 반환될 수 있습니다. |
paused |
boolean | 아니요 | 새 job을 수락하거나 무시하는 러너만 포함할지 여부 |
tag_list |
string array | 아니요 | 러너 태그 목록 |
version_prefix |
string | 아니요 | 반환할 러너 버전의 접두사입니다. 예: 15.0, 14, 16.1.241 |
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners"
사용 중단:
status쿼리 매개변수의active및paused값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused쿼리 매개변수를 사용하세요.- 응답의
active속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused속성을 사용하세요. - 응답의
ip_address속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 GitLab 17.0에서 빈 문자열을 반환합니다.ipAddress속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQLCiRunnerManager유형을 통해서만 사용할 수 있습니다.
응답 예시:
[
{
"active": true,
"paused": false,
"description": "test-2-20150125",
"id": 8,
"ip_address": "",
"is_shared": false,
"runner_type": "project_type",
"name": null,
"online": false,
"status": "offline",
"job_execution_status": "idle"
},
{
"active": true,
"paused": false,
"description": "development_runner",
"id": 5,
"ip_address": "",
"is_shared": true,
"runner_type": "instance_type",
"name": null,
"online": true,
"status": "online",
"job_execution_status": "idle"
}
]
프로젝트에 러너 할당#
사용 가능한 프로젝트 러너를 프로젝트에 할당합니다.
사전 요구 사항:
-
사용자 접근: 다음 중 하나가 있어야 합니다:
- 러너를 소유한 프로젝트와 대상 프로젝트에서 Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
POST /projects/:id/runners
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
runner_id |
integer | 예 | 러너의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners" \
--form "runner_id=9"
응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며
향후 REST API 버전에서 제거될 예정입니다.
GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다.
ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL
CiRunnerManager 유형을 통해서만 사용할 수 있습니다.
응답 예시:
{
"active": true,
"description": "test-2016-02-01",
"id": 9,
"ip_address": "",
"is_shared": false,
"runner_type": "project_type",
"name": null,
"online": true,
"status": "online",
"job_execution_status": "idle"
}
프로젝트에서 러너 할당 해제#
프로젝트에서 프로젝트 러너의 할당을 해제합니다. 소유자 프로젝트에서 러너를 할당 해제할 수 없습니다. 이 작업을 시도하면 오류가 발생합니다. 대신 러너 삭제 호출을 사용하세요.
사전 요구 사항:
- 관리자가 아닌 한 러너를 잠그지 않아야 합니다.
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- 할당 해제하려는 프로젝트에서 Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
DELETE /projects/:id/runners/:runner_id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer or string | 예 | 프로젝트의 ID 또는 URL 인코딩된 경로 |
runner_id |
integer | 예 | 러너의 ID |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/9/runners/9"
그룹의 모든 러너 목록#
그룹 및 상위 그룹에서 사용 가능한 모든 러너를 나열합니다. 허용된 인스턴스 러너가 포함됩니다.
사전 요구 사항:
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- GitLab 인스턴스에 대한 관리자 접근.
- 그룹에서 Owner 또는 Auditor 권한.
- 그룹에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
GET /groups/:id/runners
GET /groups/:id/runners?type=group_type
GET /groups/:id/runners/all?status=online
GET /groups/:id/runners/all?paused=true
GET /groups/:id/runners?tag_list=tag1,tag2
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 그룹의 ID |
type |
string | 아니요 | 반환할 러너의 유형으로, instance_type, group_type, project_type 중 하나. project_type 값은 사용 중단됨으로 GitLab 15.0에서 제거 예정 |
status |
string | 아니요 | 반환할 러너의 상태로, online, offline, stale, 또는 never_contacted 중 하나.다른 가능한 값은 사용 중단된 active 및 paused입니다.offline 러너를 요청하면 stale이 offline에 포함되어 있으므로 stale 러너도 반환될 수 있습니다. |
paused |
boolean | 아니요 | 새 job을 수락하거나 무시하는 러너만 포함할지 여부 |
tag_list |
string array | 아니요 | 러너 태그 목록 |
version_prefix |
string | 아니요 | 반환할 러너 버전의 접두사입니다. 예: 15.0, 14, 16.1.241 |
사용 중단:
status쿼리 매개변수의active및paused값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused쿼리 매개변수를 사용하세요.- 응답의
active속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신paused속성을 사용하세요.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"
응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며
향후 REST API 버전에서 제거될 예정입니다.
GitLab에서 이 속성은 빈 문자열을 반환합니다.
ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL
CiRunnerManager 유형을 통해서만 사용할 수 있습니다.
응답 예시:
[
{
"id": 3,
"description": "Shared",
"ip_address": "",
"active": true,
"paused": false,
"is_shared": true,
"runner_type": "instance_type",
"name": "gitlab-runner",
"online": null,
"status": "never_contacted",
"job_execution_status": "idle"
},
{
"id": 6,
"description": "Test",
"ip_address": "",
"active": true,
"paused": false,
"is_shared": true,
"runner_type": "instance_type",
"name": "gitlab-runner",
"online": false,
"status": "offline",
"job_execution_status": "idle"
},
{
"id": 8,
"description": "Test 2",
"ip_address": "",
"active": true,
"paused": false,
"is_shared": false,
"runner_type": "group_type",
"name": "gitlab-runner",
"online": null,
"status": "never_contacted",
"job_execution_status": "idle"
}
]
러너 만들기#
이 엔드포인트는 GitLab 17.0 이상에서 기본적으로 비활성화된 (사용 중단됨) 등록 토큰을 사용합니다.
권장 워크플로우로 러너를 만들려면 대신 POST /user/runners를 사용하세요.
러너 등록 토큰으로 러너를 만듭니다.
프로젝트 또는 그룹 설정에서 러너 등록 토큰으로의 등록이 비활성화된 경우 이 엔드포인트는 HTTP 410 Gone 상태 코드를 반환합니다. 러너 등록 토큰으로의 등록이 비활성화된 경우 대신 POST /user/runners 엔드포인트를 사용하여 러너를 만들고 등록하세요.
POST /runners
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
token |
string | 예 | 등록 토큰 |
description |
string | 아니요 | 러너의 설명 |
info |
hash | 아니요 | 러너의 메타데이터입니다. name, version, revision, platform, architecture를 포함할 수 있지만 UI의 Admin 영역에는 version, platform, architecture만 표시됩니다 |
active |
boolean | 아니요 | 사용 중단됨: 대신 paused를 사용하세요. 러너가 새 job을 받을 수 있는지 지정합니다 |
paused |
boolean | 아니요 | 러너가 새 job을 무시해야 하는지 지정합니다 |
locked |
boolean | 아니요 | 현재 프로젝트에 대해 러너를 잠궈야 하는지 지정합니다 |
run_untagged |
boolean | 아니요 | 러너가 태그 없는 job을 처리해야 하는지 지정합니다 |
tag_list |
string array | 아니요 | 러너 태그 목록 |
access_level |
string | 아니요 | 러너의 접근 수준; not_protected 또는 ref_protected |
maximum_timeout |
integer | 아니요 | 러너가 job을 실행할 수 있는 시간(초)을 제한하는 최대 타임아웃 |
maintainer_note |
string | 아니요 | 사용 중단됨, maintenance_note를 참조하세요 |
maintenance_note |
string | 아니요 | 러너에 대한 자유 형식 유지보수 노트 (1024자) |
curl --request POST "https://gitlab.example.com/api/v4/runners" \
--form "token=<registration_token>" --form "description=test-1-20150125-test" \
--form "tag_list=ruby,mysql,tag1,tag2"
응답:
| 상태 | 설명 |
|---|---|
| 201 | 러너가 만들어졌습니다 |
| 403 | 잘못된 러너 등록 토큰 |
| 410 | 러너 등록이 비활성화됨 |
응답 예시:
{
"id": 12345,
"token": "6337ff461c94fd3fa32ba3b1ff4125",
"token_expires_at": "2021-09-27T21:05:03.203Z"
}
러너 삭제#
다음을 지정하여 러너를 삭제할 수 있습니다:
- 러너 ID
- 러너의 인증 토큰
ID로 러너 삭제#
ID로 러너를 삭제하려면 러너의 ID와 함께 액세스 토큰을 사용합니다:
사전 요구 사항:
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- 인스턴스 러너의 경우: GitLab 인스턴스에 대한 관리자 접근.
- 그룹 러너의 경우: 소유자 네임스페이스에서 Owner 권한.
- 프로젝트 러너의 경우: 러너를 소유한 프로젝트에서 Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
DELETE /runners/:id
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 러너의 ID입니다. ID는 Settings > CI/CD의 UI에서 볼 수 있습니다. Runners를 펼치면 Remove Runner 아래에 파운드 기호 앞에 오는 ID가 있습니다(예: #6). |
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/runners/6"
인증 토큰으로 러너 삭제#
인증 토큰을 사용하여 러너를 삭제합니다.
DELETE /runners
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
token |
string | 예 | 러너의 인증 토큰. |
curl --request DELETE "https://gitlab.example.com/api/v4/runners" \
--form "token=<authentication_token>"
응답:
| 상태 | 설명 |
|---|---|
| 204 | 러너가 삭제되었습니다 |
등록된 러너의 인증 확인#
등록된 러너의 인증 자격 증명을 검증합니다.
POST /runners/verify
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
token |
string | 예 | 러너의 인증 토큰. |
system_id |
string | 아니요 | 러너의 시스템 식별자입니다. token이 glrt-로 시작하는 경우 이 속성이 필요합니다. |
curl --request POST "https://gitlab.example.com/api/v4/runners/verify" \
--form "token=<authentication_token>"
응답:
| 상태 | 설명 |
|---|---|
| 200 | 자격 증명이 유효합니다 |
| 403 | 자격 증명이 유효하지 않습니다 |
응답 예시:
{
"id": 12345,
"token": "glrt-6337ff461c94fd3fa32ba3b1ff4125",
"token_expires_at": "2021-09-27T21:05:03.203Z"
}
인스턴스의 러너 등록 토큰 재설정#
러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다.
자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.
GitLab 인스턴스의 러너 등록 토큰을 재설정합니다.
POST /runners/reset_registration_token
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/runners/reset_registration_token"
프로젝트의 러너 등록 토큰 재설정#
러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.
프로젝트의 러너 등록 토큰을 재설정합니다.
POST /projects/:id/runners/reset_registration_token
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/projects/9/runners/reset_registration_token"
그룹의 러너 등록 토큰 재설정#
러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.
그룹의 러너 등록 토큰을 재설정합니다.
POST /groups/:id/runners/reset_registration_token
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/groups/9/runners/reset_registration_token"
러너 ID를 사용하여 러너의 인증 토큰 재설정#
러너 ID를 사용하여 러너의 인증 토큰을 재설정합니다.
사전 요구 사항:
- 사용자 접근: 다음 중 하나가 있어야 합니다:
- 인스턴스 러너의 경우: GitLab 인스턴스에 대한 관리자 접근.
- 그룹 러너의 경우: 소유자 네임스페이스에서 Owner 권한.
- 프로젝트 러너의 경우: 러너에 할당된 프로젝트에서 Maintainer 또는 Owner 권한.
- 관련 그룹 또는 프로젝트에서
admin_runners권한이 있는 사용자 지정 역할.
manage_runner범위와 적절한 역할이 있는 액세스 토큰.
POST /runners/:id/reset_authentication_token
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
id |
integer | 예 | 러너의 ID |
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
"https://gitlab.example.com/api/v4/runners/1/reset_authentication_token"
응답 예시:
{
"token": "6337ff461c94fd3fa32ba3b1ff4125",
"token_expires_at": "2021-09-27T21:05:03.203Z"
}
현재 토큰을 사용하여 러너의 인증 토큰 재설정#
현재 토큰 값을 입력으로 사용하여 러너의 인증 토큰을 재설정합니다.
POST /runners/reset_authentication_token
| 속성 | 유형 | 필수 여부 | 설명 |
|---|---|---|---|
token |
string | 예 | 러너의 인증 토큰 |
curl --request POST --form "token=<current token>" \
"https://gitlab.example.com/api/v4/runners/reset_authentication_token"
응답 예시:
{
"token": "6337ff461c94fd3fa32ba3b1ff4125",
"token_expires_at": "2021-09-27T21:05:03.203Z"
}
Job Router 정보 검색#
히스토리
러너의 Job Router 검색 정보를 가져옵니다.
사전 요구 사항:
- 유효한 러너 인증 토큰을 제공해야 합니다.
GET /runners/router/discovery
curl --header "Runner-Token: <runner_authentication_token>" \
"https://gitlab.example.com/api/v4/runners/router/discovery"
응답:
응답에는 다음 필드가 포함됩니다:
| 속성 | 유형 | 설명 |
|---|---|---|
server_url |
string | Job Router URL |
응답은 다음 상태 코드 중 하나와 함께 반환됩니다:
| 상태 | 설명 |
|---|---|
200 |
Job Router 정보가 성공적으로 검색됨 |
403 |
금지됨 |
501 |
Job Router를 사용할 수 없음 |
응답 예시:
{
"server_url": "wss://kas.example.com"
}
