このプラグインは以下の二つの機能を提供します。
- Git と Redmine のリポジトリを同期して Redmine 上で Git のコミットの履歴を参照可能にする
- Git の Merge Request に追加されたコメントを自動で Redmine のチケットとして追加する
本プラグインは GitHub と GitLab の両方に対応しています。
以下の説明は GitLab と組み合わせて使用することを想定して行っています。
- V4.x.x (V4.2.9にて動作確認済み)
- V5.x.x (V5.0.5にて動作確認済み)
Redmine のプラグインのフォルダにて、以下を実行し、Redmine を再起動してください。
$ cd /var/lib/redmine/plugins
$ git clone git@github.com:RedminePower/redmine_git_hook.git
$ bundle exec rake redmine:plugins:migrate NAME=redmine_git_hook RAILS_ENV=production
本プラグインの機能を有効にするには、Git と Redmine の両方で追加の設定が必要です。
下記の手順を参考に設定を行ってください。
- プロジェクトの「リポジトリ」タブに設定した Git の履歴を表示する
- Git にプッシュされたら自動的に Redmine のリポジトリを更新する
- チケットの「関係しているリビジョン」にコミットへのリンクを追加する
-
Git で同期したいプロジェクトに「Webhook」を設定する
-
以下のように同期させたい Redmine の URL を設定する
http://
[RedmineのURL]
/git_hook?project_id=[Redmineのプロジェクトの識別子]
例)http://localhost/git_hook?project_id=plugin
-
push
イベントのトリガーを有効にする。
-
-
Redmine のサーバに同期したいプロジェクトを git clone する
-
サーバ内の任意のフォルダを選択する
-
同期したいプロジェクトを
git clone --mirror
する$ cd /home/apache/repos $ git clone --mirror [同期したい Git のプロジェクトを表す文字列]
例)
git clone --mirror git@github.com:RedminePower/redmine_git_hook.git
-
git clone
したリポジトリのオーナーをapache
に変更する例)
chown apache:apache redmine_git_hook.git -R
-
-
Redmine の同期させたいプロジェクトにて「リポジトリ」の設定を行う
-
プロジェクトの設定画面から「リポジトリ」を選択し「新しいリポジトリ」をクリックする
-
以下の項目を設定する
項目 内容 バージョン管理システム 「Git」を選択 識別子 リポジトリを判別するための任意の文字列 リポジトリのパス 前の手順で git clone
したリポジトリのパス
例)/home/apache/repos/redmine_git_hook.git
-
-
Git に変更をプッシュする
- 「リポジトリ」タブに表示されたコミット履歴が自動で更新される
-
コミットメッセージに
refs #[紐づけたいチケット番号]
をつけてコミットしてプッシュする※ 紐づけるためのキーワード(上では
refs
)は以下で設定されているものを使用してください。
[管理]-[設定]-[リポジトリ]-[参照用キーワード]- 指定したチケットの「関係しているリビジョン」に自動でコミットの履歴が追加される
Merge Request と Redmine のレビューチケットをリンクさせ、Merge Request の操作をトリガーとして Redmine のチケットを更新する。
Merge Request への操作 | チケットの更新内容 |
---|---|
コメント追加 | 新しい指摘チケットをレビューチケットの子チケットとして追加する |
コメントへの返答 | 作成した指摘チケットにコメントを追加する |
スレッド終了用のキーワードを 含んだコメントを返答 |
作成した指摘チケットを終了する |
Merge Request がマージ可能になる | 本機能で追加された指摘チケットをすべて終了する |
Merge Request がマージされる | 本機能で追加された指摘チケットをすべて終了する |
これらの機能は、Redmine Time Puncher と組み合わせることで、Git の Merge Request を利用したレビューをより快適にご利用いただけます。
- レビューの開催や指摘をチケットとして記録することで Redmine を使った管理が容易になる
- Merge Request にコメントしたタイミングが把握できることで工数入力をより正確かつ簡単に行える
-
Git で同期したいプロジェクトに「Webhook」を設定する
「レポジトリの同期」のための設定に加えて、
comment
イベントとmerge request
イベントを有効にする。 -
同期したいプロジェクトの git clone と Redmine での「リポジトリ」の設定を行う
「レポジトリの同期」のための設定と同様。設定済みなら追加の作業は不要。
-
Redmine で本プラグインをインストールすることで追加される「Git Webhookとの連携」の設定を行う
- 管理画面から「Git Webhookとの連携」を選択し、「新しいGit Webhookとの連携」をクリックする
- 以下の項目を設定する
項目 内容 タイトル 「Git Webhookとの連携」設定を判別するための任意の文字列 有効 本設定を適用するかどうかのフラグ 対象プロジェクト 本設定を適用するプロジェクトを正規表現で指定 トラッカー Merge Request のコメントから指摘チケットを作成するときのトラッカー 終了時のステータス 指摘チケットの終了時のステータス 終了用のキーワード 設定されたキーワードを含むコメントが追加されると対応する指摘チケットを終了する
-
Git の Merge Request と Redmine のレビューチケットの紐づけ1
以下のどちらかのやり方で Merge Request とレビューチケットを紐づける。
-
Merge Request の説明に
refs #[レビューチケットのチケット番号]
を追加する例)
refs #1234
-
RedmineTimePuncher を利用してレビューチケットを作成し、Merge Request の URL を設定する
- RedmineTimePuncher の「レビュー」を選択する
- 「設定」ダイアログを開き「Gitとの連携」にチェックを入れる
- 「マージリクエストURL」に紐づけたい Merge Request の URL を設定し、レビューチケットを作成する
-
-
Merge Request でコメントを追加する
- 紐づけたレビューチケットの子チケットとして指摘チケットが作成される
- 作成者はコメントを追加した人、担当者はレビューチケットの担当者が設定される2
-
Merge Request のコメントに返信する
- 作成された指摘チケットにコメントが追加される
- コメントは Merge Request にコメントした人の名義で追加される
-
Merge Request のコメントに終了用のキーワードを含む返信をする
- 作成された指摘チケットを終了する
-
Merge Request のすべてのスレッドが終了される、もしくはマージされる
- 本プラグインによって作成された指摘チケットをすべて終了する