KINTO Technologies Advent Calendar 2021 - Qiita の18日目の記事です。
JIRAのAutomationで、プロジェクト運営を自動化する
プロジェクト管理ツールとしてJIRAを使っているところは多いと思います。
今時のJIRAにはAutomationという自動化ツールが入っており、これを使うと様々な自動化をJIRAだけで実現できます。
この記事はAutomationをとりあえず使ってみるためのQuick Guideです。
Automationは過去にProject Automationとも呼ばれていました。この記事内でも表記揺れがあります。
この記事を離れて、別の記事を探す時には、こちらの名前でも検索してみると情報があつまります。
Automationの基本
AutomationはTrigger, Condition, Action, Branchという4つのComponentを使って、Ruleと呼ばれる一連の流れを定義する、ある種のノーコードプログラミング環境と言えます。
それぞれのComponentの概要は次のとおりです。
Component | 説明 |
---|---|
Trigger | Ruleが適用されるイベント条件を指定する。一つのRuleの先頭に一つだけ指定できる |
Condition | Actionを適用する前条件を指定する。基本的に一つのConditionで、一つの条件を指定する。Conditionのあとに別のConditionをつなげて、ANDで条件を結合できる。If block という特別なCondition以外はelse節は作られない。 |
Action | なんらかの変更をシステムに加える。Issueの変更だけでなく、通知機能の起動もできる。 Send web request というActionもあるので、他のサービスを叩くこともできる。 |
Branch | 一般的なプログラミング言語でいうと、別ブロックを作ってスコープを切り替える機能。操作対象となるissueを親issueに切り替えるときなどに使う。Branchの入れ子はできない。 |
基本操作説明
プログラミングツールとしての機能は少ないので、操作自体は難しくありませんが、簡単に操作説明を書いておきます。
1 Rule作成画面を開く。
[Project settings] -> [Automation] -> [Create Rule]の順でRule作成画面が開きます。
画面上の位置について、一応スクリーンショットを載せますが、これは私が使っているバージョンでの場合です。バージョンや管理者の設定によっては、位置が変わっていたり、ラベルがAutomationではなく、Project Automationであるかもしれません。
Create rule
2 Triggerを選ぶ
まずは右の欄からTriggerを選びます。最初のComponentは常にTriggerです。
Issueを対象としたものが多いですが、git操作に連動したものもあります。
Incoming webhook
というWeb hookエンドポイントを生やして、そこへのリクエストを起点とするものもあります。認証なしで叩けるようなので使用には注意が必要そうですが、これを使えば他のツールとの連動もできるでしょう。
選択したら、[Save]ボタンを押します。
Triggerが設定されると、他のComponentを選べるようになります。
3 Conditionを選ぶ
Conditionを選ぶと次のような画面になります。ここでは例のためにConditionを選びましたが、もちろん他のComponentを選んでも構いません。
例なのでどれを選んでも良いのですが、ここでは Issue fields conditon
を選びます。
するとComponentの設定欄が出るので、適当に入力して、[Save]ボタンを押します。
もちろん別のComponentでは設定できる項目が変わります。
4 Branchを選ぶ
やはり例のために、次はBranchを選びます。
Branch rule / related issues
を選び、[Save]ボタンを押すと、分岐が発生します。
ここでは Type of related issues
に Sub-tasks
を選んだので、右側に新たに作られたレーンでは、Triggerで対象となったIssueのサブタスクがConditionやActionの対象となります。
元のIssueに対する操作は左側のレーンで引き続き行えます。
5 Actionを選ぶ
最後にActionを設定します。先ほどBranchを置いたので、Componentの追加先が二つになっています。
まずはTriggerで対象になったレーンにアクションを追加するため、左のレーンの[Add Component]をクリックします。
すると次のようになります。期待した通りにならない場合、ゴミ箱アイコンをクリックすることで、現在追加しようとしているNew Componentを削除できます。
そこからNew Actionを選びます。例では Comment on issue
を選びました。
そして[Save]ボタンを押すと、次のような画面になります。
画面に出ている通り、ここまででもRuleは保存できますが、Branchのもう一方のレーンにもActionを設定します。そうしないとエラーとなります。
右のレーンの [Add Component] を押して、Actionを設定しましょう。
こちらも Comment on issue
を選びました。
Rule定義が次のようになっているはずです。
6 Ruleの有効化
Ruleを保存して有効にするために、Sampleという名前をつけて、[Turn it on]ボタンを押してみましょう。
次のような画面が出た場合、まだRuleは保存されていません。
この画面で、Ruleが失敗した時にメールを送るかどうかなどの設定ができます。
[Publish rule]を押すことで、Ruleが保存されてRule一覧が表示されます。
この設定を再度行いたい場合、一覧から対象となるRuleを開いて、[Rule details]のリンクを押してください。
実例
ここからは簡単なRuleの実例を紹介します。
Issue Typeごとに Description
のテンプレートを設定する
JIRAに限らず、チケット管理をしはじめると、記述の粒度を揃えるために、テンプレートが欲しくなると思います。 Automationでこれが実現できます。
テンプレートの設定にはActionの Edit Issue
で編集対象となるフィールドとして Description
を指定します。テンプレートの文章にはConfluenceのwiki記法が使えます。
Rule定義
Issue Type
が Type
のチケットが作られたときに、 Description
に自動的にテンプレートとなる文字列を設定するルールは次のとおりです。Conditionのパラメータを変更すると、他の Issue Type
に対しても適用できます。Issue Type
毎にRuleを作成すれば、それぞれ別のテンプレートを設定することができます。
Component | 設定 | |
---|---|---|
- | 全体像 | |
1 | Trigger | Issue Created |
2 | Condition | |
3 | Action |
注意点: Create ボタンで開いた時点のダイアログには適用されない
Triggerをもう一度見直してみましょう。
Issue Created とありますね。つまりこのルールは最初の保存時点で適用されます。
Backlog画面などで、Subjectだけを入れて行が増えたとき、そのIssueは保存されているのですが、CreateボタンからのIssue作成ダイアログが開いた時点では、まだIssueは作成されていないので、このルールは適用されずテンプレートが設定されません。
これを解決するPluginはいくつかあるようなので、JIRAの管理者と相談して入れてもらいましょう。
だったら最初からプラグインを使えばいいのでは?とも思われるかもしれません。ですが、Automationの利点は、JIRA単体で、かつプロジェクト単位で利用を開始できることです。とりあえずAutomationでテンプレートを導入してみて、プロジェクト運営への効果を検証して、より強力なテンプレート機能が必要であれば、プラグインの導入を検討してみるというステップが踏めます。
Bugチケットを均等に分配する
Bugチケットが誰かに集中していませんか?そんなときの便利機能が Assign issue
にはあります。
ドキュメントによると Assign issue
の Assign the issue to
に A user in a defined list
を設定すると、指定された複数のユーザーから自動的にアサインしてくれます。自動アサインのアルゴリズムは、Balanced Workload
, Random
, Round-Robin
から選べます。
設定する時は、チームで合意をとりましょう。
Rule定義
Component | 設定 | |
---|---|---|
- | 全体像 | |
1 | Trigger | Issue Created |
2 | Condition | |
3 | Action |
あとがき
プロジェクト運営ルールを決めるにあたって、「個人が気をつける」領域をできるだけ少なくするのに、Automationは役立ちます。
また限定的とは言え、ある種のコーディングによって実現されるため、ルールの明示化、言語化にもつながり、透明性のあるプロジェクト運営に役立てられると思います。
おしらせ
KINTO Technologiesでは、トヨタ車のサブスク「KINTO」等の企画/開発を行っており、エンジニアを募集中です。
KINTO Technologies コーポレートサイト
加えて、私が出向して参加しているWoven Cityプロジェクトでも絶賛募集中です!