diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2019-07-05 16:31:10 -0300 |
---|---|---|
committer | Oswaldo Ferreira <oswaldo@gitlab.com> | 2019-07-09 14:36:29 -0300 |
commit | 84dd31493ec1a4d1463e13a3dc672f5cf5398aa3 (patch) | |
tree | 8db439885c6d85c1bf9e6389746c9930e877d48e /spec/services/merge_requests/merge_service_spec.rb | |
parent | ededb334c66fa25cb8518258d85b1f7da1dd8f26 (diff) | |
download | gitlab-ce-84dd31493ec1a4d1463e13a3dc672f5cf5398aa3.tar.gz |
[CE port] Bypass push rules for merge to ref serviceosw-bypass-push-rules-for-merge-to-ref
Turns out push rules to validate commit message does
not apply in the context of automatic merge to
the refs/merge-requests/:iid/merge. Mainly because
if it fails to merge to it, we currently can't give enough
preemptive feedback to the user and it'll turn the
merge request unmergeable (given we automatically
mark it as unmergeable if we can't merge to the ref).
In general, it's a systematic operation, which already
bypasses user authorization and git hooks.
Therefore, this commit makes it bypass the push rules
at EE as well.
Diffstat (limited to 'spec/services/merge_requests/merge_service_spec.rb')
-rw-r--r-- | spec/services/merge_requests/merge_service_spec.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/services/merge_requests/merge_service_spec.rb b/spec/services/merge_requests/merge_service_spec.rb index aa759ac9edc..22578436c18 100644 --- a/spec/services/merge_requests/merge_service_spec.rb +++ b/spec/services/merge_requests/merge_service_spec.rb @@ -214,6 +214,19 @@ describe MergeRequests::MergeService do allow(Rails.logger).to receive(:error) end + context 'when source is missing' do + it 'logs and saves error' do + allow(merge_request).to receive(:diff_head_sha) { nil } + + error_message = 'No source for merge' + + service.execute(merge_request) + + expect(merge_request.merge_error).to eq(error_message) + expect(Rails.logger).to have_received(:error).with(a_string_matching(error_message)) + end + end + it 'logs and saves error if there is an exception' do error_message = 'error message' |