JIRAで特定の課題の変更履歴をシートに書き出したい
では1つの課題の履歴を取得して書き出しました。
今回は複数の課題を取得して書き出してくてやってみました。
課題を判別できるよう、A列にkey列を追加しています。
コード.gs
var ISSUE_URL = 'https://SITENAME.atlassian.net/rest/api/2/issue/'; var ss_url = "https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0"; /************************************ これを実行する ************************************/ function getIssuesHistories() { var keys = ["KT-12", "KT-13", "KT-14"]; var arrays = []; for(var i = 0; i < keys.length; i++) { var key = keys[i]; getIssueHistories(key); } } /************************************ 受け取った課題keyをgetHistoriesに渡して結果をシートに書き込む ************************************/ function getIssueHistories(key){ var response = getHistories(key); var jobj = JSON.parse(response); var histories = jobj["changelog"]["histories"]; var arrays = []; for(var i = 0; i < histories.length; i++) { var history = histories[i]; var created = returnFormatDate(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"]; arrays.push([key, field, from, to, created]); } } setValuesToSheet(arrays); } /************************************ 履歴を取得して返す ************************************/ function getHistories(key) { var options = { contentType: "application/json", headers: {"Authorization": " Basic " + getProp("token")} }; var url = ISSUE_URL + key + '?expand=changelog'; var response = UrlFetchApp.fetch(url, options); return response; } /************************************ シートに書き込む ************************************/ function setValuesToSheet(arrays){ var sheet = SpreadsheetApp.openByUrl(ss_url).getSheets()[0]; var last_row = sheet.getLastRow(); var start_row = last_row + 1; var start_col = 1; var num_rows = arrays.length; var num_cols = arrays[0].length; var range = sheet.getRange(start_row, start_col, num_rows, num_cols); range.setValues(arrays); } /************************************ 日付をフォーマットして返す ************************************/ function returnFormatDate(date) { return Utilities.formatDate(new Date(date), 'Asia/Tokyo', 'yyyy/MM/dd/HH:mm:ss'); } /************************************ 受け取ったkeyの値をスクリプトのプロパティから返す ************************************/ function getProp(key) { return PropertiesService.getScriptProperties().getProperty(key); } |
関連記事
JIRAで特定の課題の変更履歴をシートに書き出したい