この記事について
この記事は、aslead Agileの開発チーム「オキザリス」にて行っているアウトプット企画である「チーム「オキザリス」Advent Calendar」の23日目の記事です。
この記事の立ち位置
本アドベントカレンダーの18日目に、「Confluenceを使いこなそう!便利な機能5選」という記事を書きました。その中でJiraの「JQLを用いたアドバンス検索」機能に少し触れたのですが、この記事ではJQLの使い方に特化してご紹介します。
JQLとは?
"JIRA Query Language"つまり"Jiraクエリ言語"のことです。Jira上で、課題のアドバンス検索を行う際に用います。基本的な文法はSQLに似ています。
JQLの書き方を抑えよう!
よく使うJQLの書き方を、例を交えて紹介します。
複数条件指定
複数の条件をAND
やOR
でつなぐことができます。SQLと同じくAND
の方がOR
よりも優先されるため、OR
のかかる範囲は()を用いて適切に設定しましょう。
下記は「プロジェクトProject_A内に作成され、ステータスが完了であり、担当者がUser1の課題」を検索するクエリです。
project = Project_A AND status = done AND assignee = User1
1つの条件に複数の値を設定
1つの項目に対し複数の値を指定する場合には、IN (値1, 値2, ...)
を用います。例えば下記は、「Project_A、Project_BおよびProject_Cに所属する」課題を検索するクエリです。
project IN (Project_A, Project_B, Project_C)
その他の演算子
JQLでは=
やIN
の他にも、IS
、~
などの演算子を使い分ける必要があります。
例えば下記は「説明欄が空(何も書かれていない)」である課題の検索クエリです。EMPTYまたはNULLを検索値とする場合は、IS
を用います。
description IS EMPTY
また、下記は「コメント欄に"テスト"という言葉を含む」課題の検索クエリです。
comment ~ テスト
否定条件
=
や~
の否定は!=
、!~
ですが、IN
やIS
の否定にはNOT
を用います。例えば下記クエリのような書き方になります。
project NOT IN (Project_A, Project_B) AND description IS NOT EMPTY AND comment !~ テスト
日にちに関する指定
JQLでは、現時点を0として相対的に日にちを指定することができます。「直近1週間以内に作成された課題」という指定は、「作成日が-1週間より新しい」と考えて下記のようなクエリで書けます。
created > -1w
また、「今年の初め」を表すstartOfYear()
といった関数も用意されています。同様にstartOMonth()
、startOWeek()
、startOfDay()
、また終わりを表すendOfYear()
などもあります。例えば「今年になってから作成された課題」はこのように表します。
created > startOfYear()
人に関する指定
「自分が担当者の課題」という指定は、assignee = 自分の名前
と自分の名前を直接指定することでも実現できますが、JQLに用意されているcurrentUser()
という関数を用いて下記のように書くことができます。
assignee = currentUser()
この関数は「現在のユーザー」を表すので、例えばこの検索条件を公開設定でフィルタ保存しておくと、他の人も「自分が担当者の課題」を検索するクエリとして利用することができます。
また、Jiraのユーザー管理として、ユーザーをグループに紐づけて管理することができます。例えば「Developperというグループに所属する人のいずれかが担当である課題」は下記のように検索できます。
assignee IN membersOf("Developper")
※ここまでいくつかJQLに用意されている関数をご紹介しましたが、詳細はこちらのアトラシアン社サイトをご覧ください!
並べ替え
ORDER BY
句を用います。昇順に並べたい場合はASK
、降順び並べたい場合はDESC
を指定します。
例えば下記は、プロジェクトProject_A内に作成された課題を、作成日が新しい順に表示します。
project = Project_A ORDER BY created DESC
最後に
初めは難しく見えるかもしれませんが、Jiraにはオートコンプリート機能もありますし、慣れてしまえば簡単です。
慣れるためにも、色んなフィルタを作って遊んでみることをお勧めします(特にJiraに関するアトラシアンの資格試験を受験予定の方は、JQLの知識は必須です!)。
JQLをマスターして、Jira名人に近づきましょう!