From 6dc3efdd9896156b5b08c735f1639437ff874fc0 Mon Sep 17 00:00:00 2001 From: Felipe Artur Date: Thu, 22 Dec 2016 16:12:35 -0200 Subject: Do not override incoming webhook channel for mattermost and slack --- app/models/project_services/chat_notification_service.rb | 10 ++++++---- app/models/project_services/mattermost_service.rb | 2 +- app/models/project_services/slack_service.rb | 2 +- changelogs/unreleased/issue_25887.yml | 4 ++++ spec/support/slack_mattermost_notifications_shared_examples.rb | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 changelogs/unreleased/issue_25887.yml diff --git a/app/models/project_services/chat_notification_service.rb b/app/models/project_services/chat_notification_service.rb index b0556987721..475344d80ce 100644 --- a/app/models/project_services/chat_notification_service.rb +++ b/app/models/project_services/chat_notification_service.rb @@ -49,10 +49,12 @@ class ChatNotificationService < Service return false unless message - opt = {} + channel_name = get_channel_field(object_kind).presence || channel - opt[:channel] = get_channel_field(object_kind).presence || channel || default_channel + opt = {} + opt[:channel] = channel_name if channel_name opt[:username] = username if username + notifier = Slack::Notifier.new(webhook, opt) notifier.ping(message.pretext, attachments: message.attachments, fallback: message.fallback) @@ -71,7 +73,7 @@ class ChatNotificationService < Service fields.reject { |field| field[:name].end_with?('channel') } end - def default_channel + def default_channel_placeholder raise NotImplementedError end @@ -103,7 +105,7 @@ class ChatNotificationService < Service def build_event_channels supported_events.reduce([]) do |channels, event| - channels << { type: 'text', name: event_channel_name(event), placeholder: default_channel } + channels << { type: 'text', name: event_channel_name(event), placeholder: default_channel_placeholder } end end diff --git a/app/models/project_services/mattermost_service.rb b/app/models/project_services/mattermost_service.rb index 0650f930402..ee8a0b55275 100644 --- a/app/models/project_services/mattermost_service.rb +++ b/app/models/project_services/mattermost_service.rb @@ -35,7 +35,7 @@ class MattermostService < ChatNotificationService ] end - def default_channel + def default_channel_placeholder "#town-square" end end diff --git a/app/models/project_services/slack_service.rb b/app/models/project_services/slack_service.rb index 0583470d3b5..76d233a3cca 100644 --- a/app/models/project_services/slack_service.rb +++ b/app/models/project_services/slack_service.rb @@ -34,7 +34,7 @@ class SlackService < ChatNotificationService ] end - def default_channel + def default_channel_placeholder "#general" end end diff --git a/changelogs/unreleased/issue_25887.yml b/changelogs/unreleased/issue_25887.yml new file mode 100644 index 00000000000..27299bbc5f9 --- /dev/null +++ b/changelogs/unreleased/issue_25887.yml @@ -0,0 +1,4 @@ +--- +title: Do not override incoming webhook for mattermost and slack +merge_request: +author: diff --git a/spec/support/slack_mattermost_notifications_shared_examples.rb b/spec/support/slack_mattermost_notifications_shared_examples.rb index 8582aea5fe5..74d9b8c6313 100644 --- a/spec/support/slack_mattermost_notifications_shared_examples.rb +++ b/spec/support/slack_mattermost_notifications_shared_examples.rb @@ -105,7 +105,7 @@ RSpec.shared_examples 'slack or mattermost notifications' do allow(chat_service).to receive(:username).and_return(username) expect(Slack::Notifier).to receive(:new). - with(webhook_url, username: username, channel: chat_service.default_channel). + with(webhook_url, username: username). and_return( double(:slack_service).as_null_object ) -- cgit v1.2.1