Jiraの「限界」を突破せよ:Jira Expressionsで実現する自動化の魔術
こんにちは。現場で泥臭くコードを書き、時にはアジャイルの泥沼からチームを救い出す、あなたの隣のエンジニアです。
Jiraを使い込んでいると、必ず突き当たる壁があります。そう、「JQLだけでは、どうにもならない複雑なロジック」です。
「子課題がすべて完了したら親課題を自動で完了させたい」「特定の権限を持つユーザーが特定のステータスに動かすときだけバリデーションをかけたい」……。
そんなとき、多くの人は「高価なプラグインを買う」か「手作業で運用する」という選択肢を選びがちです。しかし、今日からその必要はありません。Jira Cloudには「Jira Expressions」という、最強の武器が標準で備わっているからです。
今日は、この「Jira Expressions」を使いこなし、あなたのチームのベロシティを爆速化させるためのマスタークラスへご招待します。
—
1. Jira Expressionsとは何か?
一言で言えば、「Jiraのデータ構造に直接アクセスし、プログラム的に判定を行うための軽量なクエリ言語」です。
JQLは「課題を検索する」ための言語ですが、Jira Expressionsは「課題やユーザー、プロジェクトの属性をプログラムとして評価する」ためのものです。Jira Automation(自動化ルール)の「条件(Condition)」や「検証(Validation)」の項目で、この魔法を使います。
2. まずはHello World:動的条件の基本
まずは、最も基本的な「現在の課題が『バグ』かどうか」を判定する式を書いてみましょう。
// issueは現在の課題を指すコンテキスト変数です
issue.issueType.name == ‘Bug’
これだけで、Automationの条件判定として「バグの場合のみ実行する」というロジックが完成します。
3. 【実戦】子課題のステータス連動(親課題の自動クローズ)
現場で最もニーズがあるのが「子課題がすべて終わったら親課題を完了させる」という自動化です。これをJira Expressionsで書くと、驚くほどシンプルになります。
設定場所: 自動化ルールの「条件」>「Jira Expressionの条件」
// 親課題の子課題リストを取得し、そのうちステータスが「Done」以外のものが存在するか確認
issue.subtasks.filter(subtask => subtask.status.name != ‘Done’).length == 0
- 解説: `issue.subtasks`で子課題の配列を取得し、`filter`関数で「Doneじゃないもの」を抽出します。その数が0なら(つまりすべてDoneなら)、条件は「真」となります。
これだけで、手動のステータス更新という「無駄な待ち時間」を完全に排除できます。
4. 【応用】特定グループによる高度なバリデーション
「特定の重大なステータス変更は、特定のグループ(例: `architects`)に属する人しか許可しない」といった制御も、コードで書けば一行です。
// 現在のユーザーが ‘architects’ グループに含まれているかを判定
user.groups.filter(g => g.name == ‘architects’).length > 0
これをワークフローのバリデーションに組み込むことで、権限管理の煩雑さから解放されます。
—
5. 開発者としての「極意」:デバッグの極め方
Jira Expressionsを書く際、最も大切なのは「データ構造を想像する力」です。
- 公式ドキュメントを辞書にする: [AtlassianのJira Expressionsリファレンス](https://developer.atlassian.com/cloud/jira/platform/jira-expressions/)をブックマークしてください。
- コンテキストを理解する: 今、どのオブジェクト(issue, user, projectなど)を触っているのかを常に意識してください。
- 短く書く: 複雑なロジックはバグの元です。Jira Expressionsは「判定」に特化させ、重い処理は自動化アクションの「分岐」に任せるのが、メンテナンス性の高い設計です。
6. まとめ:なぜこれをやるのか
ツールに振り回されるエンジニアは、マニュアルに書かれた機能しか使いません。しかし、プロフェッショナルは「ツールが提供するAPIとロジックの断片」を組み合わせて、自分たちのためのワークフローをハックします。
Jira Expressionsをマスターするということは、Jiraという巨大なシステムを、あなたのチーム専用の「インテリジェントな秘書」へと進化させることです。
最初は難しく感じるかもしれません。しかし、一度この「コードで制御する快感」を覚えたら、もう二度と手動でチケットをポチポチする生活には戻れなくなるはずです。
さあ、まずは簡単な条件判定から、あなたのプロジェクトに組み込んでみてください。現場で震えるほど楽になる瞬間が、必ず待っていますよ。
—
何か詰まったら、いつでも聞いてください。あなたのコードが、チームの未来を切り拓くことを願っています。