class Capistrano::Teams::WebHook

Teams Webhook class

Public Instance Methods

notify( status = fetch(:teams_default_status), theme_color = fetch(:teams_default_color), facts = [] ) click to toggle source
# File lib/capistrano/teams/web_hook.rb, line 11
def notify(
  status = fetch(:teams_default_status),
  theme_color = fetch(:teams_default_color),
  facts = []
)
  content = Message::Builder.of_type(
    fetch(:teams_message_type),
    {
      status: status
    },
    theme_color,
    facts
  ).content
  send_message_to_webhook(content)
end
send_message_to_webhook(body) click to toggle source

Post to Teams.

# File lib/capistrano/teams/web_hook.rb, line 28
def send_message_to_webhook(body)
  uri = URI.parse(fetch(:teams_webhook_url).to_s)
  request = Net::HTTP::Post.new(uri.path)
  request.content_type = 'application/json'
  request.body = body

  opts = { use_ssl: uri.scheme == 'https' } \
         .merge(fetch(:teams_http_options))

  Net::HTTP.start(uri.host, uri.port, opts) do |http|
    http.request(request)
  end
end