Hubot plugin for integrating with StackStorm event-driven infrastructure automation platform.
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.
To configure the plugin behavior, the following environment variable can be specified when running hubot:
ST2_API_URL
- 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_STREAM_URL
- URL to the StackStorm Stream 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).ST2_ROCKETCHAT_SUCCESS_COLOR
- RocketChat attachement color for success, can either be one of good, warning, danger, or any hex color code (optional).ST2_ROCKETCHAT_FAIL_COLOR
- RocketChat 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 thehubot
pack found at https://github.com/StackStorm/st2contrib/tree/master/packs/hubot.
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.
Please see https://github.com/StackStorm/hubot-stackstorm/issues
gulp lint
gulp test
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 2015-2019 Extreme Networks, 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
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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.