JIRA APIをたたいて
指定したプロジェクトの中にある課題の情報を取得したい
今回取得する情報
- 課題タイプ
- ステータス
- 説明
- タイトル
- 特定のカスタムフィールド
以下のコード.gsの
- SITENAME
- LOGIN_EMAIL
- LOGIN_PASSWORD
- customfield_10025
を変更して実行すると100件までの課題を取得できます
(一度に取得できる上限は100件まで)
(一度に取得できる上限は100件まで)
コード.gs
var BASE_URL = "https://SITENAME.atlassian.net/rest/api/2/";
var JQL = "search?jql=project=PROJECTNAME&startAt=0&maxResults=100";
var ISSUES_URL = BASE_URL + JQL;
function get_log() {
var token = get_token();
var response = get_issues(token);
var data = get_issue_data(response);
Logger.log(data);
}
function get_token() {
var id = "LOGIN_EMAIL";
var pw = "LOGIN_PASSWORD";
var token = Utilities.base64Encode(id + ":" + pw);
return token;
}
function get_issues(token) {
var options = {
contentType: "application/json",
headers: {"Authorization": " Basic " + token}
};
var url = ISSUES_URL;
var response = UrlFetchApp.fetch(url, options);
return response;
}
function get_issue_data(response) {
var jobj = JSON.parse(response);
var len = jobj["issues"].length;
var data = [];
for (var i = 0; i < len; i++) {
var fields = jobj["issues"][i]["fields"]
var type = fields["issuetype"]["name"];
var status = fields["status"]["name"];
var description = fields["description"];
var summary = fields["summary"];
var custom1 = fields["customfield_10025"];
var combine = [type, status, description, summary, custom1];
data.push(combine);
}
return data;
}
|
意訳JIRAのapiをたたくBASE_URLを指定する
JQLで取得したい情報を絞る
BASE_URLとJQLをあわせる
この機能がやること
tokenを取得して
get_issues()に渡して
返ってきたデータをget_issue_data()に渡して
返ってきたデータをログに出す
この機能がやること
JIRAのログインに使っているemailと
パスワードを
base64Encodeでエンコードして
返す
この機能がやること
optionのオブジェクトを作る
contentType は "application/json"
headers は {"Authorization": " Basic " + 受け取ったtoken}
urlにISSUE_URL + keyを入れて
optionを付けてデータを取得して
返す
この機能がやること
受け取ったresponseをオブジェクトに変換して
その数を取得して
結果を入れる入れ物を用意して
issuesの数だけ以下を繰り返す
issuesをひとつずつ取得してそのfieldsの中の
issuetypeのnameを取得して(課題タイプ)
statusのnameを取得して(ステータス)
descriptionを取得して(説明)
summaryを取得して(タイトル)
customfield_10025の値を取得して
それらを配列に入れて
dataに追加して
返す
|
参考
Search for issues using jql
https://developer.atlassian.com/cloud/jira/platform/rest/#api-api-2-search-get
Changing maxResults parameter for Jira Cloud REST API
https://ja.confluence.atlassian.com/jirakb/changing-maxresults-parameter-for-jira-rest-api-779160706.html