diff --git a/lib/travis/api/v3/queries/repositories.rb b/lib/travis/api/v3/queries/repositories.rb index bc374e7b..7872e8d4 100644 --- a/lib/travis/api/v3/queries/repositories.rb +++ b/lib/travis/api/v3/queries/repositories.rb @@ -11,7 +11,9 @@ module Travis::API::V3 all = Models::Repository all = all.where(active: bool(active)) unless active.nil? all = all.where(private: bool(private)) unless private.nil? - all = all.includes(:default_branch) # TODO: use includes params + all = all.includes(:owner) if includes? 'repository.owner'.freeze + all = all.includes(:last_build) if includes? 'repository.last_build'.freeze + all = all.includes(:default_branch) all end end diff --git a/lib/travis/api/v3/query.rb b/lib/travis/api/v3/query.rb index 52aca622..5e578e6a 100644 --- a/lib/travis/api/v3/query.rb +++ b/lib/travis/api/v3/query.rb @@ -40,6 +40,11 @@ module Travis::API::V3 ::Sidekiq::Client.push('queue'.freeze => queue, 'class'.freeze => class_name, 'args'.freeze => args) end + def includes?(key) + @includes ||= @params['include'.freeze].to_s.split(?,.freeze) + @includes.include? key + end + def bool(value) return false if value == 'false'.freeze !!value