Monday, October 29, 2007

How to use rbot, svnwatch.rb plugin and post-commit to log svn commits to an IRC channel

I have not seen this all in one place so here it is: (Obviously if you do not know what I am talking about here, then you do not need this)

How to setup svn (subversion) logging when a commit is made

1. using Debian, issue this command as root: apt-get install rbot
2. using other Linux'es, install the ruby gem, first search for it: sudo gem list --remote rbot
3. pick the rbot you want (get the latest stable) and install the gem
4. run rbot, the first time you run it, rbot will check to see if you have a ~/.rbot directory, if not, then the setup script runs
5. answer most questions as the defauit. The questions you need to fill in are the irc user, the irc server, the irc channel to join
6. ensure the irc channel to join is in the format: #our_cool_channel somepassword
7. once rbot loads and starts running, check to see if the rbot user you made up actually joined the irc channel. If it did, continue, of not, then go back and troubleshoot
8. Shutdown rbot by sending a CTRL-c to the term, then start it back up in "daemon" mode: rbot -b
9. Add "svnwatch.rb" to ~/.rbot/plugins/ This file should be on RobbyOnRails somewhere, search for it
10. Add the post-commit file somewhere (also on RobbyOnRails) where apache can run it when a commit is made, I recommend something like /usr/local/bin
11. create a symlink to the post-commit script in the hooks directory of each svn project you will to run this post-commit script for
12. For example, I want to have a script log to the irc channel when a commit is made to liberty sweet. So I would: ln -s /usr/local/bin/post-commit /home/svn/src/cool_project/hooks/post-commit
13. What this does is run the post-commit in /usr/local/bin/post-commit which fires off a commit message (on port 7666 by default) to rbot, which is logged into the channel.