Latest version: 0.1.1

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.