Fix builds API response not including commit data
This commit is contained in:
parent
0d287b06a6
commit
dd08202a24
|
@ -90,4 +90,12 @@ class CommitStatus < ActiveRecord::Base
|
||||||
def stuck?
|
def stuck?
|
||||||
false
|
false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Deprecated, this should be removed in 9.0 in favor of exposing
|
||||||
|
# entire pipeline in API.
|
||||||
|
#
|
||||||
|
def commit
|
||||||
|
pipeline.try(:commit_data)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -445,11 +445,7 @@ module API
|
||||||
expose :created_at, :started_at, :finished_at
|
expose :created_at, :started_at, :finished_at
|
||||||
expose :user, with: User
|
expose :user, with: User
|
||||||
expose :artifacts_file, using: BuildArtifactFile, if: -> (build, opts) { build.artifacts? }
|
expose :artifacts_file, using: BuildArtifactFile, if: -> (build, opts) { build.artifacts? }
|
||||||
expose :commit, with: RepoCommit do |repo_obj, _options|
|
expose :commit, with: RepoCommit
|
||||||
if repo_obj.respond_to?(:commit)
|
|
||||||
repo_obj.commit.commit_data
|
|
||||||
end
|
|
||||||
end
|
|
||||||
expose :runner, with: Runner
|
expose :runner, with: Runner
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,12 @@ require 'spec_helper'
|
||||||
|
|
||||||
describe Ci::Build, models: true do
|
describe Ci::Build, models: true do
|
||||||
let(:project) { create(:project) }
|
let(:project) { create(:project) }
|
||||||
let(:pipeline) { create(:ci_pipeline, project: project) }
|
|
||||||
|
let(:pipeline) do
|
||||||
|
create(:ci_pipeline, project: project,
|
||||||
|
sha: project.commit.id)
|
||||||
|
end
|
||||||
|
|
||||||
let(:build) { create(:ci_build, pipeline: pipeline) }
|
let(:build) { create(:ci_build, pipeline: pipeline) }
|
||||||
|
|
||||||
it { is_expected.to validate_presence_of :ref }
|
it { is_expected.to validate_presence_of :ref }
|
||||||
|
@ -658,4 +663,10 @@ describe Ci::Build, models: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#commit' do
|
||||||
|
it 'returns commit pipeline has been created for' do
|
||||||
|
expect(build.commit).to eq project.commit
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe CommitStatus, models: true do
|
describe CommitStatus, models: true do
|
||||||
let(:pipeline) { FactoryGirl.create :ci_pipeline }
|
let(:project) { create(:project) }
|
||||||
let(:commit_status) { FactoryGirl.create :commit_status, pipeline: pipeline }
|
|
||||||
|
let(:pipeline) do
|
||||||
|
create(:ci_pipeline, project: project, sha: project.commit.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
let(:commit_status) { create(:commit_status, pipeline: pipeline) }
|
||||||
|
|
||||||
it { is_expected.to belong_to(:pipeline) }
|
it { is_expected.to belong_to(:pipeline) }
|
||||||
it { is_expected.to belong_to(:user) }
|
it { is_expected.to belong_to(:user) }
|
||||||
|
@ -13,7 +18,7 @@ describe CommitStatus, models: true do
|
||||||
|
|
||||||
it { is_expected.to delegate_method(:sha).to(:pipeline) }
|
it { is_expected.to delegate_method(:sha).to(:pipeline) }
|
||||||
it { is_expected.to delegate_method(:short_sha).to(:pipeline) }
|
it { is_expected.to delegate_method(:short_sha).to(:pipeline) }
|
||||||
|
|
||||||
it { is_expected.to respond_to :success? }
|
it { is_expected.to respond_to :success? }
|
||||||
it { is_expected.to respond_to :failed? }
|
it { is_expected.to respond_to :failed? }
|
||||||
it { is_expected.to respond_to :running? }
|
it { is_expected.to respond_to :running? }
|
||||||
|
@ -116,7 +121,7 @@ describe CommitStatus, models: true do
|
||||||
it { is_expected.to be > 0.0 }
|
it { is_expected.to be > 0.0 }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe :latest do
|
describe :latest do
|
||||||
subject { CommitStatus.latest.order(:id) }
|
subject { CommitStatus.latest.order(:id) }
|
||||||
|
|
||||||
|
@ -198,4 +203,10 @@ describe CommitStatus, models: true do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#commit' do
|
||||||
|
it 'returns commit pipeline has been created for' do
|
||||||
|
expect(commit_status.commit).to eq project.commit
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,8 +9,8 @@ describe API::API, api: true do
|
||||||
let!(:project) { create(:project, creator_id: user.id) }
|
let!(:project) { create(:project, creator_id: user.id) }
|
||||||
let!(:developer) { create(:project_member, :developer, user: user, project: project) }
|
let!(:developer) { create(:project_member, :developer, user: user, project: project) }
|
||||||
let!(:reporter) { create(:project_member, :reporter, user: user2, project: project) }
|
let!(:reporter) { create(:project_member, :reporter, user: user2, project: project) }
|
||||||
let(:pipeline) { create(:ci_pipeline, project: project)}
|
let!(:pipeline) { create(:ci_pipeline, project: project, sha: project.commit.id) }
|
||||||
let(:build) { create(:ci_build, pipeline: pipeline) }
|
let!(:build) { create(:ci_build, pipeline: pipeline) }
|
||||||
|
|
||||||
describe 'GET /projects/:id/builds ' do
|
describe 'GET /projects/:id/builds ' do
|
||||||
let(:query) { '' }
|
let(:query) { '' }
|
||||||
|
@ -23,6 +23,11 @@ describe API::API, api: true do
|
||||||
expect(json_response).to be_an Array
|
expect(json_response).to be_an Array
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns correct values' do
|
||||||
|
expect(json_response).not_to be_empty
|
||||||
|
expect(json_response.first['commit']['id']).to eq project.commit.id
|
||||||
|
end
|
||||||
|
|
||||||
context 'filter project with one scope element' do
|
context 'filter project with one scope element' do
|
||||||
let(:query) { 'scope=pending' }
|
let(:query) { 'scope=pending' }
|
||||||
|
|
||||||
|
@ -132,7 +137,7 @@ describe API::API, api: true do
|
||||||
|
|
||||||
describe 'GET /projects/:id/builds/:build_id/trace' do
|
describe 'GET /projects/:id/builds/:build_id/trace' do
|
||||||
let(:build) { create(:ci_build, :trace, pipeline: pipeline) }
|
let(:build) { create(:ci_build, :trace, pipeline: pipeline) }
|
||||||
|
|
||||||
before { get api("/projects/#{project.id}/builds/#{build.id}/trace", api_user) }
|
before { get api("/projects/#{project.id}/builds/#{build.id}/trace", api_user) }
|
||||||
|
|
||||||
context 'authorized user' do
|
context 'authorized user' do
|
||||||
|
|
Loading…
Reference in New Issue