関連する課題の操作
実際のところ、Jira 課題が単独で存在することはほとんどありません。課題はさまざまな方法で、相互に関連している可能性があります。
- 課題リンク (関連、ブロック、複製)
- 親 -> サブタスク
- エピック -> ストーリー
- 類似するフィールド値
- …この他にもさまざまな状況が考えられます。
こうした要素が組み合わさって複雑な階層を持つ課題が作成されて、作業に取り組みにくい状況になる可能性もあります。幸いなことに、アトラシアンでは関連する課題を簡単に処理する方法が 2 つ用意されています。
- 関連する課題の状態 - 関連する課題の状態をチェックします (例: リンクされた課題はすべてクローズされているか)。
- ブランチ ルール アクション - 関連する課題にアクションを適用します (例: すべてのサブタスクを移行する)。
これらを併用すると、複雑な課題の関係を横断できる非常に強力なルールを作成できます。たとえば、すべてのサブタスクが解決されたら、親課題を移行するといったルールです。
異なるプロジェクトにおける関連する課題
別のプロジェクトの課題を操作するには、ルールは複数のプロジェクトまたはグローバル ルールのいずれかとして、課題が存在するプロジェクト内で実行できる必要があります。
関連課題の条件
Automation for Jira の関連する課題の条件によって、ルールを進める前に関係の状態を確認できます。
サブタスク、親、エピック、ストーリー、リンクされた課題、スプリント/バージョンの課題など、ビルトインの関係を数多く提供しています。可能な場合は、関係を JQL でも記述できます。
関係を選択したあと、その関係を持つ課題が存在するかどうか、課題の一部またはすべての課題が特定の JQL クエリと一致するかどうかをテストできます。
これによって、次のような幅広いユースケースが実現します。
- この課題にタイプ X のリンクされた課題があるのか
- 課題に親またはエピックがある場合にのみ続行する
- スプリント/バージョンの課題のうち、未割り当てのものはあるか
- このエピックのすべてのストーリーは解決されているか
- 解決された「QA」タイプのサブタスクに「テスト記録」の値が設定されているかを確認する
関連課題のブランチを作成する
また、関連する課題に対してアクションを実行できます。これは「ブランチ」と呼ばれます。ブランチとは、順番には実行されないものの、複数のパスに拡張して実行されるルールを指します。
課題または課題のリストに対してルールのブランチが作成されると、ルールのサブブランチが各課題に対して実行されます。{{issue}}
に対するすべてのアクションと参照は、トリガー課題でなく関連する課題をポイントします。
注: {{triggerIssue}}
を代用して、トリガー課題を引き続き参照できます。
また、これらの課題を一括処理するオプションも用意されています。
ブランチが役立つユースケースの例をいくつかご紹介します。
- 親からフィールド X に値をコピーして、すべてのサブタスクを同期させる
- ストーリーが「進行中」に移動した際に、エピックを「進行中」に移動する
- 課題が解決された際に「ブロックされている」のリンクされた課題にコメントする
ブランチは独立しています。
ブランチで生じた変更は、メイン ブランチやその他のブランチからは確認できません。
ブランチの制限
現在、Automation for Jira はブランチのネストをサポートしていません。また、ブランチ内では If/Else ブロックを使用できません。
ブランチ実行の順番を付ける
複数の課題でのブランチ (例: サブタスク 4 つ) は並行して実行されますが、次のタスクが開始される前に実行が終了する保証はありません。そのため、ブランチ間の変更には依存できません。
複数の課題上のブランチは新規プロセスとして実行されて、メイン ブランチは (サブブランチが開始されるまで) 実行を続けます。
単一課題のブランチは (パフォーマンスのために) 直列で実行されるため、メイン ブランチはサブブランチが完了するまで実行を継続しません。
作成済み課題にアクセスする
自動化ルールは「課題を作成」または「課題を複製」で課題を作成できます。(コメントの追加やサブタスクの作成など) 同じルールで新規作成された課題に対してさらなるアクションを実行する場合は、関連する課題ブランチが必要です。
これは、自動化ルールのメイン ルールの実行ブランチが、作成された課題ではなくトリガー課題に対して常にルールを適用するためです。たとえば、ルール内で [課題を作成] アクションのあとに [課題にコメント] アクションを追加すると、コメントは作成された課題ではなく、トリガー課題に追加されます。
この問題を解決するルールの例を次に示します。
また、アクションを必要とする課題がそれ 1 つしかない場合は、関連する課題の条件で「直近に作成された」課題を選択できます。
現在の課題でブランチを作成する
これによって、ルールが分岐して現在の課題に対して後続の条件とアクションが実行され、それ以降のアクションが継続されます。課題を複数の値と比較して、それぞれに異なるアクションが必要な場合に役立ちます。
新しい if/else 条件によって、このオプションはほぼ冗長になりました。
トリガー課題へのアクセス
関連する課題の値ではトリガー課題を編集できませんが、{{triggerIssue}}
スマート値によってトリガー課題にアクセスできます。これは {{issue}}
とまったく同じように機能して、{{issue}}
が関連する課題にアクセスして、トリガー課題のすべてのフィールドへの読み取り専用アクセスを許可します。
例: 親とサブタスクを同期する
最も分かりやすい一例は、親課題が「完了」に移動した際にそのサブタスクも「完了」に移動させることです (こちらのブログ投稿では、関連する課題に対する個別のルール チェーンのブランチで実行できる便利な機能を紹介しています)。
このルールでは、親とサブタスクの同期方法を確認できます。