配图源自 Freepik
过滤器(筛选器)是 Jira 核心功能之一,利用它可以实现很多的需求。
开始之前
作一些简单的了解。
JQL:Jira Query Language
JQL Functions
一些基本函数,更多请看这里。
函数 | 说明 |
---|---|
currentUser() | 当前登录用户 |
startOfWeek() | 本周开始 |
endOfWeek() | 本周结束 |
startOfMonth() | 本月开始 |
endOfMonth() | 本月结束 |
... |
JQL Keywords
利用 AND、OR、NOT 等将多个条件连接在一起,实现更多复杂的查询,更多请看这里。
查询
利用函数可以快速做一些筛选。
本周工作:
worklogAuthor = currentUser() AND worklogDate >= startOfWeek() AND worklogDate < endOfWeek()
本月工作:
worklogAuthor = currentUser() AND worklogDate >= startOfMonth() AND worklogDate < endOfMonth()
指定时间范围:
worklogAuthor = currentUser() AND worklogDate >= "2025/04/21" AND worklogDate <= "2025/04/25"
周报/月报
请注意,函数是动态的。
如果将上述查询条件直接应用在汇报里面是有问题的。
-
worklogAuthor = currentUser()
谁登录了就是谁的。 -
startOfWeek()
是动态的,如果这周访问了上周的周报,会显示这周的内容。
你想一下,如果领导访问你的周报,但他看到了自己本周的任务,惊呆了!😲
我是这样做的(仅供参考):
- 指定时间范围
- 跟我有关的
- 有记录工时的任务
- 指派给我,但未记录工时。比如像 WON'T FIX 的任务
组合查询如下:
(worklogAuthor = "frankie" AND worklogDate >= "2025/04/21" AND worklogDate <= "2025/04/25")
OR
(assignee = "frankie" AND worklogAuthor is EMPTY AND created >= "2025/04/21" AND created <= "2025/04/25")
也可以在 .zshrc
中放入这个小脚本自动生成。
function genReportJQL() {
local username="your_jira_username" # TODO: 你的用户名
local mode=${1:-weekly} # 默认 weekly
local start end
if [[ "$mode" == "monthly" ]]; then
start=$(date '+%Y/%m/01')
end=$(date -v+1m -v1d -v-1d '+%Y/%m/%d')
else
local dow=$(date +%u)
start=$(date -v -"$(($dow - 1))"d '+%Y/%m/%d')
end=$(date -v +"$((5 - $dow))"d '+%Y/%m/%d')
fi
local jql="(worklogAuthor = \"$username\" AND worklogDate >= \"$start\" AND worklogDate <= \"$end\") OR (assignee = \"$username\" AND worklogAuthor is EMPTY AND created >= \"$start\" AND created <= \"$end\")"
printf "%s" "$jql" | pbcopy
echo "$jql"
echo "✅ Copied to clipboard"
}