JIRA APIでissueの内容を取得する
ではissueのすべての情報を取得しました
抽出する情報
- 課題タイプ
- ステータス
- 説明
- タイトル
- コメント
抽出する方法
responseを見ると
fields の中に issuetype や status の情報があるので
それらの中から欲しい情報を指定して取得してみる
新たに get_issue_data() という機能を作って取得する
それ以外は JIRA APIでissueの内容を取得する と同じで
get_issue()の最後にログではなく return response で返すところだけ違う
抽出結果
コード.gs
var ISSUE_URL = 'https://SITENAME.atlassian.net/rest/api/2/issue/';
function get_issue_data(){
var response = get_issue();
var jobj = JSON.parse(response);
var fields = jobj["fields"]
var type = fields["issuetype"]["name"];
var status = fields["status"]["name"];
var description = fields["description"];
var summary = fields["summary"];
var comment = fields["comment"]["comments"][0]["body"];
var custom1 = fields["customfield_10025"];
Logger.log([type, status, description, summary, comment]);
}
function get_issue() {
var token = get_token();
var key = "KEY-1";
var options = {
contentType: "application/json",
headers: {"Authorization": " Basic " + token}
};
var url = ISSUE_URL + key;
var response = UrlFetchApp.fetch(url, options);
return response;
}
function get_token() {
var id = "LOGIN_EMAIL";
var pw = "LOGIN_PASSWORD";
var token = Utilities.base64Encode(id + ":" + pw);
return token;
}
|
意訳issueのapiをたたくURLをISSUE_URLに入れる
この機能がやること
get_issue()から返ってきたデータを
オブジェクトに変換して
fieldsの中の
issuetypeのnameを取得して(課題タイプ)
statusのnameを取得して(ステータス)
descriptionを取得して(説明)
summaryを取得して(タイトル)
commentのcommentsの0番目のbodyを取得して(コメント)
customfield_10025の値を取得して
ログに出す
この機能がやること
get_token()からtokenを取得して
issue keyを指定して
optionのオブジェクトを作る
contentType は "application/json"
headers は {"Authorization": " Basic " + token}
urlにISSUE_URL + keyを入れて
optionを付けてデータを取得して
返す
この機能がやること
JIRAのログインに使っているemailと
パスワードを
base64Encodeでエンコードして
返す
|
参考
Get issue
https://developer.atlassian.com/cloud/jira/platform/rest/#api-api-2-issue-issueIdOrKey-get
