【问题标题】:How to get total hours spent on an issue for a user JIRA REST API如何获取用户 JIRA REST API 在问题上花费的总小时数
【发布时间】:2013-03-21 23:31:19
【问题描述】:

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

编辑:有什么方法可以用 JQL 做到这一点,而不必为每个问题进行另一个 API 调用?

【问题讨论】:

    标签: jira jira-rest-java-api


    【解决方案1】:

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

    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 是一个期间的第一个日期,项目和时间条件会优化过滤。此方法利用分页,如果它大于 JIRA 端配置的 maxResults,它将忽略您传递的 maxResults。与问题一起返回的工作日志也以每页 20 条记录进行分页。因此,为了获得报告,我进行 search?jql= 调用,迭代返回问题的工作日志,当 issue.fields.worklog.maxResults

    【讨论】:

    • 我想我最终做了一些非常相似的事情。
    • 我无法使用“/rest/api/2/issue/TASC-1/worklog”获取 wworklog,自那以后 jira api 有什么变化吗?
    • 没有任何改变。这个对我有用。您的请求是否经过身份验证?
    • 我的队列是worklogDate > 2020-02-01 AND worklogAuthor = currentUser()
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多