GoogleスプレッドシートでBacklog複数プロジェクトの課題情報を一括出力

みなさん、こんにちは。
デバイスソフトウェア開発部のnomuraです。

プロジェクト管理・タスク管理ツールは数多く存在しますが、当社では直感的で使いやすいBacklogを採用しています。
Backlog単体でもプロジェクトの進捗管理やスケジュール確認が可能ですが、日々のプロジェクト全体の状況を簡潔にサマリー表示するために、Googleスプレッドシートを活用しています。
この記事では、Googleスプレッドシートを使用してBacklogの課題情報を一括出力する方法についてご紹介いたします。
 

スプレッドシートとGASについて

データを整理し情報を見やすく管理するためには、「表計算ソフト」が便利です。
その1つにGoogleスプレッドシート(スプレッドシート)があります。
スプレッドシートは複数人での共有や同時編集が容易であり、またGoogle Apps Script(GAS)を使用してWeb上からデータを取得することも可能です。
他にも同様の「表計算ソフト」には、ExcelやVBAマクロがありますが、VBAマクロはその利便性からサイバー攻撃に利用されることがあり、それに伴う様々なセキュリティリスクを考慮する必要があります。
本記事では、スプレッドシートとGASを活用して、Backlogの課題情報を取得して一括出力する方法を紹介します。
 

Backlog APIについて

Backlog上の課題を取得するためには、GAS並びにBacklog APIを活用します。
Backlog APIは、ブラウザ上で行える操作の一部をAPIから実行可能とし、各プロジェクトの課題情報を一括取得するなどの操作も可能です。
具体的に、Backlogから課題一覧を取得する場合は、下記リンクにある「/api/v2/issues」APIを使用します。
このAPIを呼び出すことで、プロジェクトごとの課題情報を取得することができます。
https://developer.nulab.com/ja/docs/backlog/api/2/get-issue-list/#
 

Backlog APIの使用例

例として、下記リンクにある「/api/v2/projects/:projectIdOrKey」APIを使用して、プロジェクト情報を取得してみましょう。
https://developer.nulab.com/ja/docs/backlog/api/2/get-project/#
APIでプロジェクト情報を取得するには、Backlogのドメイン、プロジェクトキー、APIキーを指定する必要があります。
 

Backlog ドメイン

Backlogドメインは、ログイン後のURLから確認できます。
URLが下記の場合、ドメインは「test.backlog.com」となります。
「https://test.backlog.com/dashboard」
 

Backlog プロジェクトキー

Backlogプロジェクトキーは、ログイン後プロジェクトを開いた後のURLから確認できます。
URLが下記の場合、プロジェクトキーは「100_PROJECT」となります。
「https://test.backlog.com/projects/100_PROJECT
 

Backlog APIキー

Backlog APIキーは、ログイン後「個人設定 > API」と進み、登録ボタンをクリックすることで新しいAPIキーを取得できます。
下記画像の赤枠にある文字列がAPIキーとなります。
Backlogヘルプセンターにも詳しい説明が掲載されていますので、合わせてご参照ください。
https://support-ja.backlog.com/hc/ja/articles/360035641754-API%E3%81%AE%E8%A8%AD%E5%AE%9A
【注意】
APIキーはパスワードと同様、厳重に管理してください。
APIキーを他者に公開すると、その者がBacklogにアクセスし情報を取得・変更できる状態となります。

 

ブラウザでプロジェクト情報を取得

下記隅括弧を指定値に書き換えることで、プロジェクト情報を取得できます。
https://【ドメイン】/api/v2/projects/【プロジェクトキー】?apiKey=【APIキー】
下記画像で表示されている内容がプロジェクト情報です。
特に、指定したプロジェクトキー(projectKey)、およびプロジェクトID(id)が記載されていることを確認してください。
プロジェクトIDは、「/api/v2/issues」APIで課題一覧を取得する際に必要なパラメータ値となります。

 

GASでプロジェクト情報を取得

Googleにログインした後、下記リンクから新しいスプレッドシートを作成してください。
“+”アイコンをクリックすると、新しいスプレッドシートが作成されて開きます。
https://sheets.google.com/

ツールバーから「拡張機能 > App Script」を選択してください。

AppsScript画面が表示され、GASのコード入力画面が表示されます。
下記コードをコピー&ペーストなどで入力してください。
変数DOMAIN、API_KEY、PROJECT_KEYには、上記で確認したドメイン、APIキー、プロジェクトキーを記載してください。

上記コードの内容は「ブラウザでプロジェクト情報を取得」とほぼほぼ同様で、GASでHTTPリクエスト(Backlog API)を実行しプロジェクトIDを取得・ログ出力しています。
コード入力完了後、”実行”ボタンからGASを実行します。

上記GASを実行後、承認が必要な旨のポップアップが表示されます。”権利を確認”を押下し内容を確認します。
本GASはBacklogへアクセスしますので、下記のような「外部サービスへの接続」の承認画面が表示されます。
Backlogへアクセスして問題ない場合は、許可ボタンを押下してください。

特にコードに誤りなどがなければ、”実行ログ”画面にプロジェクトIDが表示されます。
 

GASで課題一覧を取得

次に、ソースコードを下記のように書き換えてください。
変数DOMAIN、API_KEY、PROJECT_KEYには、上記で確認したドメイン、APIキー、プロジェクトキーを記載してください。

上記GASを実行しますと、課題一覧を20件分取得し実行ログに表示します。

下記リンクの「/api/v2/issues」APIの”count”の項目を確認しますと、デフォルトで20件指定となっていることが分かります。
https://developer.nulab.com/ja/docs/backlog/api/2/get-issue-list/#

全課題を取得したい場合は、offsetやcountなどのパラメータを適切に指定する必要があります。
countで指定可能な課題数は100件になりますので、100件以上課題がある場合はHTTPリクエストを数回に分けoffsetも指定して実行する必要があります。
 

Backlog複数プロジェクトの課題情報を一括出力

上記まで理解できていれば、残りの作業はGASの基本や関連情報を調べながら、以下を黙々と実装することとなります。
・HTTPリクエストを数回に分けて実行し、全課題一覧を取得できるようにする
・取得した課題情報をスプレッドシート上に出力する
・複数のプロジェクトを指定できるようにする
・実行の進捗状況を表示する
など。

各々実装したGASが下記となります。
変数DOMAIN、API_KEYには、上記で確認したドメイン、APIキーを記載してください。
下記コードではプロジェクトキーを複数定義可能としていますので、変数PROJECT_KEYSにキーを記載してください。

 

おわりに

以上、Googleスプレッドシートを用いてBacklogの課題情報を一括出力する方法についてご紹介いたしました。
課題を出力後は、スプレッドシートにサマリー用のシートを作成することで、日々のプロジェクト全体の状況などを把握することができます。
プロジェクト管理・タスク管理ツールやGASなど、日々進化していますので、これらのツールを活用し、業務の効率向上にお役立ていただければ幸いです。
それでは、またお会いしましょう。