Hipchat S3

A way to send file uploads to your hipchat channel using s3

Uses the hipchat gem and the aws-s3

Usage

hipchat_s3 = HipchatS3.new({:s3 => {:access_key_id => 'your-key', :secret_access_key => 'your-secret', :bucket => 'bucket'}, :hipchat => {:api_token => 'your-token'}})
hipchat_s3.s3_bucket = "another_bucket" # you can change your bucket name whenever you need</code>

<code># displays thumbnail in chat that links to full size image
hipchat_s3.create_inline_image('image_path.jpg', hipchat_room_id, {:thumbnail_path => "thumb_path.jpg", :username => "Magic", :message => "message", :color => "green"})</code>

<code># displays full size image, no thumbnail, directly in the chat
hipchat_s3.create_inline_image('image_path.jpg', hipchat_room_id)</code>

<code># compresses a directory or file and uploads a tar.gz, linked to the room
hipchat_s3.create_compressed_upload(path_to_compress, hipchat_room_id, {:message => "Files Compressed", :color => "green"})</code>

<code># uploads an uncompressed file to s3, displays link in chat
hipchat_s3.create_file_upload(file_path, hipchat_room_id, {:username => "FileManager"})</code>

<code># you can also access the chat object directly
hipchat_s3.hipchat_client[hipchat_room_id].send("Enforcer", "Failure! You can't do that!!!", :notify => true, :color => "red")

Methods

create_compressed_upload(path, room, options={})
create_file_upload(file_path, room, options={})
create_inline_image(image_path, room, options={})</code>

<code># Default options
{:username => 'fileuploader', :message => "File Uploaded", :color => 'yellow'}</code>

<code># Default options for create_inline_image
{:thumbnail_path => nil, :username => 'fileuploader', :message => "Image Uploaded", :color => 'yellow'}

Rspec hook

config.after(:each) do
  if example.exception</code>

<code>    message = "#{example.full_description} <br> #{example.location}"
    hipchat_s3 ||= HipchatS3.new(HIPCHAT_S3)</code>

<code>    if example.metadata[:type] == :acceptance && example.metadata[:js] == true
      page.driver.browser.save_screenshot("failure.jpg")
      hipchat_s3.create_inline_image("failure.jpg", hipchat_id, {:message => message, :username => "Failmaster", :color => "red"})
    else
      hipchat_s3.hipchat_client[hipchat_id].send("Enforcer", "Failure! YOU BROKE THE BUILD <br> #{message}", :notify => true, :color => "red")
    end</code>

<code>  end
end