見出し画像

【Jira】【Teams】Jiraプロジェクトの未完了課題を定期的にTeamsのチャネルで通知する自動設定

ネットで検索したやり方ではうまく行かなかったので。
誰かの役に立てばと思い記録。

やりたかったこと
Jiraのカンバンで完了していないタスク一覧をプロジェクトチームのTeamsのチャネルの一つに週一で投稿させたい。

背景
フィルターの通知先にチャネルのメールアドレスでも登録できればよかったのだが、会社の設定のせいで自分か限られた対象にしか通知できないようになっていた。
Power Automateの(?)Workflowsでもライセンスの関係でうまくいかなかった。

解決手段の概要
Teamsの該当チャネルのコネクタにWebhookを追加。
Jiraの「自動化」でトリガーが週1、「課題を検索」にて「Unsolved」のタスクがあれば「Microsoft Teamsにメッセージを送信」するルールを作成。

解決手段の詳細
①Teamsの該当チャネルのコネクタにWebhookを追加する。
方法はこちらの「Teams 側での設定」部分。
Jira Cloud と Microsoft Teams 連携 - 細かい条件を満たす場合のみ Teams に通知する

②Jiraの自動化設定。
②-1 いつ:スケジュール時
「JQL検索を実行し、クエリ内の各課題に対してアクションを実行します。」のチェックは外す。
②-2 アクションとして「課題を検索」を追加する。
②-3 「課題を検索」のJQLに下記を入力。
resolution = Unsolved AND issuetype = Task AND assignee Is Not Null
※エピックは含めたくなかったのでissuetypeをタスクに限定、さらに担当者も割り振られていないタスクは除きたかったためこの構文にした。
②-4 「課題を検索」の次にアクション「Microsoft Teamsにメッセージを送信」を追加する。
②-5 「Microsoft Teamsにメッセージを送信」アクションの「Webhook URL」に①で追加したWebhookのURLを入力する。
※URLは①の時点でコピーしておくか、もしくは「チャネルを管理」の「コネクタ」→「編集」→「構成済み」→「Incoming Webhook」の「1構成済み」→「管理」にて参照可能。
②-6 メッセージの内容をSmart Valueなどを用いて入力。
※私が使ったSmart Valueの例
{{now.convertToTimeZone("Asia/Tokyo").jiraDate}}
2024-03-10の形式でその日の年月日を出力
{{#lookupIssues}}
* {{key}} - {{summary}} - {{assignee.displayName}} - {{duedate}} - {{url}}
{{/}}
該当の課題それぞれのキー、タイトル、担当者の表示名、期限、URLを出力
※Smart Valueの参考
Jira Automation のスマート バリュー

以上

メモ
テストの際はTeamsへの通知ではなく、アクションとして「メールを送信」を使用し、自分のアドレスに通知が送信されるようにするか、テスト用のチームを作ると良いかも。
ただ、メールでの文面の見え方と、チャネルへの投稿の見え方が異なる場合がある。(URLなど。メールだとセキュリティを挟んだURLで長々としていて困ったがチャネルに投稿してみたら短くなっていた。)
もし既存のTeamsのチャネルにテスト通知を行う場合は、Teamsの通知設定を調整して、投稿ごとにメンバーに通知がいかないようにしておいた方がよい。
たぶん文面に「@(メンション先)」を入れておいてもチャネルに投稿された際はただの文字列になっておりメンション機能は発動しない。
(→無理やりチームメンバー全員に通知が飛ぶようにしたのがこちら。)

たぶんIF分岐とかだと各タスクごとに通知行っちゃう。
②-1で「JQL検索を実行し、クエリ内の各課題に対してアクションを実行します。」にチェックをしてJQLを使用した場合も、各タスクごとに通知が作成される。

コメント
ライセンスや会社の管理の関係で、ネットで出てくるような解決策がすべてダメだったので、いろんな情報をつぎはぎして解決してみた。
JQLやSmart Valueについては公式の情報だけでは難しいところがあり、実際にいろんなユーザーの構文を眺めて似たようなことをやっているものを見つけてアレンジするのが常套手段なのかな。。。
チャネルのタブにJira Cloudを追加し、該当のプロジェクトのうち任意のステータスにフィルタリングしたタスク一覧を閲覧・操作できるようにしたが、そこからチャネルに通知が飛ぶようにはできなかった。


この記事が気に入ったらサポートをしてみませんか?