lib/kapost_deploy/plugins/slack_after_promote.rb
# frozen_string_literal: true
require "kapost_deploy/slack/notifier"
module KapostDeploy
module Plugins
# After-promotion plugin to notify via slack after a promotion is complete with an
# optional message.
class SlackAfterPromote
def initialize(config,
notifier: KapostDeploy::Slack::Notifier.new(config.options.fetch(:slack_config, nil)))
self.config = config
self.notifier = notifier
end
def before
end
def after
return unless notifier.configured?
message = "#{identity} promoted *#{config.app}* to *#{config.to}*#{additional_message}"
notifier.notify(message)
end
private
def additional_message
slack_config = config.options.fetch(:slack_config)
addl = ""
addl = slack_config.fetch(:additional_message, "") unless slack_config.nil?
addl = "\n#{addl}" unless addl.empty?
addl
end
def identity
@identity ||= `whoami`.chomp
end
attr_accessor :notifier
attr_accessor :config
attr_accessor :slack_config
end
end
end