diff options
author | Grzegorz Bizon <grzegorz@gitlab.com> | 2019-02-15 10:47:13 +0000 |
---|---|---|
committer | Grzegorz Bizon <grzegorz@gitlab.com> | 2019-02-15 10:47:13 +0000 |
commit | 0b966fb0d95bb6e7070db50b4d1a64e3dddac1a4 (patch) | |
tree | ec2b1e2d5ac3bacccc3a2d80abe3b7a34bc904ba | |
parent | ecb1411fbb057e65d3efea53854ba2efc16cb6d3 (diff) | |
parent | b079a6b6bbe67b00c6ab181058ee2383e1b3c7de (diff) | |
download | gitlab-ce-0b966fb0d95bb6e7070db50b4d1a64e3dddac1a4.tar.gz |
Merge branch '57671-fix_merge_request_base_pipeline' into 'master'
Base pipeline must be from target branch
Closes #57671
See merge request gitlab-org/gitlab-ce!25226
-rw-r--r-- | app/models/merge_request.rb | 2 | ||||
-rw-r--r-- | changelogs/unreleased/57671-fix_merge_request_base_pipeline.yml | 5 | ||||
-rw-r--r-- | spec/models/merge_request_spec.rb | 3 |
3 files changed, 8 insertions, 2 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 2035bffd829..790555ab045 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -1322,7 +1322,7 @@ class MergeRequest < ActiveRecord::Base def base_pipeline @base_pipeline ||= project.ci_pipelines .order(id: :desc) - .find_by(sha: diff_base_sha) + .find_by(sha: diff_base_sha, ref: target_branch) end def discussions_rendered_on_frontend? diff --git a/changelogs/unreleased/57671-fix_merge_request_base_pipeline.yml b/changelogs/unreleased/57671-fix_merge_request_base_pipeline.yml new file mode 100644 index 00000000000..d89819eee60 --- /dev/null +++ b/changelogs/unreleased/57671-fix_merge_request_base_pipeline.yml @@ -0,0 +1,5 @@ +--- +title: Ensure the base pipeline of a Merge Request belongs to its target branch +merge_request: 25226 +author: +type: fixed diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb index afa87b8a62d..fbd19b024a0 100644 --- a/spec/models/merge_request_spec.rb +++ b/spec/models/merge_request_spec.rb @@ -2604,8 +2604,9 @@ describe MergeRequest do let!(:first_pipeline) { create(:ci_pipeline_without_jobs, pipeline_arguments) } let!(:last_pipeline) { create(:ci_pipeline_without_jobs, pipeline_arguments) } + let!(:last_pipeline_with_other_ref) { create(:ci_pipeline_without_jobs, pipeline_arguments.merge(ref: 'other')) } - it 'returns latest pipeline' do + it 'returns latest pipeline for the target branch' do expect(merge_request.base_pipeline).to eq(last_pipeline) end end |