HipChat2 Wrapper

A very basic wrapper for the HipChat HTTP API that uses hipchat API v2

Usage

client = HipChat2::Client.new(api_token)
client['my room'].send('username', 'I talk')

# Send notifications to users (default false)\
client['my room'].send('username', 'I quit!', :notify => true)

# Color it red. or “yellow”, “green”, “purple”, “random” (default “yellow”)
client['my room'].send('username', 'Build failed!', :color => 'red')

Capistrano

require 'hipchat/capistrano'

set :hipchat_token, "<your token>"
set :hipchat_room_name, "Your room"
set :hipchat_announce, false # notify users
set :hipchat_color, 'green' # finished deployment message color
set :hipchat_failed_color, 'red' # cancelled deployment message color

Who did it?

To determine the user that is currently running the deploy, the capistrano tasks will look for the following:

  1. The $HIPCHAT_USER environment variable
  2. The hipchat_human capistrano var.
  3. The git user.name var.
  4. The \$USER environment variable.

Rails 3 Rake Task

Send a message using a rake task:

rake hipchat:send["hello world"]

Options like the room, API token, user name and notification flag can be set in YAML.

RAILS_ROOT/config/hipchat.yml:

token: <your token>
room: Your room
user: Your name” # Default to `whoami`
notify: true # Defaults to false

Engine Yard

Use a deploy hook to send messages from Engine Yard’s Cloud platform.

RAILS_ROOT/deploy/after_restart.rb:

on_app_master do
 message = "Deploying revision #{revision[0…6]} to #{node[:environment][:name]}"
 message += " " if migrate?
 message += "."

 # Send a message via rake task assuming a hipchat.yml in your config like above
 run "cd #{release_path} && bundle exec rake hipchat:send MESSAGE='#{message}'"
end

Copyright © 2010 Mojo Tech. See LICENSE for details. Copyright © 2013 Dmitry Rybakov. See LICENSE for details.