class PuppetWebhook::Chatops::Slack
Sets up Slack
object that will send notifications to Slack
via a webhook.
Public Class Methods
new(channel, url, user, message, options = {})
click to toggle source
# File lib/plugins/chatops/slack.rb, line 7 def initialize(channel, url, user, message, options = {}) @channel = channel @url = url @user = user @message = message @options = options end
Public Instance Methods
notify()
click to toggle source
# File lib/plugins/chatops/slack.rb, line 15 def notify notifier = ::Slack::Notifier.new @url, http_options: @options[:http_options] target = if @message[:branch] @message[:branch] elsif @message[:module] @message[:module] end msg = format_message(target) notifier.post text: msg[:fallback], channel: @channel, username: @user, icon_emoji: @options[:icon_emoji], attachments: [msg] end
Private Instance Methods
format_message(target)
click to toggle source
# File lib/plugins/chatops/slack.rb, line 35 def format_message(target) message = { author: 'r10k for Puppet', title: "r10k deployment of Puppet environment #{target}" } case @message[:status_code] when 202 message.merge!( color: 'good', text: "Successfully started deployment of #{target}", fallback: "Successfully started deployment of #{target}" ) when 500 message.merge!( color: 'bad', text: "Failed to deploy #{target}", fallback: "Failed to deploy #{target}" ) end message end