以下のように「リンクされた課題」をAPIで設定したくて書いたコードです。
Blocksにする例
コード.gs
var ENDPOINT = "https://SITENAME.atlassian.net/rest/api/3/issueLink";
function doPost() {
var payload = getPayload();
var options = getOptions(payload);
var response = UrlFetchApp.fetch(ENDPOINT, options);
Logger.log(response.getResponseCode());
}
function getPayload(values) {
var data = {
"type": {
"name": "Blocks"
},
"inwardIssue": {
"key": "KT-9"
},
"outwardIssue": {
"key": "KT-8"
}
}
var payload = JSON.stringify(data);
return payload;
}
function getOptions(payload) {
var options = {
method: "post",
payload: payload,
contentType: "application/json",
headers: {"Authorization": " Basic " + getToken()}
}
return options;
}
function getToken() {
return PropertiesService.getScriptProperties().getProperty("token");
}
|
意訳実行するAPIのENDPOINTを指定する この機能がやること payloadを取得する optionsを取得する ENDPOINTにoptionsを渡して結果を取得する getResponseCodeをログに出す この機能がやること dataオブジェクトを作って typeは Blocks inwardIssueは KT-9(KT-9のリンクされた課題にblocksでKT-8を追加する) outwardIssueは KT-8(KT-8のリンクされた課題にis blocked byでKT-9を追加する) dataをJSONにして 返す この機能がやること optionsオブジェクトを作って methodはpostにして payloadには引数で渡されたpayloadを指定して contentTypeはapplication/jsonにして headersにはスクリプトのプロパティに入れたtokenをgetToken()で取得して optionsを返す この昨日がやること スクリプトのプロパティにあるのtokenを取得して返す |

