summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Thomas <nick@gitlab.com>2019-04-01 10:49:56 +0000
committerNick Thomas <nick@gitlab.com>2019-04-01 10:49:56 +0000
commit433cc96551a6d1f1621f9e105b1e7eb1ccc41b7a (patch)
treea355cd32ff76ec9ed07acf968af5fc1a0db7f540
parent0a0388cc81bac3ebc54cf47715cb90566b207a7f (diff)
parent84d96bed60f6ffd7a1bc81f0c99ad7ff3296ef95 (diff)
downloadgitlab-shell-433cc96551a6d1f1621f9e105b1e7eb1ccc41b7a.tar.gz
Merge branch 'display-post-receive-warnings' into 'master'
Display post receive warnings from Rails See merge request gitlab-org/gitlab-shell!288
-rw-r--r--lib/gitlab_post_receive.rb10
-rw-r--r--spec/gitlab_post_receive_spec.rb26
2 files changed, 28 insertions, 8 deletions
diff --git a/lib/gitlab_post_receive.rb b/lib/gitlab_post_receive.rb
index 2d412b9..7c5bd19 100644
--- a/lib/gitlab_post_receive.rb
+++ b/lib/gitlab_post_receive.rb
@@ -24,10 +24,11 @@ class GitlabPostReceive
end
return false unless response
- print_broadcast_message(response['broadcast_message']) if response['broadcast_message']
+ print_formatted_alert_message(response['broadcast_message']) if response['broadcast_message']
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,7 +60,12 @@ class GitlabPostReceive
puts
end
- def print_broadcast_message(message)
+ def print_warnings(warnings)
+ message = "WARNINGS:\n#{warnings}"
+ print_formatted_alert_message(message)
+ end
+
+ def print_formatted_alert_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..d061830 100644
--- a/spec/gitlab_post_receive_spec.rb
+++ b/spec/gitlab_post_receive_spec.rb
@@ -64,7 +64,7 @@ describe GitlabPostReceive do
context 'when contains long url string at end' do
let(:broadcast_message) { "test " * 10 + "message " * 10 + "https://localhost:5000/test/a/really/long/url/that/is/in/the/broadcast/message/do-not-truncate-when-url" }
- it 'doesnt truncate url' do
+ it 'doesnt truncate url' do
expect_any_instance_of(GitlabNet).to receive(:post_receive).and_return(response)
assert_broadcast_message_printed_keep_long_url_end(gitlab_post_receive)
assert_new_mr_printed(gitlab_post_receive)
@@ -76,7 +76,7 @@ describe GitlabPostReceive do
context 'when contains long url string at start' do
let(:broadcast_message) { "https://localhost:5000/test/a/really/long/url/that/is/in/the/broadcast/message/do-not-truncate-when-url " + "test " * 10 + "message " * 11}
- it 'doesnt truncate url' do
+ it 'doesnt truncate url' do
expect_any_instance_of(GitlabNet).to receive(:post_receive).and_return(response)
assert_broadcast_message_printed_keep_long_url_start(gitlab_post_receive)
assert_new_mr_printed(gitlab_post_receive)
@@ -88,7 +88,7 @@ describe GitlabPostReceive do
context 'when contains long url string in middle' do
let(:broadcast_message) { "test " * 11 + "https://localhost:5000/test/a/really/long/url/that/is/in/the/broadcast/message/do-not-truncate-when-url " + "message " * 11}
- it 'doesnt truncate url' do
+ it 'doesnt truncate url' do
expect_any_instance_of(GitlabNet).to receive(:post_receive).and_return(response)
assert_broadcast_message_printed_keep_long_url_middle(gitlab_post_receive)
assert_new_mr_printed(gitlab_post_receive)
@@ -96,7 +96,21 @@ describe GitlabPostReceive do
expect(gitlab_post_receive.exec).to eq(true)
end
end
+ end
+
+ context 'when warnings are present' do
+ let(:response) do
+ {
+ 'reference_counter_decreased' => true,
+ 'warnings' => 'My warning message'
+ }
+ end
+ it 'treats the warning as a broadcast message' do
+ expect_any_instance_of(GitlabNet).to receive(:post_receive).and_return(response)
+ expect(gitlab_post_receive).to receive(:print_formatted_alert_message).with("WARNINGS:\nMy warning message")
+ expect(gitlab_post_receive.exec).to eq(true)
+ end
end
context 'when redirected message available' do
@@ -199,7 +213,7 @@ describe GitlabPostReceive do
expect(gitlab_post_receive).to receive(:puts).with(
" message message message message message message message message"
).ordered
-
+
expect(gitlab_post_receive).to receive(:puts).with(
"https://localhost:5000/test/a/really/long/url/that/is/in/the/broadcast/message/do-not-truncate-when-url"
).ordered
@@ -216,7 +230,7 @@ describe GitlabPostReceive do
"========================================================================"
).ordered
expect(gitlab_post_receive).to receive(:puts).ordered
-
+
expect(gitlab_post_receive).to receive(:puts).with(
"https://localhost:5000/test/a/really/long/url/that/is/in/the/broadcast/message/do-not-truncate-when-url"
).ordered
@@ -245,7 +259,7 @@ describe GitlabPostReceive do
"========================================================================"
).ordered
expect(gitlab_post_receive).to receive(:puts).ordered
-
+
expect(gitlab_post_receive).to receive(:puts).with(
" test test test test test test test test test test test"
).ordered