2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KINTO Technologies - トヨタ車のサブスク「KINTO」開発中!Advent Calendar 2021

Day 18

JIRA AutomationのQuick Guide

Last updated at Posted at 2021-12-17

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であるかもしれません。

Project settings

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 issuesSub-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 TypeType のチケットが作られたときに、 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でテンプレートを導入してみて、プロジェクト運営への効果を検証して、より強力なテンプレート機能が必要であれば、プラグインの導入を検討してみるというステップが踏めます。

Atlassian Marketplaceへのリンク

Bugチケットを均等に分配する

Bugチケットが誰かに集中していませんか?そんなときの便利機能が Assign issue にはあります。

ドキュメントによると Assign issueAssign the issue toA 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プロジェクトでも絶賛募集中です!

2
2
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
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?