Add API support
This commit is contained in:
parent
af112c55e5
commit
6f19fc1147
|
@ -138,7 +138,8 @@ Example response:
|
||||||
"ruby",
|
"ruby",
|
||||||
"mysql"
|
"mysql"
|
||||||
],
|
],
|
||||||
"version": null
|
"version": null,
|
||||||
|
"access_level": 0
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -156,6 +157,9 @@ PUT /runners/:id
|
||||||
| `description` | string | no | The description 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` |
|
| `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 |
|
| `tag_list` | array | no | The list of tags for a runner; put array of tags, that should be finally assigned to a runner |
|
||||||
|
| `run_untagged` | boolean | no | Flag indicating the runner can execute untagged jobs |
|
||||||
|
| `locked` | boolean | no | Flag indicating the runner is locked |
|
||||||
|
| `access_level` | integer | no | The access_level of the runner; `unprotected`: 0, `protected`: 1 |
|
||||||
|
|
||||||
```
|
```
|
||||||
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"
|
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"
|
||||||
|
@ -190,7 +194,8 @@ Example response:
|
||||||
"tag1",
|
"tag1",
|
||||||
"tag2"
|
"tag2"
|
||||||
],
|
],
|
||||||
"version": null
|
"version": null,
|
||||||
|
"access_level": 0
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -775,6 +775,7 @@ module API
|
||||||
expose :tag_list
|
expose :tag_list
|
||||||
expose :run_untagged
|
expose :run_untagged
|
||||||
expose :locked
|
expose :locked
|
||||||
|
expose :access_level
|
||||||
expose :version, :revision, :platform, :architecture
|
expose :version, :revision, :platform, :architecture
|
||||||
expose :contacted_at
|
expose :contacted_at
|
||||||
expose :token, if: lambda { |runner, options| options[:current_user].admin? || !runner.is_shared? }
|
expose :token, if: lambda { |runner, options| options[:current_user].admin? || !runner.is_shared? }
|
||||||
|
|
|
@ -55,7 +55,8 @@ module API
|
||||||
optional :tag_list, type: Array[String], desc: 'The list of tags for a runner'
|
optional :tag_list, type: Array[String], desc: 'The list of tags for a runner'
|
||||||
optional :run_untagged, type: Boolean, desc: 'Flag indicating the runner can execute untagged jobs'
|
optional :run_untagged, type: Boolean, desc: 'Flag indicating the runner can execute untagged jobs'
|
||||||
optional :locked, type: Boolean, desc: 'Flag indicating the runner is locked'
|
optional :locked, type: Boolean, desc: 'Flag indicating the runner is locked'
|
||||||
at_least_one_of :description, :active, :tag_list, :run_untagged, :locked
|
optional :access_level, type: Integer, desc: 'The access_level of the runner'
|
||||||
|
at_least_one_of :description, :active, :tag_list, :run_untagged, :locked, :access_level
|
||||||
end
|
end
|
||||||
put ':id' do
|
put ':id' do
|
||||||
runner = get_runner(params.delete(:id))
|
runner = get_runner(params.delete(:id))
|
||||||
|
|
|
@ -191,7 +191,8 @@ describe API::Runners do
|
||||||
active: !active,
|
active: !active,
|
||||||
tag_list: ['ruby2.1', 'pgsql', 'mysql'],
|
tag_list: ['ruby2.1', 'pgsql', 'mysql'],
|
||||||
run_untagged: 'false',
|
run_untagged: 'false',
|
||||||
locked: 'true')
|
locked: 'true',
|
||||||
|
access_level: 1)
|
||||||
shared_runner.reload
|
shared_runner.reload
|
||||||
|
|
||||||
expect(response).to have_http_status(200)
|
expect(response).to have_http_status(200)
|
||||||
|
@ -200,6 +201,7 @@ describe API::Runners do
|
||||||
expect(shared_runner.tag_list).to include('ruby2.1', 'pgsql', 'mysql')
|
expect(shared_runner.tag_list).to include('ruby2.1', 'pgsql', 'mysql')
|
||||||
expect(shared_runner.run_untagged?).to be(false)
|
expect(shared_runner.run_untagged?).to be(false)
|
||||||
expect(shared_runner.locked?).to be(true)
|
expect(shared_runner.locked?).to be(true)
|
||||||
|
expect(shared_runner.protected_?).to be_truthy
|
||||||
expect(shared_runner.ensure_runner_queue_value)
|
expect(shared_runner.ensure_runner_queue_value)
|
||||||
.not_to eq(runner_queue_value)
|
.not_to eq(runner_queue_value)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue