diff --git a/lib/travis/api/app/endpoint/repos.rb b/lib/travis/api/app/endpoint/repos.rb index f960c8dc..bb5d4311 100644 --- a/lib/travis/api/app/endpoint/repos.rb +++ b/lib/travis/api/app/endpoint/repos.rb @@ -98,8 +98,9 @@ class Travis::Api::App respond_with service(:find_branches, params), type: :branches, version: :v2 end - # Gets lastest build on a branch branches - get '/:repository_id/branches/:branch' do + # Gets latest build on a branch + get '/:repository_id/branches/*' do + params[:branch] = params[:splat] respond_with service(:find_branch, params), type: :branch, version: :v2 end @@ -170,8 +171,9 @@ class Travis::Api::App respond_with service(:find_branches, params), type: :branches, version: :v2 end - # Gets lastest build on a branch branches - get '/:owner_name/:name/branches/:branch' do + # Gets latest build on a branch + get '/:owner_name/:name/branches/*' do + params[:branch] = params[:splat] respond_with service(:find_branch, params), type: :branch, version: :v2 end diff --git a/spec/integration/v2/repositories_spec.rb b/spec/integration/v2/repositories_spec.rb index e40518e2..dfa86220 100644 --- a/spec/integration/v2/repositories_spec.rb +++ b/spec/integration/v2/repositories_spec.rb @@ -134,6 +134,30 @@ describe 'Repos' do JSON.parse(result.body).should == { 'file' => 'not found' } end + it 'GET /repos/svenfuchs/minimal/branches' do + response = get '/repos/svenfuchs/minimal/branches', {}, headers + response.should deliver_json_for(repo.last_finished_builds_by_branches, version: 'v2', type: 'branches') + end + + it 'GET /repos/1/branches' do + response = get "/repos/#{repo.id}/branches", {}, headers + response.should deliver_json_for(repo.last_finished_builds_by_branches, version: 'v2', type: 'branches') + end + + it 'GET /repos/svenfuchs/minimal/branches/mybranch' do + mybuild = Factory(:build, repository: repo, state: :started, commit: Factory(:commit, branch: 'mybranch'), request: Factory(:request, event_type: 'push')) + response = get "/repos/svenfuchs/minimal/branches/mybranch", {}, headers + body = JSON.parse(response.body) + body['branch']['id'].should == mybuild.id + end + + it 'GET /repos/svenfuchs/minimal/branches/my/branch' do + mybuild = Factory(:build, repository: repo, state: :started, commit: Factory(:commit, branch: 'my/branch'), request: Factory(:request, event_type: 'push')) + response = get "/repos/svenfuchs/minimal/branches/my/branch", {}, headers + body = JSON.parse(response.body) + body['branch']['id'].should == mybuild.id + end + describe 'GET /repos/svenfuchs/minimal.png?branch=foo,bar' do let(:on_foo) { Factory(:commit, branch: 'foo') } let(:on_bar) { Factory(:commit, branch: 'bar') }