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