Redmine とリポジトリの同期設定

デフォルトでは、ブラウザから「リポジトリ」を開くまでリポジトリへのコミットが「活動」に表示されません。
「リポジトリ」を開くまでSubversion等のリポジトリへのコミットが「活動」に表示されません (Redmine.JP) 参照。
Redmine 0.8 までは、cronで一定時間ごとに取得するという対策が公開されていましたが、タイムラグが発生するなど問題があったそうです。
Redmine 0.9 では、Redmineリポジトリの情報を読み込ませるために、特定の URL にアクセスする方法が追加されたようなので、コミットと同時にリポジトリの情報を取得する を参考に、設定しました。
ちなみにこのサイトでは SVN を例に書いてありましたが、リポジトリが Git でも同じやり方で設定できました。

  • Redmine の設定
    • 「管理」>「設定」>「リポジトリ」を開き、「リポジトリ管理用のWebサービスを有効にする」をONにします。
    • APIキー」に、APIキーとして使用する文字列を設定します。右側の「キーの生成」をクリックすると、Redmineにランダムな文字列を生成させることもできます。
    • 画面下の保存ボタンをクリックし、設定を保存します。
  • リポジトリの設定

Subversion の場合は post-commit 、Git の場合は共有リポジトリpost-update に設定してください。

/usr/bin/wget -q -O /dev/null http://localhost/redmine/sys/fetch_changesets?key=SKPqaeMuFoyg00si1yGi9
※赤字の部分が、キーの生成で作成されたランダムな文字列です。
    • hooks スクリプトに実行権限を付与します。(実行権限があった場合は不要)
chmod 755 post-commit
chmod 755 post-update

これで、いちいち「リポジトリ」を開かなくても、コミット(Git の場合は共有リポジトリに push )した際に自動的に「活動」に反映されます。