Commit 90c5ddc6 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab-ce master

parents 4c7b20f1 154720ca
...@@ -15,7 +15,7 @@ module Emails ...@@ -15,7 +15,7 @@ module Emails
def pipeline_mail(pipeline, recipients, status) def pipeline_mail(pipeline, recipients, status)
@project = pipeline.project @project = pipeline.project
@pipeline = pipeline @pipeline = pipeline
@merge_request = pipeline.merge_requests.first @merge_request = pipeline.merge_requests_as_head_pipeline.first
add_headers add_headers
# We use bcc here because we don't want to generate this emails for a # We use bcc here because we don't want to generate this emails for a
......
...@@ -39,7 +39,7 @@ module Ci ...@@ -39,7 +39,7 @@ module Ci
# Merge requests for which the current pipeline is running against # Merge requests for which the current pipeline is running against
# the merge request's latest commit. # the merge request's latest commit.
has_many :merge_requests, foreign_key: "head_pipeline_id" has_many :merge_requests_as_head_pipeline, foreign_key: "head_pipeline_id", class_name: 'MergeRequest'
has_many :pending_builds, -> { pending }, foreign_key: :commit_id, class_name: 'Ci::Build' has_many :pending_builds, -> { pending }, foreign_key: :commit_id, class_name: 'Ci::Build'
has_many :retryable_builds, -> { latest.failed_or_canceled.includes(:project) }, foreign_key: :commit_id, class_name: 'Ci::Build' has_many :retryable_builds, -> { latest.failed_or_canceled.includes(:project) }, foreign_key: :commit_id, class_name: 'Ci::Build'
......
...@@ -30,6 +30,6 @@ class PipelineMetricsWorker ...@@ -30,6 +30,6 @@ class PipelineMetricsWorker
# rubocop: enable CodeReuse/ActiveRecord # rubocop: enable CodeReuse/ActiveRecord
def merge_requests(pipeline) def merge_requests(pipeline)
pipeline.merge_requests.map(&:id) pipeline.merge_requests_as_head_pipeline.map(&:id)
end end
end end
...@@ -127,7 +127,7 @@ ci_pipelines: ...@@ -127,7 +127,7 @@ ci_pipelines:
- scheduled_actions - scheduled_actions
- artifacts - artifacts
- pipeline_schedule - pipeline_schedule
- merge_requests - merge_requests_as_head_pipeline
- merge_request - merge_request
- deployments - deployments
- environments - environments
......
...@@ -2278,7 +2278,7 @@ describe Ci::Pipeline, :mailer do ...@@ -2278,7 +2278,7 @@ describe Ci::Pipeline, :mailer do
end end
end end
describe "#merge_requests" do describe "#merge_requests_as_head_pipeline" do
let(:project) { create(:project) } let(:project) { create(:project) }
let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: project, ref: 'master', sha: 'a288a022a53a5a944fae87bcec6efc87b7061808') } let(:pipeline) { create(:ci_empty_pipeline, status: 'created', project: project, ref: 'master', sha: 'a288a022a53a5a944fae87bcec6efc87b7061808') }
...@@ -2286,20 +2286,20 @@ describe Ci::Pipeline, :mailer do ...@@ -2286,20 +2286,20 @@ describe Ci::Pipeline, :mailer do
allow_any_instance_of(MergeRequest).to receive(:diff_head_sha) { 'a288a022a53a5a944fae87bcec6efc87b7061808' } allow_any_instance_of(MergeRequest).to receive(:diff_head_sha) { 'a288a022a53a5a944fae87bcec6efc87b7061808' }
merge_request = create(:merge_request, source_project: project, head_pipeline: pipeline, source_branch: pipeline.ref) merge_request = create(:merge_request, source_project: project, head_pipeline: pipeline, source_branch: pipeline.ref)
expect(pipeline.merge_requests).to eq([merge_request]) expect(pipeline.merge_requests_as_head_pipeline).to eq([merge_request])
end end
it "doesn't return merge requests whose source branch doesn't match the pipeline's ref" do it "doesn't return merge requests whose source branch doesn't match the pipeline's ref" do
create(:merge_request, source_project: project, source_branch: 'feature', target_branch: 'master') create(:merge_request, source_project: project, source_branch: 'feature', target_branch: 'master')
expect(pipeline.merge_requests).to be_empty expect(pipeline.merge_requests_as_head_pipeline).to be_empty
end end
it "doesn't return merge requests whose `diff_head_sha` doesn't match the pipeline's SHA" do it "doesn't return merge requests whose `diff_head_sha` doesn't match the pipeline's SHA" do
create(:merge_request, source_project: project, source_branch: pipeline.ref) create(:merge_request, source_project: project, source_branch: pipeline.ref)
allow_any_instance_of(MergeRequest).to receive(:diff_head_sha) { '97de212e80737a608d939f648d959671fb0a0142b' } allow_any_instance_of(MergeRequest).to receive(:diff_head_sha) { '97de212e80737a608d939f648d959671fb0a0142b' }
expect(pipeline.merge_requests).to be_empty expect(pipeline.merge_requests_as_head_pipeline).to be_empty
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment