Commit Bot for GitHub

GitHubでは、プロジェクトのコミットをfollowして興味のあるプロジェクトのコミットのみをまとめてみれるのですが、毎日それらを全部見るのはなかなか大変だったりします。

興味のあるプロジェクトの場合、割とfreenodeにIRCのチャンネルがあって、そこにjoinしていたりするので、#codereposみたいにコミットを流したくなり、今まではplaggerでGitHubのフィードをチェックしてNotify::IRCでポストしていたのですが、3つ、4つと設定するたびに、cronやplagger-ircdがどんどん増えていき、管理が大変になりました。

そこでそれらをまとめられないかなと自分で書くことにしました。GitHubはプロジェクトにURLを登録しておくと、そこにコミット情報をJSONで送ってくれる機能があるので、それらを受けて動作するものにしました。その方が即時性が高いし、定期アクセスさせないですむので向こうのサーバーにも優しいからです。

使ってるGemは、json、net-irc、rack ( mongrel )と比較的インストールも楽なのでぜひお試しください。ひょっとすると、各worker ( pluginのようなもの )に設定できる項目を宣言的に書いてもっとわかりやすくするために、この前のclassXを今後使うようにするかもしれません。( まだ gemにもなってないですがw )

http://github.com/walf443/github-post-reciever/tree/master

この手のプロジェクトはGitHubに色々あるのですが、自分のやつの特徴としては、サーバーがrequestを受けてresponseはすぐに返してしまい、非同期に処理をさせるために、Drb、Threadを使っていることです。この方がblockしないので向こうのサーバーには優しいのではないかなと思っている次第です。