node package manager

hubot-stackstorm

A hubot plugin for integrating with StackStorm event-driven infrastructure automation platform.

StackStorm

Build Status IRC

StackStorm Hubot Plugin

Hubot plugin for integrating with StackStorm event-driven infrastructure automation platform.

Installing and configuring the plugin

To install and configure the plugin, first install hubot by following the installation instructions at https://hubot.github.com/docs/.

After you have installed hubot and generated your bot, go to your bot directory and install the plugin npm package:

npm install hubot-stackstorm

After that, edit the external-scripts.json file in your bot directory and make sure it contains hubot-stackstorm entry.

[
  ...
  "hubot-stackstorm"
]

Final file should look something like that:

 
[
  "hubot-diagnostics",
  "hubot-help",
  "hubot-heroku-keepalive",
  "hubot-google-images",
  "hubot-google-translate",
  "hubot-pugme",
  "hubot-maps",
  "hubot-redis-brain",
  "hubot-rules",
  "hubot-shipit",
  "hubot-youtube",
  "hubot-stackstorm"
]

If you want to use this plugin with a Slack adapter, you also need to install hubot-slack npm package.

npm install hubot-slack

After that's done, you are ready to start your bot.

Plugin environment variable options

To configure the plugin behavior, the following environment variable can be specified when running hubot:

  • ST2_API - URL to the StackStorm API endpoint.
  • ST2_WEBUI_URL - Base URL to the WebUI. If provided, link to the execution history will be provided in the chat after every execution (optional).
  • ST2_AUTH_USERNAME - API credentials - username (optional).
  • ST2_AUTH_PASSWORD - API credentials - password (optional).
  • ST2_AUTH_URL - URL to the StackStorm Auth API (optional).
  • ST2_COMMANDS_RELOAD_INTERVAL - How often the list of available commands should be reloaded. Defaults to every 120 seconds (optional).
  • ST2_MAX_MESSAGE_LENGTH - Message truncation to preserve chat context. Default is 500 characters of length. 0 means no limit (optional).
  • ST2_SLACK_SUCCESS_COLOR - Slack attachement color for success, can either be one of good, warning, danger, or any hex color code (optional).
  • ST2_SLACK_FAIL_COLOR - Slack attachement color for failures either be one of good, warning, danger, or any hex color code (optional).

Note: ST2_ROUTE environment variable mentioned below should only be specified if you modified the rule which comes with a hubot pack to use a non default value of hubot for the trigger.route criteria.

  • ST2_ROUTE - StackStorm notification channel where all the notification messages should be sent to. This is the reference to the channel construct internal to StackStorm's notification system. Make sure this value is set to whatever is assigned the rule that defines a StackStrom channel. e.g. hubot is a value that works well with the hubot pack found at https://github.com/StackStorm/st2contrib/tree/master/packs/hubot.

Running the bot

To run the bot, go to your bot directory and run the following command:

ST2_AUTH_USERNAME=testu ST2_AUTH_PASSWORD=testp HUBOT_SLACK_TOKEN=token ST2_ROUTE=mychannel PORT=8181 bin/hubot --name "st2-bot" -a slack --alias !

Keep in mind that you need to replace values of the environment variables so they reflect configuration of your environment.

Known issues / limitations

Please see https://github.com/StackStorm/hubot-stackstorm/issues

Testing

Lint

gulp lint

Tests

gulp test

Publishing

Reminder to ourselves, instead of bumping the version manually, use mversion.

npm install -g mversion
mversion patch

This will bump the version in package.json, commit and create a tag with format described in .mversionrc.

Copyright, License, and Contributors Agreement

Copyright 2015 StackStorm, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this work except in compliance with the License. You may obtain a copy of the License in the LICENSE file, or at: http://www.apache.org/licenses/LICENSE-2.0.

By contributing you agree that these contributions are your own (or approved by your employer) and you grant a full, complete, irrevocable copyright license to all users and developers of the project, present and future, pursuant to the license of the project.