diff options
author | Mehdi Lahmam <mehdi@lahmam.com> | 2017-08-13 23:11:48 +0200 |
---|---|---|
committer | Mehdi Lahmam <mehdi@lahmam.com> | 2017-11-05 21:59:58 +0100 |
commit | 08bc2f946bc788b8a51e7a4136cc83e57d9f707a (patch) | |
tree | 848cb042f2b74c57820fa5dbd776e73cee295457 | |
parent | 1d5f2f9c333534b7004501bcfa52ca873d6a3403 (diff) | |
download | gitlab-ce-08bc2f946bc788b8a51e7a4136cc83e57d9f707a.tar.gz |
Expose `duration` in Job API entity
Closes #35794.
-rw-r--r-- | changelogs/unreleased/expose-job-duration.yml | 5 | ||||
-rw-r--r-- | lib/api/entities.rb | 1 | ||||
-rw-r--r-- | spec/requests/api/jobs_spec.rb | 12 |
3 files changed, 17 insertions, 1 deletions
diff --git a/changelogs/unreleased/expose-job-duration.yml b/changelogs/unreleased/expose-job-duration.yml new file mode 100644 index 00000000000..1fe5d897d47 --- /dev/null +++ b/changelogs/unreleased/expose-job-duration.yml @@ -0,0 +1,5 @@ +--- +title: Expose duration in Job entity +merge_request: 13644 +author: Mehdi Lahmam (@mehlah) +type: added diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 67cecb6a7ad..398a7906dcb 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -822,6 +822,7 @@ module API class Job < Grape::Entity expose :id, :status, :stage, :name, :ref, :tag, :coverage expose :created_at, :started_at, :finished_at + expose :duration expose :user, with: User expose :artifacts_file, using: JobArtifactFile, if: -> (job, opts) { job.artifacts? } expose :commit, with: Commit diff --git a/spec/requests/api/jobs_spec.rb b/spec/requests/api/jobs_spec.rb index 3b7b9c889e7..1765907c1b4 100644 --- a/spec/requests/api/jobs_spec.rb +++ b/spec/requests/api/jobs_spec.rb @@ -165,7 +165,17 @@ describe API::Jobs do context 'authorized user' do it 'returns specific job data' do expect(response).to have_gitlab_http_status(200) - expect(json_response['name']).to eq('test') + expect(json_response['id']).to eq(job.id) + expect(json_response['status']).to eq(job.status) + expect(json_response['stage']).to eq(job.stage) + expect(json_response['name']).to eq(job.name) + expect(json_response['ref']).to eq(job.ref) + expect(json_response['tag']).to eq(job.tag) + expect(json_response['coverage']).to eq(job.coverage) + expect(Time.parse(json_response['created_at'])).to be_like_time(job.created_at) + expect(Time.parse(json_response['started_at'])).to be_like_time(job.started_at) + expect(Time.parse(json_response['finished_at'])).to be_like_time(job.finished_at) + expect(json_response['duration']).to eq(job.duration) end it 'returns pipeline data' do |