Whistle is a jabber bot that will follow SVN repositories and RSS/Atom feeds and notify you(r team) about the new changes:
Installation
The easiest way to install it is using the RubyGems:
$ sudo gem install whistle
After that, you'll need to create a configuration file for your bot:
$ whistle marvin
Config file marvin.yml not found, push enter to create
sample or CTRL-C
Ok, edit the marvin.yml and try again.
Configuration
Let's take a look at the config file, it's more or less self-explaining:
check: - svn://user:password@svn.example.org/repos/trunk - http://user:password@example.org/feed jabber: user: user@jabber.example.com password: mypassword subscribers: - django@mueller.name - john@doe.name #- disabled@example.name #relay: localhost:2000
The first subscriber in the list will be sent additional debugging information should something go wrong.
Starting
Start by calling whistle with the name of the config file as argument:
$ whistle marvin
Starting...
You'll probably want to run it in the background:
$ nohup whistle marvin &(daemonization and logging are the next things on the to-do list, I swear)
Relay
If you activate the relay, everything sent to the port configured will get relayed to the subscribers. This is handy for letting other applications send notifications. For example, here's a capistrano task that will notify subscribers when the new version gets deployed:
task :notify do
run "echo Revision #{latest_revision} deployed | nc bothostname 10000"
end
Hacking
If you want to contribute or take a look at the latest version, the SVN repository lives at
svn://svn.esse.at/whistle/trunk
That's it!
Oh yes, support for more messaging protocols is planned. Whistle currently uses RSCM for interaction with Subversion, so it should not be all too hard to support additional SCMs as well.