Redmine-Teams連携

RedmineとTeamsの連携を設定した時に意外に苦労したので備忘で記録。

連携方式は以下パターンが存在する。

  1. Atom(RSS)を利用した連携
  2. PowerAutomationを利用した連携
  3. Webhookを利用した連携

1.Atom(RSS)を利用した連携

これが一番単純な方法でTeams側の各チームのコネクタでRSSを選択し、

RSSフィードのアドレス」にRedmine画面のチケットタブの下部にある

他の形式にエクスポートAtomで取得したURLを設定する。

Teams(インターネット)→Redmineの通信になるため、

Redmineのサーバがインターネットからアクセス可能なことが必要。

Redmineのサーバが内部アドレスしか持っていない場合、この方法は使えない。

RSSの最低のインターバルは15分のため、リアル通知が必要な場合も

選択肢としづらい。

2.PowerAutomationを利用した連携

最近のマイクロソフト一押しのPowerAutomationを活用する方法で

Teamsの各チームでPowerAutomationを追加し、

Redmine-Teams通知用の以下テンプレートを利用する。

powerautomate.microsoft.com

テンプレートの設定画面でプロジェクトのルートURLとAPIキーを設定する。

こちらもTeams(インターネット)→Redmineの通信になるため、

Redmineのサーバがインターネットからアクセス可能なことが必要。

1同様にRedmineのサーバが内部アドレスしか持っていない場合、この方法は使えない。

 

実際に設定した時はRedmineグローバルIPを持たない内部LAN上のサーバだったため、

1,2を諦め、以下の方法を採用した。

3.Webhookを利用した連携

こちらは以下のプラグイン利用が前提になる。

github.com

【Teams側作業】

各チームのコネクタで「Incoming Webhook」を追加し、構成を選択。

Webhook名を入力し、表示されるWebhook URLをコピーする。

Redmine側作業】

上記プラグインをインストールし、Redmineを再起動する。

上記プラグインの設定手順に従って、Webhook URLを指定の場所に貼り付ける。

通知先はRedmine全体で共通にもプロジェクト単位でも設定可能。

ただ、プロジェクトより小さい単位では設定できないので、

通知先を分けたい場合はプロジェクトを分ける必要がある。

プロジェクト単位で設定する場合、カスタムフィールドの設定が必要。

チケット担当者へのメンションも可能になっている。

(自分にアサインした場合、メンションされないという何とも気の利いた仕様になっている)