以前書いた
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の変更履歴を取得する
