Как получить общее количество часов, потраченных на проблему для пользователя JIRA REST API

Я новичок в REST API JIRA, я хотел получить общее время, затраченное пользователем на проблему. Я попытался использовать https://jira.domain.com/rest/api/2/search?jql=assignee="my.name", и я получаю поле timespent в возвращенном ответе JSON, но оно отображает значение, которое не имеет никакого смысла. В этом случае в поле timespent указано 62760, когда фактическое время, потраченное мной на задачу, меньше этого, поиск возвращает общее время, потраченное на задачу, а не только мной. Как я могу сделать так, чтобы он показывал только мое время?

РЕДАКТИРОВАТЬ: Есть ли способ сделать это с помощью JQL без необходимости делать еще один вызов API для каждой проблемы?


person Hassan Khan    schedule 21.03.2013    source источник


Ответы (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 — первая дата в периоде, условия проекта и затраченного времени уточняют фильтрацию. Этот метод использует разбиение на страницы и игнорирует maxResults, которые вы передаете, если они больше, чем настроено на стороне JIRA. Кроме того, рабочие журналы, возвращаемые вместе с проблемами, разбиваются на страницы с 20 записями на страницу. Итак, чтобы получить отчет, я делаю вызов search?jql=, итерирую рабочие журналы для возвращенных задач, когда issue.fields.worklog.maxResults ‹ issue.fields.worklog.total я вызываю issue/ issue.key /worklog, чтобы получить все рабочие журналы для задачи. . И наверняка вам нужно фильтровать на основе полей worklog.author.name и worklog.started.

person Volodymyr Krupach    schedule 26.01.2014
comment
Я думаю, что в итоге я сделал что-то очень похожее. - person Hassan Khan; 27.01.2014
comment
Я не могу получить wworklog с помощью /rest/api/2/issue/TASC-1/worklog, что-то изменилось в jira api с тех пор? - person Alaa-GI; 16.04.2015
comment
Ничего не изменилось. Меня устраивает. Аутентифицирован ли ваш запрос? - person Volodymyr Krupach; 16.04.2015
comment
Моя очередь worklogDate > 2020-02-01 AND worklogAuthor = currentUser() - person hryamzik; 24.02.2020