JIRA で JQL (JIRA Query Language) を使って高度な検索を実現する

JIRA で JQL (JIRA Query Language) を使って高度な検索を実現する

この記事では JIRA で JQL (JIRA Query Language) を使ってチケット検索を柔軟に行う方法を掲載します。通常の検索機能だけでは出来ない柔軟で高度な検索が出来るようになりますので、JQL を使いこなして早く仕事を終えるようにしましょう。

そもそも JIRA をご存知ない方がいるかも知れませんので、以下に JIRA とは何かを掲載します。
JIRA(ジラ)はアトラシアンが開発した企業向けプロプライエタリ・ソフトウェアであり、主にバグトラッキング課題管理プロジェクト管理に用いられる。JIRAはパブリックオープンソースプロジェクトで広く使用されており、また122カ国25,000以上の顧客により使用されている。

出典: フリー百科事典『ウィキペディア(Wikipedia)』


JQL (JIRA Query Language) の高度な利用例

それでは早速 JQL を使った高度な検索例をいくつか見ていきましょう。JQL を使って検索すると次のような画面になります。


プロジェクト BC の未解決チケットを優先度降順、更新日降順でソートする

project = BC AND resolution = Unresolved ORDER BY priority DESC, updated DESC

コメントに Japanese という文字が入っているチケットを LIKE 検索

comment ~ "Japanese*"


解決済みとクローズされたチケットを検索し、作成日順にソートする

status in (resolved, closed) ORDER BY createdDate

年初以降にステータスが Open から In Progress に変更されたチケットを検索する

status CHANGED FROM "Open" TO "In Progress" AND createdDate >= startOfYear()

年初以降にステータスが In Progress から Resolved に変更されたチケットを検索する

status CHANGED FROM "In Progress" TO "Resolved" AND createdDate >= startOfYear()

1週間のうち、ステータスが In Progress だったチケットのみを検索する

status was in ("In Progress") DURING (startofweek(), endofweek())

チケットの件数を知る方法

JIRA の JQL は SQL そのものではないため、SQL のように COUNT(*) で件数を知ることは出来ません。次のように JQL に適切な条件を設定して実行して表示される件数を見るしかないようです(2019/05/26 時点)。

チケット番号で検索する方法

チケット番号で検索するには「id = チケット番号」とすれば良い。
id = CRW-291

サブタスク(Sub-task)のみ一覧表示する

issuetype = Sub-task


親チケットがクローズされておらず、子チケットがクローズされているチケット一覧表示


※ScriptRunner アドインが必要
issuefunction in parentsOf("issuefunction in subtasksOf(\"issuefunction not in parentsOf('type in subTaskIssueTypes() and status != closed') and status != closed and type in standardIssueTypes()\") and status = closed")