Compare commits
5 Commits
master
...
rkh-v3-job
Author | SHA1 | Date | |
---|---|---|---|
![]() |
381b9b2c76 | ||
![]() |
b32b5088f5 | ||
![]() |
2455cf3c42 | ||
![]() |
be64e36102 | ||
![]() |
ce521f0277 |
14
lib/travis/api/v3/queries/jobs.rb
Normal file
14
lib/travis/api/v3/queries/jobs.rb
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
module Travis::API::V3
|
||||||
|
class Queries::Jobs < Query
|
||||||
|
PENDING = %w[started queued created]
|
||||||
|
private_constant :PENDING
|
||||||
|
|
||||||
|
def pending(*repos)
|
||||||
|
for_owner(owner, state: PENDING)
|
||||||
|
end
|
||||||
|
|
||||||
|
def for_repos(*repos, **filters)
|
||||||
|
Models::Job.where(repository_id: repos.map(&:id), **filters)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
15
lib/travis/api/v3/renderer/job.rb
Normal file
15
lib/travis/api/v3/renderer/job.rb
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
require 'travis/api/v3/renderer/model_renderer'
|
||||||
|
|
||||||
|
module Travis::API::V3
|
||||||
|
class Renderer::Jobs < Renderer::ModelRenderer
|
||||||
|
representation(:minimal, :id, :number, :state, :duration, :started_at, :finished_at, :allow_failure, :queue)
|
||||||
|
representation(:standard, *representations[:minimal], :repository, :build, :commit)
|
||||||
|
|
||||||
|
def queue
|
||||||
|
{
|
||||||
|
:@type => 'queue'.freeze,
|
||||||
|
:name => model.queue
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
6
lib/travis/api/v3/renderer/jobs.rb
Normal file
6
lib/travis/api/v3/renderer/jobs.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
module Travis::API::V3
|
||||||
|
class Renderer::Jobs < Renderer::CollectionRenderer
|
||||||
|
type :jobs
|
||||||
|
collection_key :jobs
|
||||||
|
end
|
||||||
|
end
|
|
@ -12,6 +12,7 @@ module Travis::API::V3
|
||||||
route '/owner/({owner.login}|{user.login}|{organization.login})'
|
route '/owner/({owner.login}|{user.login}|{organization.login})'
|
||||||
get :find
|
get :find
|
||||||
get :repositories, '/repos'
|
get :repositories, '/repos'
|
||||||
|
get :pending_jobs, '/queue'
|
||||||
end
|
end
|
||||||
|
|
||||||
resource :repository do
|
resource :repository do
|
||||||
|
|
11
lib/travis/api/v3/services/owner/pending_jobs.rb
Normal file
11
lib/travis/api/v3/services/owner/pending_jobs.rb
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
module Travis::API::V3
|
||||||
|
class Services::Owner::PendingJobs < Service
|
||||||
|
result_type :jobs
|
||||||
|
|
||||||
|
def run!
|
||||||
|
unfiltered = query(:repositories).for_owner(find(:owner))
|
||||||
|
repositories = access_control.visible_repositories(unfiltered)
|
||||||
|
query(:jobs).pending(*repositories)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user