diff options
author | Rémy Coutable <remy@rymai.me> | 2017-02-23 11:07:18 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-02-23 11:07:18 +0000 |
commit | 8cc61d0b2a3507609665c3c5d3e8a475772c6b87 (patch) | |
tree | 034b54cf7481f24d9330df00b17ec0a8642c502b | |
parent | f106ad513546c8d77b88a0a061a0b6a7e7ee26ed (diff) | |
parent | df97e21c4faffaf14f23c407047cde17f61d95ba (diff) | |
download | gitlab-ce-8cc61d0b2a3507609665c3c5d3e8a475772c6b87.tar.gz |
Merge branch '26875-builds-api-endpoint-skipped-scope' into 'master'
Add all available statuses to scope filter for project builds endpoint
Closes #26875
See merge request !8971
-rw-r--r-- | changelogs/unreleased/26875-builds-api-endpoint-skipped-scope.yml | 4 | ||||
-rw-r--r-- | lib/api/builds.rb | 2 | ||||
-rw-r--r-- | spec/requests/api/builds_spec.rb | 14 |
3 files changed, 19 insertions, 1 deletions
diff --git a/changelogs/unreleased/26875-builds-api-endpoint-skipped-scope.yml b/changelogs/unreleased/26875-builds-api-endpoint-skipped-scope.yml new file mode 100644 index 00000000000..3d6400cba76 --- /dev/null +++ b/changelogs/unreleased/26875-builds-api-endpoint-skipped-scope.yml @@ -0,0 +1,4 @@ +--- +title: Add all available statuses to scope filter for project builds endpoint +merge_request: +author: George Andrinopoulos diff --git a/lib/api/builds.rb b/lib/api/builds.rb index 44fe0fc4a95..5b76913fe45 100644 --- a/lib/api/builds.rb +++ b/lib/api/builds.rb @@ -11,7 +11,7 @@ module API helpers do params :optional_scope do optional :scope, types: [String, Array[String]], desc: 'The scope of builds to show', - values: ['pending', 'running', 'failed', 'success', 'canceled'], + values: ::CommitStatus::AVAILABLE_STATUSES, coerce_with: ->(scope) { if scope.is_a?(String) [scope] diff --git a/spec/requests/api/builds_spec.rb b/spec/requests/api/builds_spec.rb index 38aef7f2767..76a10a2374c 100644 --- a/spec/requests/api/builds_spec.rb +++ b/spec/requests/api/builds_spec.rb @@ -16,6 +16,8 @@ describe API::Builds, api: true do let(:query) { '' } before do + create(:ci_build, :skipped, pipeline: pipeline) + get api("/projects/#{project.id}/builds?#{query}", api_user) end @@ -49,6 +51,18 @@ describe API::Builds, api: true do end end + context 'filter project with scope skipped' do + let(:query) { 'scope=skipped' } + let(:json_build) { json_response.first } + + it 'return builds with status skipped' do + expect(response).to have_http_status 200 + expect(json_response).to be_an Array + expect(json_response.length).to eq 1 + expect(json_build['status']).to eq 'skipped' + end + end + context 'filter project with array of scope elements' do let(:query) { 'scope[0]=pending&scope[1]=running' } |