Jira Query Language简称JQL,它是Jira中最有用的功能之一。Jira中积累了日常工作中记录的很多数据,要想从中找到想要的内容,就必须掌握搜索技能,也就是要能熟练使用JQL。这里总结了一些最常用也最有用的JQL语句,希望对您的日常工作有所帮助。
1、什么是高级搜索?
高级搜索可以让你使用结构化查询搜索JIRA问题单。搜索结果将显示在问题导航器,你可以将其导出到MS Excel等多种格式。你还可以保存和订阅你的高级搜索。当你执行高级搜索时,你是用的是JIRA搜索语言(JQL)。JQL简单查询(也称为一个“语句”)包括一个字段,包括一个运算符、一个或多个值或功能。
2、如何执行高级搜索
- 选择Issues > Search for Issues将出现问题导航界面。
- 如果有现有的搜索条件,请单击New filter按钮复位搜索条件。
- 如果Advanced是以链接显示,点击该链接切换到高级搜索。
- 使用字段、运算符、字段值或函数输入查询条件。
- 点击Search按钮执行查询;
3、执行文本搜索
当在以下字段执行搜索时,可以使用Lucene的文本搜索功能的CONTAINS运算符:
- Summary
- Description
- Environment
- Comments
- custom 字段采用“自由文本搜索器”,包括以下内置自定义字段类型:
- Free Text Field (无限制文本)
- Text Field (< 255字节)
- Read-only Text Field
4、使用自动填写功能
当你在输入查询条件时,JIRA会自动识别上下文并提供一个自动填写推荐列表。自动填写推荐列表按字母顺序排列,包括前15个匹配值。值得一提的是这个自动填写功能还可以支持模糊的匹配,输入User多种信息都会自动匹配到用户的名。自动填写推荐不提供函数参数。
5、常用语句
以下为总结的一部分常用语句,还可以通过“AND”、“OR”等连接词进行组合,以供大家参考:
序号 | 搜索需求 |
JQL语句 |
1 | 分配给我的待处理任务 | assignee = currentUser() AND resolution is EMPTY |
2 | 我报告的并且没处理完成的任务 | reporter = currentUser() AND resolution is EMPTY |
3 | 某项目中已经过期的任务 | project = "XXX" AND due < now() |
4 | 某项目中3天后要过期的任务 | project = "XXX" AND due <= endOfDay(3d) |
5 | 某项目中待办和处理中状态上的任务 | project = "XXX" AND status in (待办, 处理中) |
6 | 某项目中48小时内没变化过的任务 | project = "XXX" AND updated <= -48h ORDER BY updated DESC |
7 | 某项目中没上传附件的Bug | project = "XXX" and type= Bug and attachments is EMPTY |
8 | 某项目中测试组用户处理完成的任务 | project = "XXX" and assignee in membersOf("testers") and status = 已完成 |
9 | 某项目中最近30天解决的任务 | project = "XXX" and resolved >= startOfDay(-30d) |
10 | 某项目上即将发布的版本中还没解决的任务 | project = "XXX" and fixVersion = earliestUnreleasedVersion() and resolution is EMPTY |
11 | 某项目中重新打开的Bug | project = "XXX" and type = Bug and resolution changed from fixed to empty |
12 | 某项目中标题包含“服务器异常”的Bug | project = "XXX" and type = Bug and summary ~ “服务器异常” |
13 | 某项目上当前进行的Sprint中被标记的任务 | project = "XXX" and Sprint in openSprints() and Flagged = Impediment |
14 | 昨天我将状态从待办改为处理中的任务 | status changed FROM 待办 TO 处理中 BY currentUser() AFTER startOfDay(-1d) |
15 | 用户User1在2019年修改过的Issue | issue in updatedBy(User1, 2019-1-1, 2019-12-31) |
16 | 某项目中已发布版本中包含的任务 | project = "XXX" and fixVersion in releasedVersions() |
17 | 上周发生状态变化的Issue | status changed DURING (startOfWeek(-1), endOfWeek(-1)) |
18 | 以"is duplicated by"关系链接到某个Issue的任务 | issue in linkedIssues(PRO-1,"is duplicated by") |
19 | 3天以来关闭的Issue | status = Closed and status was not Closed ON startOfDay(-3) |
20 | 在某个Filter搜索结果中找出还没解决的任务 | filter = "XXX" and resolution is EMPTY |
21 | 按Issue关键字搜索 | key in (WEB-1, IOS-3) |
22 | 查找我有权限编辑的Issue | project in projectsWhereUserHasPermission("Edit Issues") |