Redmine-Teams連携
RedmineとTeamsの連携を設定した時に意外に苦労したので備忘で記録。
連携方式は以下パターンが存在する。
1.Atom(RSS)を利用した連携
これが一番単純な方法でTeams側の各チームのコネクタでRSSを選択し、
「RSSフィードのアドレス」にRedmine画面のチケットタブの下部にある
他の形式にエクスポートAtomで取得したURLを設定する。
Teams(インターネット)→Redmineの通信になるため、
Redmineのサーバがインターネットからアクセス可能なことが必要。
Redmineのサーバが内部アドレスしか持っていない場合、この方法は使えない。
RSSの最低のインターバルは15分のため、リアル通知が必要な場合も
選択肢としづらい。
2.PowerAutomationを利用した連携
最近のマイクロソフト一押しのPowerAutomationを活用する方法で
Teamsの各チームでPowerAutomationを追加し、
Redmine-Teams通知用の以下テンプレートを利用する。
テンプレートの設定画面でプロジェクトのルートURLとAPIキーを設定する。
こちらもTeams(インターネット)→Redmineの通信になるため、
Redmineのサーバがインターネットからアクセス可能なことが必要。
1同様にRedmineのサーバが内部アドレスしか持っていない場合、この方法は使えない。
実際に設定した時はRedmineがグローバルIPを持たない内部LAN上のサーバだったため、
1,2を諦め、以下の方法を採用した。
3.Webhookを利用した連携
こちらは以下のプラグイン利用が前提になる。
【Teams側作業】
各チームのコネクタで「Incoming Webhook」を追加し、構成を選択。
Webhook名を入力し、表示されるWebhook URLをコピーする。
【Redmine側作業】
上記プラグインをインストールし、Redmineを再起動する。
上記プラグインの設定手順に従って、Webhook URLを指定の場所に貼り付ける。
通知先はRedmine全体で共通にもプロジェクト単位でも設定可能。
ただ、プロジェクトより小さい単位では設定できないので、
通知先を分けたい場合はプロジェクトを分ける必要がある。
プロジェクト単位で設定する場合、カスタムフィールドの設定が必要。
チケット担当者へのメンションも可能になっている。
(自分にアサインした場合、メンションされないという何とも気の利いた仕様になっている)