Sha256: fe4862990e55f63eb28fa50c7f61d06f0e978699afaf1974fcf2e158e03dcbc3
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
module Vidar class SlackNotification SUCCESS_COLOR = "good".freeze ERROR_COLOR = "danger".freeze def initialize(webhook_url:, github:, revision:, revision_name:, cluster_name:, cluster_url:) @webhook_url = webhook_url @github = github @revision = revision @revision_name = revision_name @cluster_name = cluster_name @cluster_url = cluster_url @connection = Faraday.new end def configured? !webhook_url.to_s.empty? end def error message = "Failed deploy of #{github_link} to #{cluster_link} :fire: <!channel>" perform_with data(message: message, color: ERROR_COLOR) end def success message = "Successful deploy of #{github_link} to #{cluster_link}" perform_with data(message: message, color: SUCCESS_COLOR) end def perform_with(data) connection.post do |req| req.url webhook_url req.headers['Content-Type'] = 'application/json' req.body = data.to_json end end private attr_reader :webhook_url, :github, :revision, :revision_name, :cluster_name, :cluster_url, :connection def data(message:, color:) { "attachments": [ { "title": github, "title_link": github_url, "color": color, "text": message, "fallback": message } ] } end def github_url "https://github.com/#{github}/commit/#{revision}" end def github_link "<#{github_url}|#{revision_name}>" end def cluster_link "<#{cluster_url}|#{cluster_name}>" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vidar-0.3.0 | lib/vidar/slack_notification.rb |
vidar-0.2.1 | lib/vidar/slack_notification.rb |