hubot-scripts
These are a collection of community scripts for hubot, a chat bot for
your company.
Discovering
Check out the hubot-script-catalog for a list and description
of all the available scripts.
Installing
Once you have Hubot installed, you should already have hubot-scripts
installed.
Check package.json
to be sure. If that is the case, you update hubot-scripts.json
to list any scripts from this repository you want to load. The default
hubot-scripts.json
looks like:
["redis-brain.coffee", "tweet.coffee", "shipit.coffee"]
If you update hubot-scripts
in package.json
, you will automatically get updates to your scripts listed here.
Alternatively, you can copy files from this repository into your scripts
directory.
Note that you would not get updates from the hubot-scripts
repository unless you
copy them yourself.
Any third-party dependencies for scripts need the addition of your package.json
otherwise a lot of errors will be thrown during the start up of your hubot. You
can find a list of dependencies for a script in the documentation header at the
top of the script.
Restart your robot, and you're good to go.
All the scripts in this repository are located in src/scripts
.
Writing
Want to write your own Hubot script? The best way is to take a look at an
existing script and see how things are set up. Hubot scripts
are written in CoffeeScript, a higher-level implementation of JavaScript.
You'll also want to add tests for your script; no one
likes untested code. It makes Hubot sad.
Additionally, it's extremely helpful to add TomDoc to the top of each
file. (Check out an example). We'll pull out the commands
from those lines and display them in the generic, robot-wide hubot help
command.
Please note we're no longer including external dependencies in the
package.json
, so should you wish to include them please include the package
name and required version in the TomDoc comments at the top of your script.
Documentation
We're now requiring all scripts in hubot-scripts to contain a documentation
header so people know every thing about the script.
# Description
# <description of the scripts functionality>
#
# Dependencies:
# "<module name>": "<module version>"
#
# Configuration:
# LIST_OF_ENV_VARS_TO_SET
#
# Commands:
# hubot <trigger> - <what the respond trigger does>
# <trigger> - <what the hear trigger does>
#
# Notes:
# <optional notes required for the script>
#
# Author:
# <github username of the original script author>
If you have nothing to fill in for a section you should include None
in that
section. Empty sections which are optional should be left blank. A script will
be required to fill out the documentation before being merged into the
repository.