You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Jira API过滤指定用户工作日志,排除同工单其他用户日志?

解决Jira API获取特定用户专属工作日志的问题

嘿,我来帮你搞定这个Jira工时统计的问题!你现在遇到的核心问题是:用worklogAuthor的JQL查询只能筛选出包含目标用户日志的工单,但工单里其他用户的日志也会跟着返回,对吧?下面给你两种可行的解决方案:


方案1:使用专门的用户工作日志API(推荐)

Jira其实提供了直接获取特定用户工作日志的API端点,能精准返回该用户的所有日志,完全不会混入其他人的内容。

请求示例

GET https://jira.example.com/rest/api/2/worklog/user?username=testUser&project=Test%20Project&since=-7d&startAt=0&maxResults=100

参数说明

  • username:目标用户的用户名(和你之前用的testUser一致)
  • project:项目键名(比如Test Project要转义成Test%20Project)
  • since:时间范围,-7d表示过去7天,符合你的周统计需求
  • startAt/maxResults:分页参数,和search API用法一致,用来处理大量日志的情况

这个端点返回的结果就是纯目标用户的工作日志,直接就能用来统计工时,不需要额外过滤。


方案2:保留原search API,本地过滤日志条目

如果因为某些原因必须用现有的search API查询,那可以在拿到返回结果后,在本地对worklogs数组进行过滤,只保留目标用户的日志。

过滤逻辑示例(以JavaScript为例)

// 假设apiResponse是你从search API拿到的完整响应数据
const targetUsername = "testUser";

// 提取所有工单中属于目标用户的日志
const filteredWorklogs = apiResponse.issues.flatMap(issue => {
  return issue.fields.worklogs.filter(worklog => {
    return worklog.author.name === targetUsername;
  });
});

// 现在filteredWorklogs里就只有testUser的工作日志了

为什么原查询会带回其他用户的日志?

这里要解释下JQL的worklogAuthor逻辑:它是用来筛选存在该用户工作日志的工单,而不是筛选工单内的日志条目。所以只要工单里有目标用户的一条日志,整个工单的所有日志都会被返回,这是JQL的设计特性,不是bug哦。


内容的提问来源于stack exchange,提问作者John Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:10:35