class Tomo::Plugin::Rollbar::Tasks

Public Instance Methods

notify_deploy() click to toggle source
# File lib/tomo/plugin/rollbar/tasks.rb, line 7
def notify_deploy
  require_settings :rollbar_env, :rollbar_token

  http_post(
    "https://api.rollbar.com/api/1/deploy/",
    local_username: remote.release[:deploy_user],
    access_token:   settings.fetch(:rollbar_token),
    environment:    settings.fetch(:rollbar_env),
    revision:       remote.release[:revision]
  )

  logger.info("Rollbar notification complete.")
end

Private Instance Methods

handle_error(response) click to toggle source
# File lib/tomo/plugin/rollbar/tasks.rb, line 38
def handle_error(response)
  return if response.is_a?(Net::HTTPSuccess)

  die("#{response.code} #{response.message}")
end
http_post(url, params) click to toggle source
# File lib/tomo/plugin/rollbar/tasks.rb, line 23
def http_post(url, params)
  uri = URI(url)
  request = Net::HTTP::Post.new(uri.request_uri)
  request.body = ::JSON.dump(params)
  request["Content-Type"] = "application/json"

  logger.debug("Building Rollbar POST to #{uri} with #{params.inspect}")
  return if dry_run?

  response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
    http.request(request)
  end
  handle_error(response)
end