2016-02-01 08:31:49 -05:00
# Runners API
2016-02-22 07:30:22 -05:00
> [Introduced][ce-2640] in GitLab 8.5
[ce-2640]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/2640
2016-02-02 09:52:02 -05:00
## List owned runners
2016-02-01 08:31:49 -05:00
2016-02-05 06:25:16 -05:00
Get a list of specific runners available to the user.
2016-02-01 08:31:49 -05:00
```
GET /runners
2016-02-03 08:39:55 -05:00
GET /runners?scope=active
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|-----------|---------|----------|---------------------|
2016-02-05 06:25:16 -05:00
| `scope` | string | no | The scope of specific runners to show, one of: `active` , `paused` , `online` ; showing all runners if none provided |
2016-02-01 08:31:49 -05:00
```
2017-03-01 12:39:40 -05:00
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners"
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
Example response:
2016-02-01 08:31:49 -05:00
```json
[
{
"active": true,
"description": "test-1-20150125",
"id": 6,
"is_shared": false,
"name": null
},
{
"active": true,
"description": "test-2-20150125",
"id": 8,
"is_shared": false,
"name": null
}
]
```
2016-02-02 09:52:02 -05:00
## List all runners
2016-02-03 08:39:55 -05:00
Get a list of all runners in the GitLab instance (specific and shared). Access
is restricted to users with `admin` privileges.
2016-02-02 09:52:02 -05:00
```
GET /runners/all
2016-02-05 06:25:16 -05:00
GET /runners/all?scope=online
2016-02-02 09:52:02 -05:00
```
| Attribute | Type | Required | Description |
|-----------|---------|----------|---------------------|
| `scope` | string | no | The scope of runners to show, one of: `specific` , `shared` , `active` , `paused` , `online` ; showing all runners if none provided |
```
2017-03-01 12:39:40 -05:00
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners/all"
2016-02-02 09:52:02 -05:00
```
Example response:
```json
[
{
"active": true,
"description": "shared-runner-1",
"id": 1,
"is_shared": true,
"name": null
},
{
"active": true,
"description": "shared-runner-2",
"id": 3,
"is_shared": true,
"name": null
},
{
"active": true,
"description": "test-1-20150125",
"id": 6,
"is_shared": false,
"name": null
},
{
"active": true,
"description": "test-2-20150125",
"id": 8,
"is_shared": false,
"name": null
}
]
```
2016-02-01 08:31:49 -05:00
## Get runner's details
Get details of a runner.
```
GET /runners/:id
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|-----------|---------|----------|---------------------|
| `id` | integer | yes | The ID of a runner |
```
2017-03-01 12:39:40 -05:00
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners/6"
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
Example response:
2016-02-01 08:31:49 -05:00
```json
{
"active": true,
"architecture": null,
"description": "test-1-20150125",
"id": 6,
"is_shared": false,
2016-02-17 15:23:14 -05:00
"contacted_at": "2016-01-25T16:39:48.066Z",
2016-02-01 08:31:49 -05:00
"name": null,
"platform": null,
2016-02-02 12:47:02 -05:00
"projects": [
{
"id": 1,
2016-02-17 15:06:21 -05:00
"name": "GitLab Community Edition",
2016-02-16 06:45:43 -05:00
"name_with_namespace": "GitLab.org / GitLab Community Edition",
2016-02-17 15:06:21 -05:00
"path": "gitlab-ce",
2016-02-16 06:45:43 -05:00
"path_with_namespace": "gitlab-org/gitlab-ce"
2016-02-02 12:47:02 -05:00
}
],
2016-02-04 04:33:29 -05:00
"token": "205086a8e3b9a2b818ffac9b89d102",
2016-02-01 08:31:49 -05:00
"revision": null,
"tag_list": [
"ruby",
"mysql"
],
2017-08-23 12:28:57 -04:00
"version": null,
2017-08-29 03:09:30 -04:00
"access_level": "ref_protected"
2016-02-01 08:31:49 -05:00
}
```
## Update runner's details
Update details of a runner.
```
PUT /runners/:id
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|---------------|---------|----------|---------------------|
| `id` | integer | yes | The ID of a runner |
| `description` | string | no | The description of a runner |
| `active` | boolean | no | The state of a runner; can be set to `true` or `false` |
| `tag_list` | array | no | The list of tags for a runner; put array of tags, that should be finally assigned to a runner |
2017-08-23 12:28:57 -04:00
| `run_untagged` | boolean | no | Flag indicating the runner can execute untagged jobs |
| `locked` | boolean | no | Flag indicating the runner is locked |
2017-08-29 05:57:53 -04:00
| `access_level` | string | no | The access_level of the runner; `not_protected` or `ref_protected` |
2016-02-01 08:31:49 -05:00
```
2017-03-01 12:39:40 -05:00
curl --request PUT --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners/6" --form "description=test-1-20150125-test" --form "tag_list=ruby,mysql,tag1,tag2"
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
Example response:
2016-02-01 08:31:49 -05:00
```json
{
"active": true,
"architecture": null,
"description": "test-1-20150125-test",
"id": 6,
"is_shared": false,
2016-02-17 15:23:14 -05:00
"contacted_at": "2016-01-25T16:39:48.066Z",
2016-02-01 08:31:49 -05:00
"name": null,
"platform": null,
2016-02-10 08:20:51 -05:00
"projects": [
{
"id": 1,
2016-02-17 15:06:21 -05:00
"name": "GitLab Community Edition",
2016-02-16 06:45:43 -05:00
"name_with_namespace": "GitLab.org / GitLab Community Edition",
2016-02-17 15:06:21 -05:00
"path": "gitlab-ce",
2016-02-16 06:45:43 -05:00
"path_with_namespace": "gitlab-org/gitlab-ce"
2016-02-10 08:20:51 -05:00
}
],
"token": "205086a8e3b9a2b818ffac9b89d102",
2016-02-01 08:31:49 -05:00
"revision": null,
"tag_list": [
"ruby",
"mysql",
"tag1",
"tag2"
],
2017-08-23 12:28:57 -04:00
"version": null,
2017-08-29 03:09:30 -04:00
"access_level": "ref_protected"
2016-02-01 08:31:49 -05:00
}
```
## Remove a runner
Remove a runner.
```
DELETE /runners/:id
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|-----------|---------|----------|---------------------|
| `id` | integer | yes | The ID of a runner |
```
2017-03-01 12:39:40 -05:00
curl --request DELETE --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/runners/6"
2016-02-01 08:31:49 -05:00
```
## List project's runners
2016-02-03 08:39:55 -05:00
List all runners (specific and shared) available in the project. Shared runners
are listed if at least one shared runner is defined **and** shared runners
usage is enabled in the project's settings.
2016-02-01 08:31:49 -05:00
```
GET /projects/:id/runners
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|-----------|---------|----------|---------------------|
2017-04-08 05:21:11 -04:00
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](README.md#namespaced-path-encoding ) owned by the authenticated user |
2016-02-01 08:31:49 -05:00
```
2017-03-01 12:39:40 -05:00
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/9/runners"
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
Example response:
2016-02-01 08:31:49 -05:00
```json
[
{
"active": true,
"description": "test-2-20150125",
"id": 8,
"is_shared": false,
"name": null
},
{
"active": true,
"description": "development_runner",
"id": 5,
"is_shared": true,
"name": null
}
]
```
## Enable a runner in project
2016-02-03 08:39:55 -05:00
Enable an available specific runner in the project.
2016-02-01 08:31:49 -05:00
```
2016-02-16 06:43:43 -05:00
POST /projects/:id/runners
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|-------------|---------|----------|---------------------|
2017-04-08 05:21:11 -04:00
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](README.md#namespaced-path-encoding ) owned by the authenticated user |
2016-02-01 08:31:49 -05:00
| `runner_id` | integer | yes | The ID of a runner |
```
2017-03-01 12:39:40 -05:00
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/9/runners" --form "runner_id=9"
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
Example response:
2016-02-01 08:31:49 -05:00
```json
{
"active": true,
"description": "test-2016-02-01",
"id": 9,
"is_shared": false,
"name": null
}
```
## Disable a runner from project
2016-02-03 08:39:55 -05:00
Disable a specific runner from the project. It works only if the project isn't
the only project associated with the specified runner. If so, an error is
returned. Use the [Remove a runner ](#remove-a-runner ) call instead.
2016-02-01 08:31:49 -05:00
```
2016-02-02 08:52:33 -05:00
DELETE /projects/:id/runners/:runner_id
2016-02-01 08:31:49 -05:00
```
2016-02-02 07:22:51 -05:00
| Attribute | Type | Required | Description |
2016-02-01 08:31:49 -05:00
|-------------|---------|----------|---------------------|
2017-04-08 05:21:11 -04:00
| `id` | integer/string | yes | The ID or [URL-encoded path of the project ](README.md#namespaced-path-encoding ) owned by the authenticated user |
2016-02-01 08:31:49 -05:00
| `runner_id` | integer | yes | The ID of a runner |
```
2017-03-01 12:39:40 -05:00
curl --request DELETE --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/9/runners/9"
2016-02-01 08:31:49 -05:00
```