Jiraで管理している課題をGoogleスプレッドシートに取り込みたいと考えたことはありませんか。手動でコピー&ペーストするのは非効率で、更新のたびに手間がかかります。JiraのREST APIとPersonal Access Token(PAT)を使えば、スプレッドシートから直接課題データを取得できます。この記事では、Apps Scriptを使ってJira Issuesをインポートする具体的な手順を解説します。
【要点】Jira IssuesをスプレッドシートにインポートするにはREST APIとPATを組み合わせます
- JiraのREST API: UrlFetchAppでJiraのエンドポイントにリクエストを送信し、課題データをJSON形式で取得します。
- Personal Access Token (PAT): 基本認証の代わりにPATを使うことで、セキュリティを高めた認証を行います。
- Apps Script: Googleスプレッドシート内でスクリプトを実行し、取得したデータをシートに展開します。
ADVERTISEMENT
目次
Jira REST APIとPAT認証の概要
JiraのREST APIを呼び出すには、認証情報が必要です。従来はBasic認証(ユーザー名+パスワード)を使う方法もありましたが、2020年以降Jiraはパスワード認証の廃止を進めており、現在はAPIトークンまたはPATの使用が推奨されています。PATはユーザーごとに発行でき、スコープ(権限)を制限できるため安全性が高いです。
GoogleスプレッドシートからJira APIを呼び出すには、組み込みのApps Scriptを使用します。Apps Scriptには UrlFetchApp というHTTPリクエスト用のクラスが用意されており、これを使ってJiraのエンドポイントにアクセスします。
この記事では、Jira Cloudを前提とします。Jira Server(オンプレミス)の場合はエンドポイントや認証方法が異なる場合があります。
Jira Issuesをインポートする手順
以下の手順は、Jira Cloudのプロジェクトから未完了の課題を取得し、スプレッドシートに書き込む例です。事前にJiraのPATを発行しておいてください。
1. JiraでPATを発行する
- Jiraのアカウント設定を開く
Jiraにログインし、右上のプロフィールアイコンから「アカウント設定」を選択します。 - 「セキュリティ」タブをクリックする
左側のメニューから「セキュリティ」を選び、「APIトークンの作成と管理」をクリックします。 - 「APIトークンを作成」をクリックする
トークンにラベルを付け(例:GoogleSheets)、「作成」を押します。表示されたトークンをコピーして安全な場所に保存します。
2. GoogleスプレッドシートでApps Scriptを開く
- スプレッドシートを新規作成する
Googleドライブから新規スプレッドシートを作成します。 - 拡張機能メニューからApps Scriptを開く
メニューバーの「拡張機能」→「Apps Script」をクリックします。
3. スクリプトを記述する
スクリプトエディタが開いたら、以下のコードを貼り付けます。Jiraのドメイン、プロジェクトキー、PATは実際の値に置き換えてください。
function importJiraIssues() {
var sheet = SpreadsheetApp.getActiveSheet();
var jiraDomain = 'https://your-domain.atlassian.net';
var projectKey = 'YOUR_PROJECT_KEY';
var pat = 'YOUR_PAT';
var url = jiraDomain + '/rest/api/3/search?jql=project=' + projectKey + '+AND+status!=Done';
var options = {
'method': 'get',
'headers': {
'Authorization': 'Bearer ' + pat
},
'muteHttpExceptions': true
};
var response = UrlFetchApp.fetch(url, options);
var json = JSON.parse(response.getContentText());
var issues = json.issues;
// ヘッダー行
var headers = ['Key', 'Summary', 'Status', 'Assignee', 'Created'];
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
// データ行
var data = [];
for (var i = 0; i < issues.length; i++) {
var issue = issues[i];
var row = [
issue.key,
issue.fields.summary,
issue.fields.status.name,
issue.fields.assignee ? issue.fields.assignee.displayName : '',
issue.fields.created
];
data.push(row);
}
if (data.length > 0) {
sheet.getRange(2, 1, data.length, headers.length).setValues(data);
}
}
4. スクリプトを実行する
- 関数を選択して実行する
スクリプトエディタ上部の関数ドロップダウンからimportJiraIssuesを選び、実行ボタン(▶)をクリックします。 - 承認を求めるダイアログに従う
初回実行時には、外部サービスへのアクセス許可を求められます。「権限を確認」→「許可」をクリックして承認します。 - シートにデータが表示されるのを確認する
実行が完了すると、アクティブなシートに課題の一覧が表示されます。
インポート時の注意点とトラブル対策
PATが間違っているか、有効期限が切れている可能性があります。PATの値を再確認し、必要なら再発行してください。また、Authorizationヘッダーの形式が「Bearer + トークン」になっているか確認してください。
余計な列が表示されないようにする
取得するフィールドを制限したい場合は、JQLに fields パラメータを追加します。例えば fields=summary,status,assignee と指定すると、それらのフィールドだけ取得できます。
レート制限に注意する
Jira CloudにはAPI呼び出しのレート制限があります。多くの課題を一度に取得する場合は、ページネーション( maxResults と startAt )を利用して分割取得することを検討してください。
スクリプトの実行時間が長い場合
Apps Scriptの実行時間は6分に制限されています。大量データを扱う場合は、複数回に分けて実行するか、 Utilities.sleep() で間隔を空けるなどの工夫が必要です。
ADVERTISEMENT
Jira認証方法の比較: Basic認証 vs PAT
| 項目 | Basic認証 | PAT認証 |
|---|---|---|
| 認証情報 | ユーザー名+パスワード | 発行されたトークン文字列 |
| セキュリティ | パスワード漏洩のリスク大 | スコープ制限可能・漏洩時も再発行で対処 |
| Jira Cloud対応 | 非推奨(廃止予定) | 推奨(2024年現在) |
| スクリプト内での実装 | Authorization: Basic base64(ユーザー名:パスワード) | Authorization: Bearer PAT |
まとめ
JiraとGoogleスプレッドシートをREST APIで連携することで、課題データを自動的にスプレッドシートに取り込めるようになります。この方法を使えば、最新の課題一覧をいつでもシート上で確認でき、手作業による転記ミスを防げます。スクリプトを応用すれば、特定のJQLでフィルタリングしたり、更新日の差分だけ取得するなど、より高度な運用も可能です。ぜひ実際のプロジェクトで試してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
