JIRAの特定の課題のコメントをすべて取得したくて書いたコードです
今回取得するコメント情報
- コメントした人
- コメントした日時
- コメント
コード.gsの以下の変数を設定して実行すると上記の情報がログに出ます
- ISSUE_KEY
- SITENAME
- LOGIN_EMAIL
- LOGIN_PASSWORD
コード.gs
function get_comment_gs(){ var key = "ISSUE_KEY" var response = get_issue(key); var jobj = JSON.parse(response); var fields = jobj["fields"] var comments = fields["comment"]["comments"]; var len = comments.length; var concat = ""; for(var i = 0; i < len; i++){ var comment = comments[i]["body"]; var created = comments[i]["created"]; var author = comments[i]["updateAuthor"]["emailAddress"]; created = Utilities.formatDate(new Date(created), 'Asia/Tokyo', 'yyyy/MM/dd-HH:mm:ss'); concat += author + "\n" + created + "\n" + comment + "\n\n"; } var result = [concat, len] Logger.log(result); } function get_issue(key) { var ISSUE_URL = 'https://SITENAME.atlassian.net/rest/api/2/issue/'; var token = get_token(); 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; } |
意訳この機能がやること 課題のKEYを指定する get_issueに渡して結果を取得して JSONをオブジェクトに変換して fieldsを取得して コメントをすべて取得して コメントの数を取得して すべてのコメントを入れる入れ物を用意して コメントの数だけ以下を繰り返す コメントの内容を取得して コメントの日付けを取得して コメントした人のemailを取得して 日付けをフォーマットして 改行を入れて結合していく すべてのコメントとコメント数を ログに出す この機能がやること issueのapiをたたくURLをISSUE_URLに入れる get_token()からtokenを取得して optionのオブジェクトを作る contentType は "application/json" headers は {"Authorization": " Basic " + token} urlにISSUE_URL + keyを入れて optionを付けてデータを取得して 返す この機能がやること JIRAのログインに使っているemailと パスワードを base64Encodeでエンコードして 返す |