freebsd:redmine_の通知を_mattermost_で受け取るには
差分
このページの2つのバージョン間の差分を表示します。
freebsd:redmine_の通知を_mattermost_で受け取るには [2024/03/07 10:18] ? 作成 a-gota | freebsd:redmine_の通知を_mattermost_で受け取るには [2024/03/07 11:19] (現在) ? a-gota | ||
---|---|---|---|
行 1: | 行 1: | ||
====== Redmine の通知を Mattermost で受け取るには? ====== | ====== Redmine の通知を Mattermost で受け取るには? ====== | ||
+ | |||
+ | ===== 背景 ===== | ||
+ | |||
+ | 今回の現場は、ちょっと特殊な環境。 | ||
+ | * 現場での作業であるか否かにかかわらず、2 段階で RDP を繋ぎ、作業はすべてその先で行なう。 | ||
+ | * ただし、メールのやり取りやオンライン会議は 1 段目の方で行なう。 | ||
+ | |||
+ | 一方、よくあるパターンで、「進捗管理は**数多ある** Excel で」「質疑や依頼、相談などは『Excel の管理表』+ 2 段目の環境にあるチャット(Mattermost)で」という体制。これはものすごく非効率なので(特にコミュニケーション手段がオンライン会議以外で「チャット」と「直接会話」しかないのがつらい)、強く要望してなんとか Redmine を導入してもらった。 | ||
+ | |||
+ | ところで、Redmine の強力な武器は、メールによる通知。しかし、メールは 1 段目の環境でしか読めず、通常の作業は 2 段目でのみ行うことになっていることもあって、メールで通知したとしても気付けない。Redmine のサーバ自体は 2 段目の環境内にあってブラウザで読み書きできるので、通知も Mattermost で受け取りたい…… | ||
+ | |||
+ | ということで、Redmine と Mattermost との連携を模索してみた。 | ||
+ | |||
+ | ===== Mattermost 側の仕込み ===== | ||
+ | |||
+ | まずは Mattermost で通知を受け取れるようにならないと話にならない。調べたところ、「Incoming Webhook」による方法と「パーソナルアクセストークン」による方法があることが判った。 | ||
+ | |||
+ | ==== メッセージを投稿できるようになるまで(Incoming Webhooks 編) ==== | ||
+ | |||
+ | - システムコンソールの「統合機能>統合機能管理」で「内向きのウェブフックを有効にする」を「有効」に設定 | ||
+ | - システムコンソールの「統合機能>統合機能管理」で「統合機能によるユーザー名の上書きを許可する」と「統合機能によるプロフィール画像アイコンの上書きを許可する」を「有効」に設定 | ||
+ | * これをやっておかないと、3. で投稿元ユーザ名の指定ができず、仮に投稿元ユーザ名を指定してあっても Webhook の作成者名に強制される | ||
+ | - 「統合機能」で「内向きのウェブフック」を選択し、「内向きのウェブフックを追加する」を押して Incoming Webhook を追加する | ||
+ | *「チャンネル」の指定は何でもいいが、「このチャンネルに固定する」にはチェックしないこと | ||
+ | *「ユーザ名」に通知元ユーザ名を設定しておくと、実際の投稿時に username の指定を省略可能 | ||
+ | - 以下のようにすると投稿できる | ||
+ | * チャンネル宛< | ||
+ | curl -i -X POST -d ' | ||
+ | * DM(Mattermost クライアントのサードバーでは、投稿者名に関わらず、Incoming Webhook の作成者から DM が届いたように見える)< | ||
+ | curl -i -X POST -d ' | ||
+ | - 必要に応じて、システムコンソールの「環境>投稿頻度制限」の設定をする | ||
+ | |||
+ | ==== メッセージを投稿できるようになるまで(パーソナルアクセストークン編) ==== | ||
+ | |||
+ | - 通知の投稿に使用するオフラインユーザを登録する< | ||
+ | sudo -u mattermost mmctl --local user create --username=" | ||
+ | - 登録したユーザをチームに招待する | ||
+ | - システムコンソールの「統合機能>統合機能管理」で「パーソナルアクセストークンを有効にする」を「有効」に設定 | ||
+ | - システムコンソールの「ユーザー管理>ユーザー」で 1. のユーザのメニューから「ロールの管理」を選択し、以下のように設定 | ||
+ | * 「このアカウントがパーソナルアクセストークンを生成できるようにする」にチェック | ||
+ | * 「投稿: | ||
+ | - 1. のユーザでログイン | ||
+ | - 右上のユーザアイコンを押して表示されるメニューから「プロフィール」(またはユーザアイコンとユーザ名の項目)をクリック | ||
+ | - 表示されたメニューの「セキュリティー」タブで「パーソナルアクセストークン」の項の「編集する」をクリック | ||
+ | - 「トークンを生成する」をクリックし、「トークンの説明」を記入後に「保存する」をクリックして、表示されたアクセストークンを控える | ||
+ | * 「トークンID」は再表示可能だが、「アクセストークン」は再表示不可。紛失した場合は、一旦トークンを削除して再作成。 | ||
+ | - 投稿する | ||
+ | * チャネルへの投稿 | ||
+ | - 投稿先のチャネルを表示し、ヘッダに表示されているチャネル名(左側の一覧ではない)のメニューから「情報を表示する」を選び、ID を見る | ||
+ | - その ID を使って以下のようにする< | ||
+ | curl -i -H ' | ||
+ | * DM の投稿\\ 送信元ユーザ ID と送信先ユーザ ID を指定して「ダイレクトチャンネル」を作成し、そのチャンネルの ID を指定して送信する必要があるらしい。めんどくちゃい。 | ||
+ | |||
+ | ==== 結論 ==== | ||
+ | |||
+ | こと DM の送信に関しては、Incoming Webhook を使うのが圧倒的に楽。で、Redmine 側のプラグインがどうだか調べたところ、(その範囲では)すべて Incoming Webhook を使用していた。これで、万一希望に沿うように改造することになっても、障壁は低い '' | ||
+ | |||
+ | ===== Redmine 側の仕込み ===== | ||
Redmine 側のプラグインとしてとりあえず 3 つ見つかったが…… | Redmine 側のプラグインとしてとりあえず 3 つ見つかったが…… | ||
行 7: | 行 65: | ||
というわけで、以下に '' | というわけで、以下に '' | ||
* 設定において「『メッセンジャーのチャンネル』の指定は必須」とされているが、これは「通知先を書かないと通知されないよ」という意味であり、この項目が空であってもエラーになったり動作に支障が出たりするわけではない。\\ むしろ、「Send direct messages」にチェックを入れてあれば通知先のアカウントへ DM が飛ぶ(正確には通知先のチャネル一覧に通知先ユーザ名が追加される)ので、それで十分。 | * 設定において「『メッセンジャーのチャンネル』の指定は必須」とされているが、これは「通知先を書かないと通知されないよ」という意味であり、この項目が空であってもエラーになったり動作に支障が出たりするわけではない。\\ むしろ、「Send direct messages」にチェックを入れてあれば通知先のアカウントへ DM が飛ぶ(正確には通知先のチャネル一覧に通知先ユーザ名が追加される)ので、それで十分。 | ||
- | * 上記の設定をした場合の通知は以下の通り: | + | * 実際のコードを「送信先をログに吐く」よう改造して観測した結果、上記の設定をした場合の通知は以下の通り。なお、いずれの場合も、「更新者本人には飛ばさない」設定がされている場合はそれが優先される(通知先ユーザが複数いる場合、本人以外に対してのみ飛ぶ。通知対象が本人のみの場合は通知が飛ばない)。 |
* Watcher へは飛ぶ | * Watcher へは飛ぶ | ||
* 担当者にも飛ぶ | * 担当者にも飛ぶ | ||
行 19: | 行 77: | ||
* Wiki については、「Wiki の作成」「Wiki の更新」へチェックを入れてあっても一切飛ばない(これも困る……) | * Wiki については、「Wiki の作成」「Wiki の更新」へチェックを入れてあっても一切飛ばない(これも困る……) | ||
- | なお、「ユーザー名をその人についての投稿(@ユーザー名)に変換する」「ウォッチャーを表示する」「チケットの更新」の効果はよく判らない…… | + | なお、設定項目にある「ユーザー名をその人についての投稿(@ユーザー名)に変換する」「ウォッチャーを表示する」「チケットの更新」の効果は、よく判らない…… |
freebsd/redmine_の通知を_mattermost_で受け取るには.txt ? 最終更新: 2024/03/07 11:19 by a-gota