From 20179772140ff0bdc2d61852c0a4f48ee6e4a2d0 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Fri, 3 Oct 2014 16:24:11 +0200 Subject: Use only webhook for slack service integration. --- app/controllers/projects/services_controller.rb | 2 +- app/models/project_services/slack_service.rb | 15 ++++++--------- 2 files changed, 7 insertions(+), 10 deletions(-) (limited to 'app') diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb index 4c558e137ea..31ce9581e5f 100644 --- a/app/controllers/projects/services_controller.rb +++ b/app/controllers/projects/services_controller.rb @@ -40,7 +40,7 @@ class Projects::ServicesController < Projects::ApplicationController def service_params params.require(:service).permit( :title, :token, :type, :active, :api_key, :subdomain, - :room, :recipients, :project_url, + :room, :recipients, :project_url, :webhook :user_key, :device, :priority, :sound ) end diff --git a/app/models/project_services/slack_service.rb b/app/models/project_services/slack_service.rb index 4bda93f6006..2174919346d 100644 --- a/app/models/project_services/slack_service.rb +++ b/app/models/project_services/slack_service.rb @@ -13,10 +13,8 @@ # class SlackService < Service - prop_accessor :room, :subdomain, :token - validates :room, presence: true, if: :activated? - validates :subdomain, presence: true, if: :activated? - validates :token, presence: true, if: :activated? + prop_accessor :webhook + validates :webhook, presence: true, if: :activated? def title 'Slack' @@ -32,9 +30,7 @@ class SlackService < Service def fields [ - { type: 'text', name: 'subdomain', placeholder: '' }, - { type: 'text', name: 'token', placeholder: '' }, - { type: 'text', name: 'room', placeholder: 'Ex. #general' }, + { type: 'text', name: 'webhook', placeholder: '' } ] end @@ -44,9 +40,10 @@ class SlackService < Service project_name: project_name )) + credentials = webhook.match(/(\w*).slack.com.*token=(\w*)/) + subdomain = credentials[1] + token = credentials[2] notifier = Slack::Notifier.new(subdomain, token) - notifier.channel = room - notifier.username = 'GitLab' notifier.ping(message.pretext, attachments: message.attachments) end -- cgit v1.2.1 From e5998adc26f66b2b84cbcc28e98f3fc8f89b4696 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 6 Oct 2014 10:42:03 +0200 Subject: Accommodate new webhook url format. --- app/models/project_services/slack_service.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/models/project_services/slack_service.rb b/app/models/project_services/slack_service.rb index 2174919346d..dfa1e9c9820 100644 --- a/app/models/project_services/slack_service.rb +++ b/app/models/project_services/slack_service.rb @@ -40,11 +40,13 @@ class SlackService < Service project_name: project_name )) - credentials = webhook.match(/(\w*).slack.com.*token=(\w*)/) - subdomain = credentials[1] - token = credentials[2] - notifier = Slack::Notifier.new(subdomain, token) - notifier.ping(message.pretext, attachments: message.attachments) + credentials = webhook.match(/(\w*).slack.com.*services\/(.*)/) + if credentials.present? + subdomain = credentials[1] + token = credentials[2].split("token=").last + notifier = Slack::Notifier.new(subdomain, token) + notifier.ping(message.pretext, attachments: message.attachments) + end end private -- cgit v1.2.1 From 1db8d3104cfab111771a7afbaa015e989640fde4 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Mon, 6 Oct 2014 11:51:15 +0200 Subject: Add missing comma. --- app/controllers/projects/services_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb index 31ce9581e5f..b50f6286459 100644 --- a/app/controllers/projects/services_controller.rb +++ b/app/controllers/projects/services_controller.rb @@ -40,7 +40,7 @@ class Projects::ServicesController < Projects::ApplicationController def service_params params.require(:service).permit( :title, :token, :type, :active, :api_key, :subdomain, - :room, :recipients, :project_url, :webhook + :room, :recipients, :project_url, :webhook, :user_key, :device, :priority, :sound ) end -- cgit v1.2.1