tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【JIRA】jql(JIRA Query Language)の使い方 - あいまい検索、日付指定、jql関数などのあんちょこ

はじめに

普段jiraを使っていますが、何かとfilterでのjqlはよく使います。
ただ、そのたびにこんな検索がしたいんだけどどうやるんだろう...と小一時間悩むことがあるので、そんな時のjqlメモです。  

補足

基本編とあんちょこ編に分けて書いてみました

あんちょこ編はtopicがあれば随時更新します(たぶん...

アジェンダ

  1. あいまい検索
  2. 日付の指定
  3. 必須用語/除外用語
  4. サブタスク検索
  5. WAS

1. あいまい検索

基本編でも触れましたが、
jqlは~であいまい検索ができます。

以下、例です。

普通にあいまい検索

Summary (概要)issueおよびcollectorという単語が含まれる課題をすべて検索したい

summary ~ "issue collector"
完全一致であいまい検索

issue collector という語句の完全一致が含まれる検索をしたい

summary ~ "\"issue collector\""

2. 日付の指定

まぁまぁ使うのが日付の指定です。

普通に日付指定

2017年12月12日より前に作成されたものを検索したい

created < "2017/12/12"
(+/-)nn(y|M|w|d|h|m) のオプションで日付指定

日付はyyyy/mm/ddフォーマットの他にも
(+/-)nn(y|M|w|d|h|m)のようなフォーマットで指定できます。

期限まで10日の課題

dueData =< "+14d"

3日以内に作られた課題

created >= "-3d"
jql関数で日付指定

日付用の関数も用意されています。

期限が来週いっぱいの課題

due < endOfWeek("+1")

endOfWeek()はjql関数と言って以下のようなものがあります。

関数 例題 使用例
now() 納期をすぎたもの duedate < now()
startOfDay() 3日前から作成されたもの created > startOfDay("-3d")
startOfMonth() 今月の月初以降に作成された課題 created > startOfMonth()
先月の月初以降に作成された課題 created > startOfMonth("-1")
今月の15日以降に作成された課題 created > startOfMonth("+14d")
startOfWeek() 今週の週初以降に作成された課題 created > startOfWeek()
先週の週初以降に作成された課題 created > startOfWeek("-1")
startOfYear() 今年の年初以降に作成された課題 created > startOfYear()
endOfDay() 納期が今日になっている課題 due < endOfDay()
納期が明日になっている課題 due < endOfDay("+1")
endOfMonth() 納期が今月までとなっている課題 due < endOfMonth()
納期が来月までとなっている課題を検索する 納期が来月までとなっている課題
endOfWeek() 納期が今週末までとなっている課題 due < endOfWeek()
納期が来週末までとなっている課題 due < endOfWeek("+1")
endOfYear() 納期が今年末までとなっている課題 due < endOfYear()
納期が来年の3月末までとなっている課題 due < endOfYear("+3M")

このあたりは公式にも詳しくのっています
* 詳細検索 - 機能リファレンス

3. 必須用語:+/除外用語:-

必須用語:+

必須用語というのは、単一ドキュメントのフィールド内のどこかに "+" 記号に続く用語が存在しなければならないことを意味します。
説明だとわかりにくいのでさっそく例です。

"jira" を必ず含み、"atlassian" を含む可能性のあるドキュメントを検索

+jira atlassian
除外用語:-

逆に除外用語はわかりやすいと思います。

" atlassian jira" を含むが、"japan" は含まないドキュメントを検索

"atlassian jira" -japan

このあたりは公式にも詳しくのっています
* テキストフィールドの検索の構文

4. サブタスク検索

jiraにはとあるチケットに対してsub taskという単位で子チケットを作ることができます。
サブタスク関連で検索したい時も結構ありますよね。

parent

とあるチケット(たとえばHOGE-123)に紐づくサブタスクを検索したい

parent = "HOGE-123"
issuetype

5日以内に作られたサブタスクを検索したい

created > "-5d" and issuetype = "sub-task"

5. WAS

jiraのクエリーにはwasというなかなか秀逸な演算子も存在します。
指定したフィールドの指定した値が現在存在するか、
だけでなく、過去に存在したか、というのも検索条件に含んでくれます。

これも例をみたほうが早いと思います。

プロジェクトがhogeで、アサインが現在fuga、もしくは、fugaだったことがある もので、ステータスがopenの課題

project = hoge and assignee was fuga and status = open

今のアサインがfugaでなくともhitします

おわり

なかなかイロイロな検索ができますね\(^o^)/