class Boxen::Hook::Web

Public Instance Methods

perform?() click to toggle source
# File lib/boxen/hook/web.rb, line 8
def perform?
  enabled?
end

Private Instance Methods

call() click to toggle source
# File lib/boxen/hook/web.rb, line 13
def call
  payload = {
    :login  => config.user,
    :sha    => checkout.sha,
    :status => result.success? ? 'success' : 'failure',
    :time   => "#{Time.now.utc.to_i}"
  }

  post_web_hook payload
end
post_web_hook(payload) click to toggle source
# File lib/boxen/hook/web.rb, line 24
def post_web_hook(payload)
  headers = { 'Content-Type' => 'application/json' }

  uri = URI.parse(URI.escape(ENV['BOXEN_WEB_HOOK_URL']))

  user, pass, host, port, path = \
    uri.user, uri.pass, uri.host, uri.port, uri.path

  request = Net::HTTP::Post.new(path, initheader = headers)

  if uri.scheme =~ /https/
    http.use_ssl = true
  end

  if user && pass
    request.basic_auth user, pass
  end

  request.body = payload.to_json

  response = Net::HTTP.new(host, port).start do |http|
    http.request(request)
  end
end
required_environment_variables() click to toggle source
# File lib/boxen/hook/web.rb, line 49
def required_environment_variables
  ['BOXEN_WEB_HOOK_URL']
end