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でエンコードして
返す
|