github のリポジトリを Redmine のリポジトリブラウザから参照する

Redmineリポジトリブラウザから git リポジトリを参照する場合、
ローカルのリポジトリしか参照できない。
そのため、githubリポジトリを直接参照することはできない。


はてな のように
cron を使って同期してもよいのだが
id:mzpgithubリポジトリRedmineリポジトリ
同期するプラグインがあることを教えてもらったので
その設定方法をメモ。


条件として、Redmine が外部からアクセスできる必要がある。
できない人は SSD Cloud Hosting & Linux Servers - Linode とかを借るといいと思う。

環境

redmine_github_hook プラグインの使い方

環境設定

まずは json gem をインストール

$ sudo gem install json


つづいで redmine_github_hook プラグインRedmine にインストール

$ cd <REDMINE_ROOT>
$ ruby script/plugin install git://github.com/koppen/redmine_github_hook.git


Redmine を再起動。
Passenger を使っている場合は以下で OK 。

$ touch tmp/restart.txt
プロジェクトの設定

github 上のリポジトリをクローン。

$ cd <REPOS_DIR>
$ git clone git://github.com/<USER_NAME>/<PROJECT_NAME>.git


Redmine の設定で上でクローンした //.git を
Git リポジトリとして設定。


github のプロジェクトの設定でサービスフックを設定する。
Redmine の URL に "/github_hook" をくっつけたものを入力する。
https でも問題ないらしい。


以上で設定は終わり。


この状態で github に push すれば、サービスフック経由で
Redmineリポジトリが同期される。

2010.10.30 追記

なんかうまく行かないプロジェクトがあると思ったら
github のプロジェクト名と Redmine のプロジェクトの識別子をあわせなければならないらしい。
それがない場合には フックの URL に ?project_id=<プロジェクトの識別子> を連結すれば OK。