diff --git a/app/models/project_services/asana_service.rb b/app/models/project_services/asana_service.rb index 2b530390aeb..a5686c48bc6 100644 --- a/app/models/project_services/asana_service.rb +++ b/app/models/project_services/asana_service.rb @@ -65,16 +65,16 @@ automatically inspected. Leave blank to include all branches.' ] end - def execute(push) - object_kind = push[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" Asana.configure do |client| client.api_key = api_key end - user = push[:user_name] - branch = push[:ref].gsub('refs/heads/', '') + user = data[:user_name] + branch = data[:ref].gsub('refs/heads/', '') branch_restriction = restrict_to_branch.to_s @@ -86,7 +86,7 @@ automatically inspected. Leave blank to include all branches.' project_name = project.name_with_namespace push_msg = user + ' pushed to branch ' + branch + ' of ' + project_name - push[:commits].each do |commit| + data[:commits].each do |commit| check_commit(' ( ' + commit[:url] + ' ): ' + commit[:message], push_msg) end end diff --git a/app/models/project_services/campfire_service.rb b/app/models/project_services/campfire_service.rb index 41ab6c56ad8..7af6882329c 100644 --- a/app/models/project_services/campfire_service.rb +++ b/app/models/project_services/campfire_service.rb @@ -41,14 +41,14 @@ class CampfireService < Service ] end - def execute(push_data) - object_kind = push_data[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" room = gate.find_room_by_name(self.room) return true unless room - message = build_message(push_data) + message = build_message(data) room.speak(message) end diff --git a/app/models/project_services/emails_on_push_service.rb b/app/models/project_services/emails_on_push_service.rb index 28be15c3b35..1b7ce481c1f 100644 --- a/app/models/project_services/emails_on_push_service.rb +++ b/app/models/project_services/emails_on_push_service.rb @@ -33,11 +33,11 @@ class EmailsOnPushService < Service 'emails_on_push' end - def execute(push_data) - object_kind = push_data[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" - EmailsOnPushWorker.perform_async(project_id, recipients, push_data) + EmailsOnPushWorker.perform_async(project_id, recipients, data) end def fields diff --git a/app/models/project_services/flowdock_service.rb b/app/models/project_services/flowdock_service.rb index 9cc0e367882..e4ea84cb617 100644 --- a/app/models/project_services/flowdock_service.rb +++ b/app/models/project_services/flowdock_service.rb @@ -41,14 +41,14 @@ class FlowdockService < Service ] end - def execute(push_data) - object_kind = push_data[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" Flowdock::Git.post( - push_data[:ref], - push_data[:before], - push_data[:after], + data[:ref], + data[:before], + data[:after], token: token, repo: project.repository.path_to_repo, repo_url: "#{Gitlab.config.gitlab.url}/#{project.path_with_namespace}", diff --git a/app/models/project_services/gemnasium_service.rb b/app/models/project_services/gemnasium_service.rb index 130c9eaeb4b..ada61b78047 100644 --- a/app/models/project_services/gemnasium_service.rb +++ b/app/models/project_services/gemnasium_service.rb @@ -42,14 +42,14 @@ class GemnasiumService < Service ] end - def execute(push_data) - object_kind = push_data[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" Gemnasium::GitlabService.execute( - ref: push_data[:ref], - before: push_data[:before], - after: push_data[:after], + ref: data[:ref], + before: data[:before], + after: data[:after], token: token, api_key: api_key, repo: project.repository.path_to_repo diff --git a/app/models/project_services/hipchat_service.rb b/app/models/project_services/hipchat_service.rb index 462478812a1..965ecdc684b 100644 --- a/app/models/project_services/hipchat_service.rb +++ b/app/models/project_services/hipchat_service.rb @@ -44,11 +44,11 @@ class HipchatService < Service ] end - def execute(push_data) - object_kind = push_data.fetch(:object_kind) + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" - gate[room].send('GitLab', create_message(push_data)) + gate[room].send('GitLab', create_message(data)) end private diff --git a/app/models/project_services/pivotaltracker_service.rb b/app/models/project_services/pivotaltracker_service.rb index 4bb2a978ed1..dd9e7f35c17 100644 --- a/app/models/project_services/pivotaltracker_service.rb +++ b/app/models/project_services/pivotaltracker_service.rb @@ -41,12 +41,12 @@ class PivotaltrackerService < Service ] end - def execute(push) - object_kind = push[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" url = 'https://www.pivotaltracker.com/services/v5/source_commits' - push[:commits].each do |commit| + data[:commits].each do |commit| message = { 'source_commit' => { 'commit_id' => commit[:id], diff --git a/app/models/project_services/pushover_service.rb b/app/models/project_services/pushover_service.rb index 4aa7e0afa77..a715e7b2cc5 100644 --- a/app/models/project_services/pushover_service.rb +++ b/app/models/project_services/pushover_service.rb @@ -80,24 +80,24 @@ class PushoverService < Service ] end - def execute(push_data) - object_kind = push_data[:object_kind] + def execute(data) + object_kind = data[:object_kind] return unless object_kind == "push" - ref = push_data[:ref].gsub('refs/heads/', '') - before = push_data[:before] - after = push_data[:after] + ref = data[:ref].gsub('refs/heads/', '') + before = data[:before] + after = data[:after] if before.include?('000000') - message = "#{push_data[:user_name]} pushed new branch \"#{ref}\"." + message = "#{data[:user_name]} pushed new branch \"#{ref}\"." elsif after.include?('000000') - message = "#{push_data[:user_name]} deleted branch \"#{ref}\"." + message = "#{data[:user_name]} deleted branch \"#{ref}\"." else - message = "#{push_data[:user_name]} push to branch \"#{ref}\"." + message = "#{data[:user_name]} push to branch \"#{ref}\"." end - if push_data[:total_commits_count] > 0 - message << "\nTotal commits count: #{push_data[:total_commits_count]}" + if data[:total_commits_count] > 0 + message << "\nTotal commits count: #{data[:total_commits_count]}" end pushover_data = { @@ -107,7 +107,7 @@ class PushoverService < Service priority: priority, title: "#{project.name_with_namespace}", message: message, - url: push_data[:repository][:homepage], + url: data[:repository][:homepage], url_title: "See project #{project.name_with_namespace}" } diff --git a/app/models/project_services/slack_service.rb b/app/models/project_services/slack_service.rb index 1318a1ed1b8..8289e474031 100644 --- a/app/models/project_services/slack_service.rb +++ b/app/models/project_services/slack_service.rb @@ -16,9 +16,6 @@ # merge_requests_events :boolean default(TRUE) # tag_push_events :boolean default(TRUE) # -require "slack_messages/slack_issue_message" -require "slack_messages/slack_push_message" -require "slack_messages/slack_merge_message" class SlackService < Service prop_accessor :webhook, :username, :channel @@ -59,14 +56,15 @@ class SlackService < Service # 'close' action. Ignore update events for now to prevent duplicate # messages from arriving. - message = case object_kind - when "push" - message = SlackMessages::SlackPushMessage.new(data) - when "issue" - message = SlackMessages::SlackIssueMessage.new(data) unless is_update?(data) - when "merge_request" - message = SlackMessages::SlackMergeMessage.new(data) unless is_update?(data) - end + message = \ + case object_kind + when "push" + PushMessage.new(data) + when "issue" + IssueMessage.new(data) unless is_update?(data) + when "merge_request" + MergeMessage.new(data) unless is_update?(data) + end opt = {} opt[:channel] = channel if channel @@ -92,3 +90,7 @@ class SlackService < Service data[:object_attributes][:action] == 'update' end end + +require "slack_service/issue_message" +require "slack_service/push_message" +require "slack_service/merge_message" \ No newline at end of file diff --git a/app/models/project_services/slack_messages/slack_base_message.rb b/app/models/project_services/slack_service/slack_base_message.rb similarity index 89% rename from app/models/project_services/slack_messages/slack_base_message.rb rename to app/models/project_services/slack_service/slack_base_message.rb index c2fc27884bf..aa00d6061a1 100644 --- a/app/models/project_services/slack_messages/slack_base_message.rb +++ b/app/models/project_services/slack_service/slack_base_message.rb @@ -1,7 +1,7 @@ require 'slack-notifier' -module SlackMessages - class SlackBaseMessage +class SlackService + class BaseMessage def initialize(params) raise NotImplementedError end diff --git a/app/models/project_services/slack_messages/slack_issue_message.rb b/app/models/project_services/slack_service/slack_issue_message.rb similarity index 94% rename from app/models/project_services/slack_messages/slack_issue_message.rb rename to app/models/project_services/slack_service/slack_issue_message.rb index 0c3a492aae7..cb2e3f7421f 100644 --- a/app/models/project_services/slack_messages/slack_issue_message.rb +++ b/app/models/project_services/slack_service/slack_issue_message.rb @@ -1,5 +1,5 @@ -module SlackMessages - class SlackIssueMessage < SlackBaseMessage +module SlackService + class IssueMessage < BaseMessage attr_reader :username attr_reader :title attr_reader :project_name diff --git a/app/models/project_services/slack_messages/slack_merge_message.rb b/app/models/project_services/slack_service/slack_merge_message.rb similarity index 94% rename from app/models/project_services/slack_messages/slack_merge_message.rb rename to app/models/project_services/slack_service/slack_merge_message.rb index bc49a963a9b..309983e9f1c 100644 --- a/app/models/project_services/slack_messages/slack_merge_message.rb +++ b/app/models/project_services/slack_service/slack_merge_message.rb @@ -1,5 +1,5 @@ -module SlackMessages - class SlackMergeMessage < SlackBaseMessage +module SlackService + class MergeMessage < BaseMessage attr_reader :username attr_reader :project_name attr_reader :project_url diff --git a/app/models/project_services/slack_messages/slack_push_message.rb b/app/models/project_services/slack_service/slack_push_message.rb similarity index 97% rename from app/models/project_services/slack_messages/slack_push_message.rb rename to app/models/project_services/slack_service/slack_push_message.rb index c7769bbeda1..ab2d48f9fb2 100644 --- a/app/models/project_services/slack_messages/slack_push_message.rb +++ b/app/models/project_services/slack_service/slack_push_message.rb @@ -1,7 +1,7 @@ require 'slack-notifier' -module SlackMessages - class SlackPushMessage < SlackBaseMessage +module SlackService + class PushMessage < BaseMessage attr_reader :after attr_reader :before attr_reader :commits