diff --git a/lib/travis/api/app/endpoint/repos.rb b/lib/travis/api/app/endpoint/repos.rb index bb5d4311..b4f98438 100644 --- a/lib/travis/api/app/endpoint/repos.rb +++ b/lib/travis/api/app/endpoint/repos.rb @@ -16,6 +16,7 @@ class Travis::Api::App # json(:repositories) get '/' do prefer_follower do + params['ids'] = params['ids'].split(',') if params['ids'].respond_to?(:split) respond_with service(:find_repos, params) end end diff --git a/spec/integration/v2/repositories_spec.rb b/spec/integration/v2/repositories_spec.rb index dfa86220..954ca44d 100644 --- a/spec/integration/v2/repositories_spec.rb +++ b/spec/integration/v2/repositories_spec.rb @@ -5,6 +5,17 @@ describe 'Repos' do let(:repo) { Repository.by_slug('svenfuchs/minimal').first } let(:headers) { { 'HTTP_ACCEPT' => 'application/vnd.travis-ci.2+json' } } + describe 'with a list of ids' do + it 'returns repositories by ids' do + repos = Repository.all + ids = repos[0..1].map(&:id) + response = get "/repos?ids=#{ids.join(',')}", {}, headers + body = JSON.parse(response.body) + + body['repos'].map { |r| r['id'] }.should == ids + end + end + describe 'with authenticated user' do let(:user) { User.where(login: 'svenfuchs').first } let(:token) { Travis::Api::App::AccessToken.create(user: user, app_id: -1) }