diff --git a/lib/travis/api/app/endpoint/jobs.rb b/lib/travis/api/app/endpoint/jobs.rb index 64b2a154..cb01401b 100644 --- a/lib/travis/api/app/endpoint/jobs.rb +++ b/lib/travis/api/app/endpoint/jobs.rb @@ -124,16 +124,6 @@ class Travis::Api::App end end - post "/:job_id/debug" do - Travis.logger.debug "Reached endpoint" - job = service(:find_job, params).run - Travis.logger.debug "found job: #{job}" - cfg = job.config - cfg.merge! debug_data - job.save! - status 200 - end - def archive_url(path) "https://s3.amazonaws.com/#{hostname('archive')}#{path}" end diff --git a/lib/travis/api/v3/permissions/job.rb b/lib/travis/api/v3/permissions/job.rb index 3055257e..b2193a50 100644 --- a/lib/travis/api/v3/permissions/job.rb +++ b/lib/travis/api/v3/permissions/job.rb @@ -9,5 +9,9 @@ module Travis::API::V3 def restart? write? end + + def debug? + write? + end end end diff --git a/lib/travis/api/v3/routes.rb b/lib/travis/api/v3/routes.rb index 4243edb4..f70fbacd 100644 --- a/lib/travis/api/v3/routes.rb +++ b/lib/travis/api/v3/routes.rb @@ -34,6 +34,7 @@ module Travis::API::V3 post :cancel, '/cancel' post :restart, '/restart' + post :debug, '/debug' end resource :organization do diff --git a/lib/travis/api/v3/services/job/debug.rb b/lib/travis/api/v3/services/job/debug.rb new file mode 100644 index 00000000..dd98a1bf --- /dev/null +++ b/lib/travis/api/v3/services/job/debug.rb @@ -0,0 +1,19 @@ +module Travis::API::V3 + class Services::Job::Debug < Service + + def run + raise LoginRequired unless access_control.logged_in? or access_control.full_access? + raise NotFound unless job = find(:job) + access_control.permissions(job).debug! + + Travis.logger.debug "Reached endpoint" + job = service(:find_job, params).run + Travis.logger.debug "found job: #{job}" + cfg = job.config + cfg.merge! debug_data + job.save! + + accepted(job: job, state_change: :created) + end + end +end