jira - 如何获取用户 JIRA REST API 在问题上花费的总小时数

标签 jira jira-rest-java-api

我对 JIRA 的 REST API 很陌生,我想获得用户在某个问题上花费的总时间。我尝试使用 https://jira.domain.com/rest/api/2/search?jql=assignee="my.name" ,我得到了 timespent返回的 JSON 响应中的字段,但它显示一个没有任何意义的值。在这种情况下,timespent字段显示 62760,当我在该问题上实际花费的时间少于该值时,搜索将返回该问题花费的总时间,而不仅仅是我。我怎样才能让它只显示我的时间?

编辑:有没有办法用 JQL 做到这一点,而不必为每个问题做另一个 API 调用?

最佳答案

我知道我迟到了一年:-)。
发帖以帮助可能面临同样问题的其他人。

REST/rest/api/2/search?jql=assignee="my.name"将返回其他用户的工作日志,并且可以省略“my.name”用户的工作日志。在 JIRA 中,您无需成为受托人即可报告问题的时间。

看起来获取“用户 JIRA REST API 在问题上花费的总时间”的最简单方法是使用:

/rest/api/2/issue/ issue.key /worklog

然后迭代通过 worklog.author.name 过滤它们的工作日志。 api/2/issue/issue.key/worklog 好的一面是它返回所有工作日志而不使用 startAt 和 maxResults 分页。至少对于我的本地开发 JIRA 来说是这样,我为单个问题生成了大约 1200 条工作日志记录。但是您需要检查 JIRA 安装,因为 sartAt 和 maxResults 在该方法的文档中:https://docs.atlassian.com/jira/REST/latest/#d2e1411

获取我使用的一组用户和问题的工作日志
/rest/api/2/search?jql=updated > 2014-01-20 and project in (MWC,MWCS,RND) and timespent > 0&fields=summary,worklog&maxResults=1000"

其中 2014-01-20 是一个时期中的第一个日期,项目和时间消耗条件细化过滤。此方法利用分页,如果您传递的 maxResults 大于 JIRA 端的配置,它将忽略它。与问题一起返回的工作日志也分页,每页 20 条记录。因此,为了获得报告,我进行 search?jql= 调用,迭代返回问题的工作日志,当 issue.fields.worklog.maxResults < issue.fields.worklog.total 我调用 issue/issue.key/worklog 以获取问题的所有工作日志.当然,您需要根据 worklog.author.name 和 worklog.started 字段进行过滤。

关于jira - 如何获取用户 JIRA REST API 在问题上花费的总小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560088/

相关文章:

jira - 如何使用 JQL 检索特定状态的问题

jira - TeSTLink 创建 Jira 问题版本字段

git - 通过 Git 提交关闭 Jira 问题

rest - 如何通过 REST API 更新 JIRA 中的自定义字段?

java - 无法解决 jira-rest-java-client 依赖性

java - 将 List 从 java 转换为 html 中的下拉菜单

java - Jira 过滤器 REST 消耗

docker - 我如何从一个Docker容器中看到另一个Docker容器?

python - JIRA-Python 的基本身份验证不再适用于 REST API 调用。接下来是什么?

java - 如何使用Jsoup登录JIRA?