InfoGrab Docs

러너 API

요약

이 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 엔드포인트를 사용하여 토큰을 얻을 수도 있습니다.

러너 등록에 토큰을 사용하는 방법의 예시:

  1. 등록 토큰과 함께 GitLab API를 사용하여 러너를 등록하면 인증 토큰이 반환됩니다.

  2. 인증 토큰을 러너의 구성 파일에 추가합니다:

    [[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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 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"
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

[
    {
        "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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 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"
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

[
    {
        "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"
Warning

사용 중단:

  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.
  • 응답의 version, revision, platform, architecture 속성은 GitLab 17.0에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 동일한 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

{
    "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"
Warning

사용 중단:

  • active 쿼리 매개변수는 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

{
    "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"
Warning

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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 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"
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 GitLab 17.0에서 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

[
    {
        "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"
Warning

응답의 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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 stale 러너도 반환될 수 있습니다.
paused boolean 아니요 새 job을 수락하거나 무시하는 러너만 포함할지 여부
tag_list string array 아니요 러너 태그 목록
version_prefix string 아니요 반환할 러너 버전의 접두사입니다. 예: 15.0, 14, 16.1.241
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"
Warning

응답의 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"
  }
]

러너 만들기#

Warning

이 엔드포인트는 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 아니요 러너의 시스템 식별자입니다. tokenglrt-로 시작하는 경우 이 속성이 필요합니다.
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"
}

인스턴스의 러너 등록 토큰 재설정#

Warning

러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다.

자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.

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"

프로젝트의 러너 등록 토큰 재설정#

Warning

러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.

프로젝트의 러너 등록 토큰을 재설정합니다.

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"

그룹의 러너 등록 토큰 재설정#

Warning

러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.

그룹의 러너 등록 토큰을 재설정합니다.

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 정보 검색#

히스토리
  • GitLab 18.7에서 job_routerjob_router_instance_runners라는 기능 플래그와 함께 에픽 19607을 통해 도입되었습니다. 기본적으로 비활성화됩니다.

러너의 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"
}

러너 API

Tier: Free, Premium, Ultimate
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 엔드포인트를 사용하여 토큰을 얻을 수도 있습니다.

러너 등록에 토큰을 사용하는 방법의 예시:

  1. 등록 토큰과 함께 GitLab API를 사용하여 러너를 등록하면 인증 토큰이 반환됩니다.

  2. 인증 토큰을 러너의 구성 파일에 추가합니다:

    [[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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 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"
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

[
    {
        "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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 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"
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

[
    {
        "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"
Warning

사용 중단:

  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.
  • 응답의 version, revision, platform, architecture 속성은 GitLab 17.0에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 동일한 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

{
    "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"
Warning

사용 중단:

  • active 쿼리 매개변수는 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

{
    "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"
Warning

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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 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"
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
  • 응답의 ip_address 속성은 GitLab 16.1에서 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. GitLab 17.0에서 이 속성은 GitLab 17.0에서 빈 문자열을 반환합니다. ipAddress 속성은 해당 러너 매니저 내에서 찾을 수 있습니다. GraphQL CiRunnerManager 유형을 통해서만 사용할 수 있습니다.

응답 예시:

[
    {
        "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"
Warning

응답의 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 중 하나.
다른 가능한 값은 사용 중단된 activepaused입니다.
offline 러너를 요청하면 staleoffline에 포함되어 있으므로 stale 러너도 반환될 수 있습니다.
paused boolean 아니요 새 job을 수락하거나 무시하는 러너만 포함할지 여부
tag_list string array 아니요 러너 태그 목록
version_prefix string 아니요 반환할 러너 버전의 접두사입니다. 예: 15.0, 14, 16.1.241
Warning

사용 중단:

  • status 쿼리 매개변수의 activepaused 값은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 쿼리 매개변수를 사용하세요.
  • 응답의 active 속성은 사용 중단되었으며 향후 REST API 버전에서 제거될 예정입니다. 대신 paused 속성을 사용하세요.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/9/runners"
Warning

응답의 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"
  }
]

러너 만들기#

Warning

이 엔드포인트는 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 아니요 러너의 시스템 식별자입니다. tokenglrt-로 시작하는 경우 이 속성이 필요합니다.
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"
}

인스턴스의 러너 등록 토큰 재설정#

Warning

러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다.

자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.

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"

프로젝트의 러너 등록 토큰 재설정#

Warning

러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.

프로젝트의 러너 등록 토큰을 재설정합니다.

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"

그룹의 러너 등록 토큰 재설정#

Warning

러너 등록 토큰을 전달하는 옵션과 특정 구성 인수에 대한 지원은 레거시로 간주되며 권장되지 않습니다. 러너를 등록하기 위한 인증 토큰을 생성하려면 러너 생성 워크플로우를 사용하세요. 이 프로세스는 러너 소유권의 완전한 추적 가능성을 제공하고 러너 플릿의 보안을 강화합니다. 자세한 내용은 새 러너 등록 워크플로우로 마이그레이션을 참조하세요.

그룹의 러너 등록 토큰을 재설정합니다.

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 정보 검색#

히스토리
  • GitLab 18.7에서 job_routerjob_router_instance_runners라는 기능 플래그와 함께 에픽 19607을 통해 도입되었습니다. 기본적으로 비활성화됩니다.

러너의 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"
}