git irc bot post-commit script

Tutorial for a "DYI CIA.vc" to post git commits or pushes to an IRC channel

Created by: spiderr, Last modification: 12 May 2011 (15:53 UTC)
If you are looking to have your git repos commit to an IRC server (private or public), you have come to the right place. After doing much digging around for the git equivalent of the svn irc bot, a kind stranger on irc.freenode.net/#git told me about the ii irc client.

What is so great about this solution is there is NO dependency hell like java groovy IRC framework. Just a very small single binary application. Just install the little app, and config some files. No script needed.

  1. Download, compile, and install the ii irc application
  2. Have ii start up on boot and join your desired channel. When ii starts up, it will create directories and pipe files in the current working directory. For example, if you run ii as the git user in /home/git, you can add this to your /etc/rc.local:
    
    su -c "ii -s irc.example.com &" - git
    echo "/j #foobar" > /home/git/irc/irc.example.com/in
  3. Edit your post-receive or post-commit in repo.git/hooks (or repo/.git/hooks) depending on how you want to setup your notifications. Be sure to chmod with proper exec perms (e.g. 770 or ug+x). Example post-receive:
    
    #!/bin/sh
    echo "_____________________________________________"  > /home/git/irc/irc.example.com/#foobar/in
    echo "git push received at `hostname`" > /home/git/irc/irc.example.com/#foobar/in
    git log -1 --name-status > /home/git/irc/irc.example.com/#foobar/in

PS, if you are looking to run your own IRC server, ircd-ratbox works great has handy RPM install.