diff options
author | Luke Duncalfe <lduncalfe@eml.cc> | 2019-03-28 16:59:17 +1300 |
---|---|---|
committer | Luke Duncalfe <lduncalfe@eml.cc> | 2019-03-28 16:59:17 +1300 |
commit | dfb1dac6994bc8ea1d37d35155d41af268ea0239 (patch) | |
tree | 1682084b2164b9e81f4b52c0153d0ba8b5d9b521 | |
parent | 8f8c51561dd28e0c6833eac775564cd65c4ded0d (diff) | |
download | gitlab-shell-dfb1dac6994bc8ea1d37d35155d41af268ea0239.tar.gz |
Allow GitlabPostReceive to print warnings
Warnings are printed using the same method that prints broadcast
messages. This ensures that whatever warnings are returned will be
displayed correctly.
-rw-r--r-- | lib/gitlab_post_receive.rb | 6 | ||||
-rw-r--r-- | spec/gitlab_post_receive_spec.rb | 14 |
2 files changed, 20 insertions, 0 deletions
diff --git a/lib/gitlab_post_receive.rb b/lib/gitlab_post_receive.rb index 2d412b9..f0ff25b 100644 --- a/lib/gitlab_post_receive.rb +++ b/lib/gitlab_post_receive.rb @@ -28,6 +28,7 @@ class GitlabPostReceive print_merge_request_links(response['merge_request_urls']) if response['merge_request_urls'] puts response['redirected_message'] if response['redirected_message'] puts response['project_created_message'] if response['project_created_message'] + print_warnings(response['warnings']) if response['warnings'] response['reference_counter_decreased'] rescue GitlabNet::ApiUnreachableError @@ -59,6 +60,11 @@ class GitlabPostReceive puts end + def print_warnings(warnings) + message = "WARNINGS:\n#{warnings}" + print_broadcast_message(message) + end + def print_broadcast_message(message) # A standard terminal window is (at least) 80 characters wide. total_width = 80 diff --git a/spec/gitlab_post_receive_spec.rb b/spec/gitlab_post_receive_spec.rb index 3cae631..27715db 100644 --- a/spec/gitlab_post_receive_spec.rb +++ b/spec/gitlab_post_receive_spec.rb @@ -96,7 +96,21 @@ describe GitlabPostReceive do expect(gitlab_post_receive.exec).to eq(true) end end + end + + context 'when warnings available' do + let(:response) do + { + 'reference_counter_decreased' => true, + 'warnings' => 'My warning message' + } + end + it 'prints warnings the same ways as broadcast messages' do + expect_any_instance_of(GitlabNet).to receive(:post_receive).and_return(response) + expect(gitlab_post_receive).to receive(:print_broadcast_message).with("WARNINGS:\nMy warning message") + expect(gitlab_post_receive.exec).to eq(true) + end end context 'when redirected message available' do |