Middleware for managing peer approvals of Hubot commands
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
script
src Extract approval code from private repo Aug 19, 2015
test
.editorconfig
.gitignore
.travis.yml
Gruntfile.js
README.md
index.coffee
package.json

README.md

hubot-approval

Middleware for managing peer approvals of Hubot commands

See src/approval.coffee for full documentation.

Installation

In hubot project repo, run:

npm install hubot-approval --save

Then add hubot-approval to your external-scripts.json:

[
  "hubot-approval"
]

Note that hubot-approval needs to be added after whatever module is adding the groups function to the User object.

Assumptions

hubot-approval assumes that there is a piece of middleware executing prior to it that modifies the User object to add a group lookup function (groups). A simple version is below:

robot.listenerMiddleware (context, next, done) ->
  context.response.message.user.groups = (cb) ->
    cb(robot.brain.get('userGroups')[context.response.message.user.name] or [])

Sample Interaction

user1>> hubot do something
hubot>> user1: I need approval for that from someone in 'admin'. In order to approve, say 'hubot approve cheese'.
user2>> hubot approve cheese
hubot>> user2: Approved! Executing 'hubot do something' for user1
hubot>> user1: I did something!