JiraとGitHubを連携する方法|GitHub for Jiraで課題キー・スマートコミット設定
JiraとGitHubを連携すると、ブランチ・コミット・プルリクエストがJiraの課題(作業項目)に自動でひも付き、開発の進み具合をJira側から追えるようになる。連携の中心は、Atlassianが無料で提供する公式アプリ「GitHub for Jira」だ。この記事では、公式アプリの導入手順、コミットやPRを課題にリンクする課題キーとスマートコミットの書き方、公式アプリ・旧DVCS・サードパーティの使い分け、そして「連携したのに表示されない」ときの切り分けまでをまとめる。対象はJira CloudとGitHub(Cloud/Enterprise Server)の組み合わせを前提とする。
まとめ:GitHub for Jiraアプリ+課題キーが連携の基本形
JiraとGitHubの連携は、次の3点を押さえれば動く。
- 導入:Jira Cloudに公式アプリ「GitHub for Jira」(無料)を入れ、GitHub組織を接続してリポジトリを選ぶ。
- リンク:ブランチ名・コミットメッセージ・PRタイトルにJiraの課題キー(例
DEV-123)を書くと、Jira課題の開発パネルにブランチ・コミット・PR・ビルド・デプロイが表示される。 - 操作:スマートコミットを有効化すると、コミットメッセージから
#comment(コメント)・#time(工数記録)・#closeなどのステータス遷移をまとめて実行できる。
連携方式は公式アプリのほかに旧DVCSコネクターとサードパーティ製アプリがあるが、Jira Cloud+GitHubの新規構築では公式「GitHub for Jira」を選べばよい。旧DVCSコネクターはレガシー扱いで、これから採用する理由はない。
JiraとGitHubを連携してできること(開発パネルによる双方向トレーサビリティ)
連携の実体は、Jira課題とGitHubの開発活動を課題キーでひも付け、双方向にたどれるようにすることだ。課題キーを含むブランチ・コミット・PRを作ると、対応するJira課題に「開発」パネルが現れ、そこにブランチ、コミット、プルリクエスト、ビルド、デプロイの状況が集約される。レビュー中のPRやマージ済みかどうかを、Jiraのボードや課題画面から離れずに確認できる。
逆方向として、GitHubのissueやPRのコメントに角かっこ付きで課題キーを書く(例 [DEV-123])と、その文字列が対応するJira課題へのリンクに変換される。結果として「Jiraのどのタスクが、GitHubのどのコード変更で実装されたか」を、担当者・レビュアーの双方が同じ事実として追える。仕様変更の経緯を後から掘り起こす調査コストや、進捗報告のための手作業の転記が減るのが実利だ。
GitHub for Jiraアプリで連携する設定手順(Marketplace導入から接続まで)
Jira Cloud側の管理者権限と、GitHub組織のオーナー(またはアプリ承認権限)があれば、数分で接続できる。手順は次のとおり。
- Jiraの 設定 → アプリ → 新しいアプリを探す で「GitHub for Jira」を検索し、インストールする(Atlassian Marketplace提供・無料)。
- アプリの管理画面で 「GitHub組織を接続(Connect GitHub organization)」 を選ぶ。
- GitHubに遷移し、GitHubアプリのインストールを承認する。GitHub Enterprise Serverを使う場合は、接続先としてEnterpriseのホストを指定する。
- 連携するリポジトリを すべて か 特定のリポジトリのみ かで選択する。後から追加・変更もできる。
- 接続が完了すると、選んだリポジトリの開発情報がJiraに送られ始める。以降は課題キーを書くだけで開発パネルに反映される。
接続はGitHub App方式のため、個人のアクセストークンを配布・管理する必要がない。組織単位で権限を絞り、退職者のトークン失効漏れといった運用リスクを避けられる。
コミット・ブランチ・PRをJira課題にリンクする(課題キーとスマートコミット)
連携の設定が済んでも、開発情報が自動でJiraに現れるわけではない。ひも付けの鍵は、変更に必ず課題キーを載せることだ。まず基本の自動リンクを押さえ、そのうえでスマートコミットで操作まで自動化する。
課題キーで開発情報を自動表示する(ブランチ・コミット・PR・コメント)
課題キーは「プロジェクトキー+番号」(例 DEV-123)で、次のいずれかに含めればJira課題の開発パネルに反映される。
# ブランチ名の先頭に課題キーを入れる
git switch -c DEV-123-add-login
# コミットメッセージの先頭に課題キーを入れる
git commit -m "DEV-123 ログイン画面を実装"
プルリクエストは、タイトルか説明文に課題キーを含めればよい。GitHubのissueやPRのコメント本文では、[DEV-123] のように角かっこで囲むとJira課題へのリンクになる。運用のコツは、ブランチを切る時点でキーを付けること。ここで付け忘れると、後続のコミットもPRも紐付かず、開発パネルが空のままになる。
スマートコミットでコメント・工数・ステータスを操作する(#comment / #time / #transition)
スマートコミットを使うと、コミットメッセージからJira課題を操作できる。構文は <課題キー> #コマンド 引数 で、主なコマンドは3つ。
#comment:課題にコメントを追加する。#time:作業時間を記録する。1w 2d 4h 30m(週・日・時・分)の形式で書く。#closeや#resolveなどの遷移名:課題のステータスをワークフロー上の対応する状態へ移す。
DEV-123 #comment レビュー指摘を反映 #time 2h #close
この1行で、課題DEV-123にコメントを追加し、2時間の工数を記録し、ステータスを「完了」へ遷移させられる。複数の課題キーを並べて同時に操作することもできる。スマートコミットは連携済みリポジトリで既定で有効になっており、リポジトリ単位で有効・無効を切り替えられる(切り替え場所は連携方式で異なるため、無効化されている場合は公式ドキュメントで確認する)。GitHub連携で最もつまずきやすいのはメール設定だ。GitHub側で「メールアドレスを非公開にする(Keep my email addresses private)」が有効だと、Jiraがコミット作者を特定できずコマンドが無視される。連携に使うメールを公開設定にし、かつ対象操作の権限を持つJiraユーザーと一致させる必要がある。
連携方式の選び方(公式アプリ・DVCSコネクター・サードパーティの比較)
JiraとGitHubをつなぐ方式は主に3つある。結論から言えば、Jira Cloud+GitHubの新規連携は公式「GitHub for Jira」で確定してよい。旧DVCSコネクターを新規に選ぶ理由はなく、サードパーティは特定の要件がある場合の選択肢だ。
| 方式 | 提供元 | 費用 | 向いているケース |
|---|---|---|---|
| GitHub for Jira(公式アプリ) | Atlassian | 無料 | Jira Cloud+GitHubの標準的な連携。まず第一候補 |
| DVCSコネクター(旧方式) | Atlassian | 無料 | 過去の設定が残る場合のみ。新規採用は非推奨 |
| Git Integration for Jira 等 | サードパーティ | 有料 | 高度なスマートコミット制御や自己管理環境で細かい要件がある場合 |
公式アプリはGitHub App方式で権限管理が組織単位に閉じ、Enterprise Serverにも対応する。サードパーティ製(GitKrakenのGit Integration for Jiraなど)は、独自リポジトリのホスティングや、公式より細かいスマートコミットの制御が必要なチームで検討する価値がある。逆に、標準的な使い方でサードパーティを入れると、費用と管理対象を無駄に増やすだけになる。
連携が表示されないときの切り分け(課題キー・権限・アプリ設定)
「連携したのに開発パネルに何も出ない」「スマートコミットが効かない」ときは、次の順で確認すると原因を絞り込める。
- 課題キーの表記:ブランチ・コミット・PRに正しいキー(
DEV-123形式)が入っているか。プロジェクトキーの綴り違いや番号抜けは反映されない。 - 対象リポジトリ:接続時に「特定のリポジトリのみ」を選んでいて、そのリポジトリが対象外になっていないか。
- スマートコミットの有効化:対象リポジトリでスマートコミットが有効か(既定は有効。無効化されていないか)。無効だとコマンドは無視される。
- コミッターのメール設定:GitHub側で「メールアドレスを非公開にする」が有効になっていないか。非公開のままだとJiraが作者を特定できない。公開設定にし、権限を持つJiraユーザーのメールと一致させる。
- 反映のタイムラグ:pushや承認の直後は反映まで数十秒〜数分かかることがある。設定を疑う前に少し待って再読み込みする。
連携をチーム全体で機能させるには、ブランチ名に課題キーを含める命名規則をルール化するのが効く。個人任せにすると付け忘れが必ず出て、開発パネルが歯抜けになる。アジャイル開発でボード運用する場合の役割分担は、スクラム開発とは?進め方・役割・メリット・デメリットをわかりやすく解説も参考になる。
よくある質問
Q. JiraとGitHubの連携は無料でできますか。
A. できる。公式アプリ「GitHub for Jira」はAtlassian Marketplaceで無料提供されている。追加費用が発生するのは、サードパーティ製アプリを使う場合だけだ。
Q.「jira git 連携」と「jira github 連携」は違いますか。
A. 実質同じ設定で対応できる。GitHubはGitリポジトリのホスティングサービスなので、GitHubを使っているなら公式「GitHub for Jira」アプリで連携する。GitLabやBitbucketなど別のホスティングでは、それぞれ対応する連携方式が必要になる。
Q. GitHub Enterprise ServerでもJiraと連携できますか。
A. できる。公式アプリはGitHub CloudだけでなくEnterprise Serverにも対応しており、接続時に自社のEnterpriseホストを指定する。
Q. スマートコミットが反映されません。
A. まずGitHub側で「メールアドレスを非公開にする」が有効になっていないか確認する。非公開だとJiraが作者を特定できず、コマンドが無視される。公開設定にし、対象操作の権限を持つJiraユーザーのメールと一致させる。次に、対象リポジトリでスマートコミットが無効化されていないかを確認する。この2点が原因の大半を占める。
Q. 連携後に開発を自動化するにはどうしますか。
A. GitHub Actionsを併用すると、課題にひも付いたコミットからビルドやテスト、デプロイまで自動化でき、その結果もJiraの開発パネルに表示できる。設定はGitHub Actionsでビルド・自動テストを設定する方法|CI/CDワークフローの作り方で解説している。