Middleware for managing peer approvals of Hubot commands
See src/approval.coffee
for full documentation.
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.
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 [])
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!