4

私は JIRA の REST API にまったく慣れていないので、ユーザーが課題に費やした合計時間を取得したいと考えていました。を使用してみましたが、返された JSON 応答でフィールドhttps://jira.domain.com/rest/api/2/search?jql=assignee="my.name"を取得しtimespentましたが、意味をなさない値が表示されます。この場合、timespentフィールドには 62760 と表示されます。私が課題に費やした実際の時間がそれよりも短い場合、検索は私だけではなく課題に費やした合計時間を返します。自分の時間だけを表示するにはどうすればよいですか?

編集:問題ごとに別の API 呼び出しを行うことなく、JQL でこれを行う方法はありますか?

4

1 に答える 1

7

私は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 ページネーションを利用せずにすべての作業ログを返すことです。少なくとも、1 つの課題に対して約 1200 の作業ログ レコードを生成した私のローカル開発 JIRA には当てはまります。ただし、sartAt と maxResults はメソッドのドキュメントにあるため、JIRA のインストールを確認する必要があります: 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 側で設定された値よりも大きい場合は無視します。また、問題とともに返される作業ログは、1 ページあたり 20 レコードでページングされます。レポートを取得するには、search?jql= 呼び出しを行い、返された問題の作業ログを繰り返します。 . 確かに、worklog.author.name および worklog.started フィールドに基づいてフィルタリングする必要があります。

于 2014-01-26T10:08:52.383 に答える