LoginSignup
2
1

Jira AutomationでSlackメンション通知を自動送信する設定手順

Last updated at Posted at 2024-05-04

これはなに

Jiraのエピックのステータス変更をトリガーとして、エピックのカスタムフィールドに登録されているメンバー宛にSlackでメンション通知を自動化で送る方法について書いている備忘録です。

使うもの

  • Jira
  • Slack(Pro版)

JiraはJira Softwareを対象として書いています。
Jira Work Managementでも同じように機能するかは未検証です。

Slack Pro版は、メンション通知したいメンバーが自動化フローごとに固定で決まっている場合は不要で、カスタムフィールドに登録されているメンバー宛にメンション通知をしたい場合は、ワークフロービルダーを使うためPro版が必要になると思われます。
もし他の方法があったら教えてください。

自動化の設定

今回は下記のようなケースを想定して設定を行います。

  • Jiraのエピックのワークフローは下記の通り
    image.png

  • ステータスがテスト完了になった際、自動でSlackチャンネルにカスタムフィールドauthorizerで設定した承認者宛のメンション通知を飛ばしたいとする

カスタムフィールドの作成

まずカスタムフィールドを設定します。

プロフィールアイコン左にある設定(歯車アイコン)から課題を選び、サイドメニューのカスタムフィールドにアクセスします。

チームの管理者権限があるユーザーしかアクセスできないと思われるので注意です

image.png

画面右上にあるカスタムフィールドを作成のボタンをクリック

image.png

するとフィールドタイプの選択がポップアップ表示されます。

ここでユーザーピッカー(単一ユーザー)を選んでください。

後述しますが、Slackのワークフローではユーザーピッカー(複数ユーザー)で選んだユーザーの情報を受け取ることができなさそうだった為、単一ユーザーを選んでいます。

image.png

カスタムフィールドの名前と説明を入れて作成します。

作成後に「フィールドを画面に関連づける」という画面表示が挟まりますが、これが何を指すのかわかっていません...
アクションとしては更新とキャンセルが選べますが、一旦キャンセルを選んで問題ないと思います。

SlackワークフローでWebhookを作成

image.png

サイドメニューの自動化ワークフローと進んで右上のワークフローを作成するボタンをクリック。

image.png

新規タブでワークフローの設定画面が開くので、一番下のWebhookからを選択。

変数を設定するを選んで下記の3つを設定します。名前は任意です。

  • mentionUserEmail
    • データタイプ...Slackユーザーのメールアドレス
  • jiraUrl
    • データタイプ...テキスト
  • message
    • データタイプ...テキスト

続行するボタンを押すとワークフローが設定されてWebリクエストのURLが発行されるので、リンクをコピーしておきます。

image.png

このようになっていればOKです。

自動化(Automation)の設定

Jiraに戻ります。

image.png

通知を設定したいプロジェクトに移動し、サイドバーのプロジェクト設定自動化のメニューを選んで右上のルールを作成ボタンをクリックします。

image.png

ルールビルダーが立ち上がるので、ここで設定を行っていきます。

image.png

今回はテスト完了へのステータス変更時をトリガーとするので、課題のトランジション時を選択し、ターゲットステータスにテスト完了を選びます。

コンポーネントを追加を選んで他の条件も設定していきます。

image.png

ここは任意ですが、一応課題フィールドの条件課題タイプエピックと一致する条件をIF条件で追加しておきます。

(後からエピックだけではなくストーリーにもテスト完了のステータスを追加したいということがあるかもしれないので)

image.png

続いて課題フィールドの条件で、先ほど作成したカスタムフィールドauthorizerが「空ではない」という条件を設定します。

image.png

アクションでWebリクエストを送信を追加し、メソッドでPOSTを選んで下記のようにカスタムデータを設定します。

{
    "mentionUserEmail": "{{issue.customfield_XXXXX.emailAddress}}",
    "jiraUrl": "{{issue.url}}",
    "message": "リリース承認依頼がありました。"
}

mentionUserEmail,jiraUrl, messageについては先ほどSlackワークフローで設定した変数名を入れてください。

customfield_XXXXXの部分に関しては、冒頭で追加したカスタムフィールドauthorizerのIDが入ります。

このIDは、プロジェクトの設定課題タイプにアクセスして、デベロッパーモードで対象のフィールド要素をフォーカスすると確認することができます。

image.png

上の例だと、10037authorizerのIDになります。

messageの内容はお好みでカスタマイズしてください。

{{issue.url}}などはJQLというJira独自のクエリ言語で使われる「スマートバリュー」というもので、課題検索やフィルターで演算子を使って高度な課題検索ができるようになっています。
詳細は下記リンクを参照してください。

最後にルールの名前を登録し、ルールをオンにして設定完了です。

しかし、このルールのみだと、authorizerが設定されていない状態でエピックをテスト完了ステータスにトランジションしてしまった時にAutomationが動かないため、もう一つルールを追加しておきます。

image.png

自動化ルールの一覧に戻り、先ほど作成したルールのアクションで「コピー」を選びます。

image.png

コピーが完了したら適当にルールの名前を変え、トリガーを課題のトランジション時からフィールド値の変更時に変えます。

変化を監視するためのフィールドauthorizerをセットし、変更タイプ追加された値にしておきます。

image.png

続いて、IF条件で課題フィールドの条件を追加し、対象フィールドをステータス、条件を「テスト完了と等しい」に設定します。

その他はコピー元と条件を変える必要はありません。

これで、ステータスがテスト完了にトランジションした後でauthorizerフィールドに承認者を追加した場合もAutomationが動くようになります。

Slackワークフローで変数を含めたメッセージを作成する

先ほど作成していたSlackワークフローに戻ります。

image.png

ステップにメッセージを選んで追加します。

今回は特定のチャンネルに通知する想定なので、チャンネルへメッセージを送信するを選びます。

image.png

通知したいチャンネルを選んだのち、変数を挿入するから上記のように変数をメッセージに追加します。

image.png

この時、mentionUserEmailのプルダウンで @表示名が選択されていることを確認しておきます。デフォルトでこの設定になっているはずです。

mentionUserEmailに入ってくるデータがユーザーピッカー(複数ユーザー)だとうまく動かなかったため、冒頭のカスタムフィールド作成ではユーザーピッカー(単一ユーザー)を選んで作成して対応しています。

この方法で複数名メンションしたい場合は、単一ユーザーのカスタムフィールドを複数作成し、Slack側の変数も人数分用意するしかなさそうです...

image.png

全て設定が完了したら、ワークフローの名前、説明、画像などを任意で設定して準備完了です!

動作確認

ワークフローが正常に動くか確認しましょう。

image.png

Jiraのエピックにauthorizerが設定されている状態で、ステータスを開発完了からテスト完了にトランジションします。

image.png

うまく設定できていれば、このようにワークフローが動いて通知が届くはずです。

同様に、authorizerが設定されていない状態でステータスをテスト完了にして、後からauthorizerに承認者を設定した場合も通知が来るかどうかをチェックしてください。

おまけ: ワークフローを使わずにSlack Integrationを使って通知する方法

承認者が1人であったり、Slackで承認者のユーザーグループが設定されていたりと、メンション先が固定の場合は、Slackワークフローを使わずにSlack Integrationを設定して通知することもできます。

image.png

チャンネル情報を開いて、インテグレーションタブからAppのアプリを追加するを選択します。

image.png

image.png

アプリ追加画面で検索してIncoming Webhookをインストールします。

image.png

image.png

通知をしたいチャンネルを選んで、インテグレーションの追加ボタンをクリックし、次のページで表示されるWebhook URLをコピーします。

image.png

JiraのAutomationではアクションにSlackメッセージを送信を設定します。

上記の例ではSlack側にauthorizerというユーザーグループが設定されている前提で、そのグループ宛にメンションをする設定になっています。

image.png

このように通知されます。
こちらの方法はワークフロービルダーを使わないので、Pro版でなくても設定できます。

参考: JQLスマートバリューの一覧

上記ドキュメントにEpic関連の通知でよく使いそうなスマートバリューの値とプロパティが記載されています。
メッセージで通知したい内容に応じて参照してカスタマイズしてみてください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1