文章目录
一、JQL语法
1.1 JQL语法简介
JIRA 的 JQL 语法由以下几个元素组成:
- field (字段) : 就是要搜索的JIRA Issue 的各个字段
- operator(运算符或者也叫操作符):如 =, < , > , in 等
- value(值):具体要查询的字段匹配的值
- keyword(关键字): keyword这个字面上理解可能会带来些歧义, 主要有以下作用
(1)连接两个表达式,即通常我们所说的逻辑运算符:AND, OR, NOT
(2)排序运算符:ORDERBY
(3)还有一部分就是表示空的关键字: NULL 和 EMPTY,这两个貌似才是通常意义上的关键字 - function(方法):即JIRA提供的一些方法,如 now()表示当前时间,currentUser()表示当前用户等
语法示例如下:
其中field可用接口中获取:
1.2 Jira中常用的JQL搜索语句
序号 | 搜索需求 | 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) |
二、查询issue信息
2.1 安装JIRA依赖库
pip3 install jira
2.2 登录JIRA
JIRA都有访问限制,在访问Jira项目时首先要进行认证,Jira Python库提供了3种认证方式:
- 通过Cookis方式认证(用户名,密码)
- 通过Basic Auth方式认证(用户名,密码)
- 通过OAuth方式认证
from jira import JIRA
# 通过jira域名和账户密码登录
jira = JIRA(