2
1
0
2 回答
- 321
結局Script Fieldsを使用して履歴をなめてカウントするもので実装しました。
com.atlassian.jira.issue.IssueManager issueManager = com.atlassian.jira.component.ComponentAccessor.getIssueManager(); com.atlassian.jira.user.util.UserManager userManager = com.atlassian.jira.component.ComponentAccessor.getUserManager(); com.atlassian.jira.issue.changehistory.ChangeHistoryManager changeHistoryManager = com.atlassian.jira.component.ComponentAccessor.getChangeHistoryManager(); //課題ID取得 com.atlassian.jira.issue.Issue issueObject = issueManager.getIssueObject(issue.getId()); //該当課題の更新履歴取得 java.util.List<com.atlassian.jira.issue.changehistory.ChangeHistoryItem> changeHistoryItems = changeHistoryManager.getAllChangeItems(issueObject); java.util.List<com.atlassian.jira.issue.changehistory.ChangeHistory> changeHistories = changeHistoryManager.getChangeHistories(issueObject); int result = 0; //更新履歴内のduedateをカウント for (com.atlassian.jira.issue.changehistory.ChangeHistory changeHistory : changeHistories) { java.util.List<com.atlassian.jira.issue.history.ChangeItemBean> changeItemBeans = changeHistory.getChangeItemBeans(); for (com.atlassian.jira.issue.history.ChangeItemBean changeItemBean : changeItemBeans) { if (changeItemBean.getField() == "duedate"){ result += 1; } } } return result;
このScript Fieldsを下のJQLで引っ張る事にしました
JQL Example :<カスタムフィールド名> !~ "0"
- Kengo Ohsaki
すごい。ScriptRunnerを使うと本当に幅が広がりますよね…
コメントを追加... - 10-1
- RYOITO
できないですか… 例えば別の方法でREST APIの /jira/rest/api/2/issue/XX-123?expand=changelog で引っ張ったものから"field":"duedate"を抽出のような事もできないでしょうか…
- Kengo Ohsaki
そうですね...JQLでは無理なので RESTなりで履歴をなめていくしかないですね。
コメントを追加...
期限が変更された課題を検索できませんか?
「担当者」であれば”changed”があるようですが、「duedate」にはヒストリーの検索は使えないと出ます。