RedashとJiraを連携する
こんにちは。
弊社では課題管理にJIRAを、メトリクスの可視化にRedashを使っています。Jiraにもダッシュボード機能はありますが、Redashでまとめて見れるよう連携してみることにしたので、その方法を紹介します。
やりたいこと
Jiraにある課題(チケット)の一覧を取得し、Redashで自由に加工・分析をできるようにしたい。
一覧の取得方法は、最も簡単で、非エンジニアでもメンテナンスがしやすい方法を考えてみます。
Jiraの課題をスプレッドシートに出力し、スプレッドシートをRedashで読み込む
選択肢は以下の3つがありました。
結論としては、今回は3を選択しました。その理由は、「やりたかったこと」が最も簡単に早くできるから」です。1と2を選択しなかった理由は最後に書きます。
RedashのDatasourceからJiraを選択して直接連携する。
JiraのAPIをGASで実行し、スプレッドシートにExportしたものをRedashで読み込む。
スプレッドシートのアドオンを使用して、スプレッドシートにExportしたものをRedashで読み込む。
Jiraの課題をスプレッドシートに出力する
めちゃくちゃ簡単です。
スプレッドシートのアドオンに「Jira Cloud for Sheets」というものがあるのでインストールします。(このアドオンを見つけるまで時間がかかったのが残念でした)
インストールすると、スプレッドシートに設定画面が表示されるので、メニューから「Get issues from Jira」を選択します。
設定する項目は、ISSUES、FIELDS、SCHEDULEの3つだけです。
ISSUES
今回は、プロジェクト内のすべてのチケットを取得したいため、JQL query欄にプロジェクト名を指定するJQLのみを記述します。この部分は取得したい内容に応じてJQLを記載します。
project = planning
Max issuesは実行時に取得するチケットの数となります。デフォルト値が5000となっていますが、プロジェクトのチケット数に応じて上限を設定します。私は10000にました。
FIELDS
スプレッドシートに取得する項目を指定します。EDITボタンを押すと取得可能な項目名が表示されます。JIRA内のすべてのプロジェクトで使用されているFIELDSが表示されていますが、「Show fields for」でプロジェクトを指定すれば、指定したプロジェクトで使用されているFIELDSのみを表示することができます。
SCHEDULE
スプレッドシートを自動更新する頻度を設定します。私は毎日AM2:00~2:59に自動実行するよう設定しています。(厳密な指定はできないようです)
設定は以上です。これで、指定したプロジェクトのチケットのうち、指定した項目のみが、指定した頻度で、スプレッドシートに出力できるようになりました。
スプレッドシートをRedashで読み込む
Redashで新しいQueryを作成し、データソースをspreadsheetに設定します。
Queryはスプレッドシートの内容をすべて読み込ませたいので以下のように記述し、実行します。
(Google Spreadsheet ID)|(Sheet Number)
※Sheet Numberはスプレッドシートの一番左側のシートが「0」となります。
次にこのクエリを保存して、自動更新の設定をします。
私は、スプレッドシートの更新を毎日AM2:00~2:59に自動実行するようにしたので、このクエリの自動更新はAM3:15に設定しました。
以上の設定でJiraの課題一覧がRedashに連携されたので、あとはガンガンSQLを書いて分析していこうと思います。
RedashのDatasourceにspreadsheetがない場合は、先にその設定が必要となります。長くなってしまうので今回は割愛しますが、とても分かりやすい記事がありましたのでご紹介します。
今回、他の方法を選択しなかった理由
"1. RedashのDatasourceからJIRAを選択して直接連携する。"
はじめは、この方法が最もカジュアルだと思い検討しました。設定項目はたったこれだけです。
ところが、それぞれの項目を入力してテスト接続したところ、エラーとなりました。
要は、ユーザーのID/PWでの認証はダメでAPIトークンを使ってください。ということです。設定すればいいのですが、今回は別の方法のほうが楽だったので選択しませんでした。
"2. JiraのAPIをGASで実行し、スプレッドシートにExportしたものをRedashで読み込む。"
Jiraは多くのAPIを用意してくれています。これを使えばいろいろなことができますが、GASを書く必要があること、APIの知識が必要なことから「非エンジニアでもメンテナンスがしやすい」という観点で今回は選択しませんでした。
いずれも15分くらいで簡単にできるものではないので今回は選択しませんでしたが、今後やりたいことが増えた場合は、1か2の方法を選択するかもしれません。
APIなんて言われてもわかりにくいよ、という方のお役に立てば幸いです。
この記事が気に入ったらサポートをしてみませんか?