Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.ruby-version
.rvmrc
.travis.yml
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
rainforest_auth.gemspec

README.md

Gem Version Build Status Dependency Status

Rainforest Auth

Allows verification of Rainforest webhook messages using your private API key.

Installation

Rainforest Auth is available as a gem, to install it just install the gem:

gem install rainforest_auth

If you're using Bundler, add the gem to Gemfile.

gem 'rainforest_auth'

Then run bundle install.

Where can I find my API key?

You can find your API key for Rainforest under the Accounts setting page. If you get stuck finding this, please reach out!

Examples

The following example recieves a 'before_run' notification from Rainforest, authenticates it, does a task for you and then notifies Rainforest to continue.

require "rainforest/auth"
require "httparty"

class RainforestCallbacksController < ApplicationController
  def create
    # Check the callback is valid
    rainforest_auther.run_if_valid(params[:digest], params[:callback_type], params[:options]) do

        # Work out what to do
        case params[:callback_type]
            when 'before_run'
                # Reset the database?
            when 'after_run'
                # Trigger deploy!
        end

        # Get the callback url for this run
        callback_url = rainforest_auther.get_run_callback(params[:options]['run_id'], params[:callback_type])

        # Notify Rainforest you are ready for a run to start
        HTTParty.post callback_url
    end
  end

private
  def rainforest_auther
    @rainforest_auther ||=  RainforestAuth.new 'YOUR_KEY_HERE'
  end
end

Checking if the signature is valid;

require "rainforest/auth"

r_auth = RainforestAuth.new('YOUR_KEY_HERE')

# Check the digest is correct
if r_auth.verify digest, callback_type, options
    puts "The digest was valid."
else
    puts "The digest was invalid!"
end

Running a block if the signature is valid;

require "rainforest/auth"

r_auth = RainforestAuth.new('YOUR_KEY_HERE')

# Run a block if it works
r_auth.run_if_valid(digest, callback_type, options) {
    puts "The digest was valid."
}

License

MIT License. See LICENSE for details.

Copyright

Copyright (c) 2014 CLDRDR, Inc.