コミットしたらチケットクローズする
2011-02-06 redmine, subversion, project-management
前回に引き続きRedmine関連です。今回はチケットに関連するコミットをしたときに、そのチケットのステータスを「終了」させる設定です。
環境は以下の通り:
- Redmine
- 1.1.1.stable.4794
- SCM
- Subversion 1.6.6 (r40053)
1. Redmine設定
管理 > 設定 > リポジトリ で、以下のように設定します。
最初は「コミットを自動取得する」だけチェックすればいいのかと思ったのですが、やっぱりSubversionのpre-commitフックを使わないとだめでした。そのために「リポジトリ管理用のWebサービスを有効にする」と「APIキー」を設定します。
APIキーは「キーの生成」をクリックすると自動で生成されるのでそれを使います。
また、コミットコメント内のキーワードと、遷移先ステータスの設定は以下の部分です。
上記の例だと、fixes #[チケットID] とコミットコメントに設定することで、該当チケットが「終了」ステータスに遷移し、進捗が100%になります。
2. Subversionの設定
該当プロジェクトのリポジトリディレクトリに移動し、hooksディレクトリの中にあるpost-commit.tmplをコピーし、post-commitファイルを作成します。
$ cp post-commit.tmpl post-commit
post-commitを以下のように編集します。
#!/bin/sh
REPOS="$1"
REV="$2"
# auto update redmine tickets
/usr/bin/wget -q -O /dev/null --http-user=[ベーシック認証のユーザー名] --http-passwd=[ベーシック認証のパスワード] http://[Redmineのホスト]/sys/fetch_changesets?key=[APIキー]&id=[プロジェクトID]
[]部分は適当に置き換えてください。 –http-user/–http-passwdは、Redmineにベーシック認証をかけている場合に必要です。
最後にpost-commitに実行権限を付与します。Redmine実行ユーザーが実行できるようにしてください。
$ chmod +x post-commit
3. 確認
適当にチケットを確認し、そのチケットを終了させるコミットをしてみましょう。 チケットID: 12 コミットコメント: fixes #12
きちんと「終了」ステータスになりましたね!