Setting up Supybot with the Bugzilla plugin
Supybot is an IRC bot, an application which can connect to a specific IRC channel and do stuff there. For example, with the Bugzilla plugin, Supybot can report on the channel whenever a new bug is filed, or if somebody mentions “bug 1234” in the conversation, it will print details about bug 1234.
Install supybot
First, you have to install Supybot. If you are using Arch Linux, get supybot from AUR, otherwise read the INSTALL file.
Create a supybot
user on your system, or on a virtual machine where
you want to run the bot.
groupadd --system supybot
useradd -m --system -g supybot supybot
Install the supybot Bugzilla plugin
If you want your bot to announce when new bugs are created, you need to set up an email account, register it on bugzilla and set it up so it gets mails when bugs for your project are created. For this go to Bugzilla -> Preferences -> Email Preferences and read the User Watching section!
Once you have the email account receiving emails from bugzilla, setup
getmail on your
machine
so it downloads the messages from the email account to
/var/mail/supybot
.
touch /var/mail/supybot
chown supybot.supybot /var/mail/supybot
chmod g+w /var/mail/supybot
chmod o-rwx /var/mail/supybot
chown supybot.supybot /var/mail/supybot
Set the getmail job to download the messages using POP and to delete them from the server after retrieving them.
[destination]
type = Mboxrd
path = /var/mail/supybot
[options]
verbose = 2
message_log = ~/.getmail/gmail.log
Now add yourself to the supybot group (so your getmail cronjob can write
the bugzilla emails to /var/mail/supybot
). For this to take effect the
best option is to re-login!
usermod -a -G supybot YOUR_USERNAME
Add a crontab to your account (not supybot) to fetch the bugzilla mail every minute.
* * * * * getmail -d -q -r /path/to/your/getmail/config/file
Setup your bot
Next you have to create a config, and here it gets even more tricky.
Unfortunately, most of the Supybot documentation is
gone
because the supybot.com website is dead and only redirects to the
sourceforge page of the project, where Supybot can be
downloaded.
You have to create a config using supybot-wizard
:
mkdir /home/supybot/pitivi
cd /home/supybot/pitivi
# I suggest to act as an "advanced user" when the wizard asks you
# about what kind of user you are!
supybot-wizard
[...]
# Now see the conf file it created, feel free to rename it to
bot.conf. ;)
ls -l *.conf
Copy the Supybot Bugzilla plugin to your setup. Unfortunately the original repository is broken, but you can get it from my Supybot Bugzilla repository.
cd /home/supybot/pitivi
mkdir plugins
cd plugins
bzr co bzr://bzr.everythingsolved.com/supybot/Bugzilla # Broken!
git clone https://github.com/aleb/supybot-bugzilla.git Bugzilla
Copy the bugzilla section from this sample config
file to your bot.conf
file. Or copy it from the bot.conf
file used by
pitivibot.
Make it dance
Now start your bot from the command line. This way you can see the debug log messages, in case you need to figure out why it does not work.
sudo -u supybot supybot /home/supybot/pitivi/bot.conf
Finally, create /lib/systemd/system/supybot.service
to have it started
automatically.
[Unit]
Description=Pitivi IRC bot
[Service]
User=supybot
ExecStart=/usr/bin/supybot /home/supybot/pitivi/bot.conf
UMask=0007
Restart=on-abort
StartLimitInterval=5m
StartLimitBurst=1
[Install]
WantedBy=multi-user.target
Remember to start it and enable it to start automatically.
systemctl start supybot
systemctl enable supybot