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