Chiron is a chatbot that listens for messages containing ticket numbers, looks up the ticket in an appropriate bugtracker, and responds with the ticket title and URL. Over time, the definition of "bugtracker" has broadened -- it includes actual bugtrackers like Debathena's, but also MIT class numbers and Bible verses.
It supports running as both a zephyrbot (MIT's chat system) and a Zulip bot.
- Supports "tickets" in more than two dozen different "bugtracker" instances --- see
bugtrackers.txt
for a list - Generic support for projects using
- Trac
- Jira
- Github Issues
- Bugzilla
- Responds to both personal and class/stream messages
- For personal messages, will reply-all when there are multiple recipients
For Zulip support, install using the zulip
extra, and then run ./main.py --protocol=zulip
, which will use your ~/.zuliprc
. Subscriptions are managed
through the usual Zulip mechanisms.
For zephyr support, Chiron requires Evan Broder's
python-zephyr
--
requirements.zephyr.txt
may be useful -- and must be run with tickets so that
it can sub to incoming zephyrs. You may find
k5start
helpful for keeping
current tickets available.
If you just run it with ./main.py
, it will subscribe to zephyr personals only
with some default bugtrackers.
Alex Dehnert runs the primary Chiron instance for zephyr, and is generally happy to add additional matchers, fetchers, or classes. To request changes, please file an issue (or pull request) on Github, zephyr him, or send mail to [email protected].
He also runs instances on some private Zulip realms.
If you want to run your own private production Chiron instance, you can also
do that. By default, main.py
will only sub to personals. You can pass the
--class
option one or more times to tell it to sub to specific classes.
Additionally, when run with the --default-classes
option it will sub to a
variety of default classes. Feel free to crib from main.py
in setting up
your own Chiron instance, or run it subbed only to personals. However, please
ensure that if you run a Chiron instance that subs to non-personals, it
listens on different classes and/or uses different matchers than the primary
instance, so that users don't receive multiple replies to their zephyrs.
(Using the --class
option and not --default-classes
is an easy way to
accomplish this.)
The setup used for running the production zephyr instance on scripts.mit.edu is
in the deploy
directory. It may be a decent reference for deploying your own
copy of Chiron or other similar zephyrbots.