diff options
-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 |