如何在用户JIRA REST API的问题上花费总时间

Has*_*han 4 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调用?

Vol*_*ach 7

我明白我迟到了一年:-).张贴帮助可能面临同样问题的其他人.

REST /rest/api/2/search?jql=assignee="my.name"将返回其他用户的工作日志,并可能省略"my.name"用户的工作日志.在JIRA中,您无需成为受让人就某个问题报告时间.

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

/rest/api/2/issue/ issue.key /worklog
Run Code Online (Sandbox Code Playgroud)

然后迭代通过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"
Run Code Online (Sandbox Code Playgroud)

2014-01-20是一个时期的第一个日期,项目和时间条件改进了过滤.此方法使用分页,如果它大于JIRA端配置,它将忽略您传递的maxResults.返回的工作日志以及问题都会被分页,每页有20条记录.为了获得报告,我进行搜索?jql = call,迭代返回问题的工作日志,当issue.fields.worklog.maxResults <issue.fields.worklog.total我调用issue/issue.key/worklog来获取问题的所有工作日志.当然,您需要根据worklog.author.name和worklog.started字段进行过滤.