diff options
author | Douwe Maan <douwe@gitlab.com> | 2019-07-04 09:15:36 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2019-07-04 09:15:36 +0000 |
commit | c47eef94032ce1f08e05f7cb95bba9615cdc8a17 (patch) | |
tree | 1e733cfa0a2b47ff6a75cdd8e7993dc4d17d8494 | |
parent | 1ca9784e8ce6fb4d4112f96d8517cee224da5ec4 (diff) | |
parent | df3a0f261360b319d553c7122ac1e7abe6099de0 (diff) | |
download | gitlab-ce-c47eef94032ce1f08e05f7cb95bba9615cdc8a17.tar.gz |
Merge branch 'fix-mwps-shows-inconsistent-sha-ce' into 'master'
CE Port: Fix MWPS/ADMTWPS system notes shows wrong sha
See merge request gitlab-org/gitlab-ce!30160
5 files changed, 13 insertions, 5 deletions
diff --git a/app/services/auto_merge/merge_when_pipeline_succeeds_service.rb b/app/services/auto_merge/merge_when_pipeline_succeeds_service.rb index c41073a73e9..cde8c19e8fc 100644 --- a/app/services/auto_merge/merge_when_pipeline_succeeds_service.rb +++ b/app/services/auto_merge/merge_when_pipeline_succeeds_service.rb @@ -5,7 +5,7 @@ module AutoMerge def execute(merge_request) super do if merge_request.saved_change_to_auto_merge_enabled? - SystemNoteService.merge_when_pipeline_succeeds(merge_request, project, current_user, merge_request.diff_head_commit) + SystemNoteService.merge_when_pipeline_succeeds(merge_request, project, current_user, merge_request.actual_head_pipeline.sha) end end end diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb index 237ddbcf2c2..4783417ad6d 100644 --- a/app/services/system_note_service.rb +++ b/app/services/system_note_service.rb @@ -221,8 +221,8 @@ module SystemNoteService end # Called when 'merge when pipeline succeeds' is executed - def merge_when_pipeline_succeeds(noteable, project, author, last_commit) - body = "enabled an automatic merge when the pipeline for #{last_commit.to_reference(project)} succeeds" + def merge_when_pipeline_succeeds(noteable, project, author, sha) + body = "enabled an automatic merge when the pipeline for #{sha} succeeds" create_note(NoteSummary.new(noteable, project, author, body, action: 'merge')) end diff --git a/spec/services/auto_merge/base_service_spec.rb b/spec/services/auto_merge/base_service_spec.rb index cd08e0b6f32..24cb63a0d61 100644 --- a/spec/services/auto_merge/base_service_spec.rb +++ b/spec/services/auto_merge/base_service_spec.rb @@ -59,6 +59,11 @@ describe AutoMerge::BaseService do context 'when strategy is merge when pipeline succeeds' do let(:service) { AutoMerge::MergeWhenPipelineSucceedsService.new(project, user) } + before do + pipeline = build(:ci_pipeline) + allow(merge_request).to receive(:actual_head_pipeline) { pipeline } + end + it 'sets the auto merge strategy' do subject diff --git a/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb b/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb index a20bf8e17e4..5e84ef052ce 100644 --- a/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb +++ b/spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb @@ -64,8 +64,11 @@ describe AutoMerge::MergeWhenPipelineSucceedsService do end it 'creates a system note' do + pipeline = build(:ci_pipeline) + allow(merge_request).to receive(:actual_head_pipeline) { pipeline } + note = merge_request.notes.last - expect(note.note).to match %r{enabled an automatic merge when the pipeline for (\w+/\w+@)?\h{8}} + expect(note.note).to match "enabled an automatic merge when the pipeline for #{pipeline.sha}" end end diff --git a/spec/services/system_note_service_spec.rb b/spec/services/system_note_service_spec.rb index 2a2547f9400..9f60e49290e 100644 --- a/spec/services/system_note_service_spec.rb +++ b/spec/services/system_note_service_spec.rb @@ -332,7 +332,7 @@ describe SystemNoteService do create(:merge_request, source_project: project, target_project: project) end - subject { described_class.merge_when_pipeline_succeeds(noteable, project, author, noteable.diff_head_commit) } + subject { described_class.merge_when_pipeline_succeeds(noteable, project, author, pipeline.sha) } it_behaves_like 'a system note' do let(:action) { 'merge' } |