以前書いた
JIRA APIでissueの変更履歴を取得する
ではhistoriesの先頭でitemsの先頭のみを取得しましたが
今回はそれぞれ複数ある場合のコードを書来ました。
事前準備
- スクリプトプロパティにtokenという名前でbasic認証用の文字列を入れておきます
- ISSUE_URLのSITENAMEは各自の設定によります
- myFunctionのkeyは対象の課題キーを入れます
コード.gs
var ISSUE_URL = 'https://SITENAME.atlassian.net/rest/api/2/issue/'; function myFunction() { var key = "KEY-1"; var histories = get_issue_histories(key); var arrays = []; for(var i = 0; i < histories.length; i++) { var history = histories[i]; var created = format_date(history["created"]); var items = history["items"]; for(var j = 0; j < items.length; j++) { var item = items[j]; var field = item["field"]; var from = item["fromString"]; var to = item["toString"]; Logger.log([created, field, from, to]); } } Logger.log(arrays); } function get_issue_histories(key) { var response = get_issue(key); var jobj = JSON.parse(response); var histories = jobj["changelog"]["histories"]; return histories; } function get_issue(key) { var token = getProp("token"); var options = { contentType: "application/json", headers: {"Authorization": " Basic " + token} }; var url = ISSUE_URL + key + '?expand=changelog'; var response = UrlFetchApp.fetch(url, options); return response; } function getProp(key) { return PropertiesService.getScriptProperties().getProperty(key); } function format_date(date) { return Utilities.formatDate(new Date(date), "asia/tokyo", "yyyy-MM-dd HH:mm") } |
実行結果
事前準備完了後にmyFunctionを実行すると
対象の課題について変更した日時とfieldとfromとtoがログに出ます。
関連記事
JIRA APIでissueの変更履歴を取得する