I was looking for a way to get git commit notifications in IRC, and there are several examples of bots that do this. However, being a Pythonista, if I’m going to run an IRC bot it’s going to be one written in Python. The main idea is that I figured I’d probably want to extend it, and in that case, it ought to be in a language I love.
After some investigation, I found Supybot, a robust, extensible IRC bot written in — you guessed it — Python. It has a pretty slick installation wizard to get you up and running without fiddling with any configuration files. It also ships with a robust collection of plugins, and many have written third-party plugins as well.
Since no git notification plugin existed, I went ahead and wrote one. It’s been running on my IRC server for over a year now, and I recently decided to clean it up and open source it. I present supybot-git!
It’s pretty straightforward to get up and running, and has the following features:
- Can monitor any number of repositories
- Repositories are associated with a list of IRC channels:
repositoriescommand lists repositories associated with the current channel
- Notifications will appear on these channels
- Users can display recent commit log on this channel (with the
- People on other channels will have no indication the repository exists
- Asynchronous commit notification
- Configurable polling frequency (default: every 2 minutes)
- Configurable notification format (you can use the commit author, branch, message, provide a link to the commit, and more)
- Reload configuration with
It’s built with the assumption that you may want to retain some privacy, i.e. monitor a closed-source git repository. This means that people in one channel are allowed to see commit information, but other channels will have no idea that the repository even exists. I currently have my bot monitoring six repositories across three IRC channels and it has been perfectly stable.
Grab supybot-git and try it out! Let me know how it’s working for you.