summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Artur <felipefac@gmail.com>2016-12-22 16:12:35 -0200
committerFelipe Artur <felipefac@gmail.com>2016-12-22 16:16:10 -0200
commit6dc3efdd9896156b5b08c735f1639437ff874fc0 (patch)
tree84439f5c67e3b10a51e89461e24e6aabc8628779
parent47550d092f0a6cbedc58752d1a220fe519b8ea01 (diff)
downloadgitlab-ce-6dc3efdd9896156b5b08c735f1639437ff874fc0.tar.gz
Do not override incoming webhook channel for mattermost and slack
-rw-r--r--app/models/project_services/chat_notification_service.rb10
-rw-r--r--app/models/project_services/mattermost_service.rb2
-rw-r--r--app/models/project_services/slack_service.rb2
-rw-r--r--changelogs/unreleased/issue_25887.yml4
-rw-r--r--spec/support/slack_mattermost_notifications_shared_examples.rb2
5 files changed, 13 insertions, 7 deletions
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
)