JIRA APIを利用して選択リスト(複数選択)フィールドに値を入れたくて書いたコードです。
コード.gsのこの部分で複数選択の値を選択できました。
customfield_10043 は手元のJIRAでの選択リスト(複数選択)のフィールドIDなので、各自の環境によって異なります。
valueの値は選択肢の文字列です。
customfield_10043: [// 複数選択チェックボックス
{
"value": "チェック2"
},
{
"value": "チェック4"
}
],
他の部分はPOSTする際に共通で使っているコードです。
コード.gs
var BASE_URL = 'https://SITENAME.atlassian.net/rest/api/2/'; function doPost() { var payload = get_payload(); var options = get_options(payload); var response = UrlFetchApp.fetch(BASE_URL + "issue/", options); var key = get_key(response); Logger.log(key); } function get_payload() { var data = { project: {key: "KEY"}, issuetype: {name: "Bug"}, summary: "たいとる", description: "タスクの説明です\n説明の2行め", customfield_10043: [// 複数選択チェックボックス { "value": "チェック2" }, { "value": "チェック4" } ], reporter: {id: getAccountId()}, }; var fields = {fields: data}; var payload = JSON.stringify(fields); return payload; } function get_options(payload) { var options = { method: "post", payload: payload, contentType: "application/json", headers: {"Authorization": " Basic " + getToken()} } return options; } function getAccountId() { var email = Session.getActiveUser().getEmail(); var url = BASE_URL + 'user/search?query=' + email; var options = { method: "get", contentType: "application/json", headers: {"Authorization": " Basic " + getToken()}, muteHttpExceptions: true } var response = UrlFetchApp.fetch(url, options); var jobj = JSON.parse(response); var accountInfo = getAccountInfo(jobj, email); var accountId = accountInfo['accountId']; return accountId; } function getAccountInfo(jobj, email) { var accountInfo; for(var i = 0; i < jobj.length; i++) { var emailAddress = jobj[i]['emailAddress']; if(emailAddress === email) { accountInfo = jobj[i]; } } return accountInfo; } function get_key(response){ var jobj = JSON.parse(response); var key = jobj["key"]; return key; } function getToken() { return PropertiesService.getScriptProperties().getProperty('token'); } |