IRC bot for the Homebrew Cask project.
Main features:
- Runs on Heroku with one dyno.
- Incorporates a web server so it can receive and process web hooks.
- Written in Ruby to match the rest of the project.
- Uses Octokit for Github requests as well as webhook.
- Pulls all configuration from ENV.
These are all required, except for PORT= and RACK_ENV=:
-
GITHUB_TOKEN= Personal token to be used by the bot. Permissions used: gist, public_repo, read:org, repo:status.
-
IRC_CHANNELS= Space-delimited list of channels the bot should connect to. The first one will be "mainchan", to which messages that aren't replies to commands or patterns (such as responses from webhooks) will be sent.
-
IRC_NICK=
-
IRC_PORT=
-
IRC_REALNAME=
-
IRC_SERVER=
-
IRC_SSL=
0
for no encryption,1
for SSL without verification,2
for verified SSL. -
PORT= Port the web server runs on. This shouldn't be set on Heroku, but is useful for development.
-
RACK_ENV= Currently only used for Bundler loading. Defaults to
production
.
To run locally:
- Clone this repo,
- Create a
.env
file with the configuration above in the formKEY="value"
, - Install the dependencies:
bundle
, - If using rbenv, run
rbenv rehash
, - Start the bot:
bundle exec foreman start
.
The bot needs to be restarted at every change.
Nothing yet!
Parse issue numbers from within messages e.g. #123
and display information.
When subscribed to a repo, display some events as they come in: new issues and PRs, releases.
Streamload URLs and compute their SHA256 checksum.
Fetch results from cask tastings.
Search casks.
Created by @passcod for @caskroom, Public Domain.