以下のように「リンクされた課題」を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を取得して返す |