Webシステム開発

GitHub Issues 使い方完全ガイド|バグ・タスク管理を効率化する実践手順

目次

GitHub Issuesとは?プロジェクト管理の基本ツール

「あのバグ、誰が対応するんだっけ?」「タスクの進捗が見えない」――プロジェクトを進める中で、こうした悩みを抱えていませんか?

GitHub Issuesは、バグ報告からタスク管理、機能要望まで、チームの「やるべきこと」を一元管理できるプロジェクト管理ツールです。GitHubのリポジトリに標準で備わっており、追加料金なしで今日から使い始められます。

この記事では、GitHub Issuesの基本的な使い方から、ラベルやマイルストーンを活用した実践的な管理手法まで、中小企業の開発チームがすぐに活用できる情報を解説します。

Issueの役割と管理できる情報

Issueとは、プロジェクトで対応すべきあらゆる事項を記録する単位です。具体的には以下のような情報を管理します:

  • バグ(Bug):システムの不具合や期待通りに動作しない問題。再現手順やエラーメッセージを含めて報告します。
  • タスク(Task):機能実装やテスト作業など、明確な作業単位として定義します。
  • 機能リクエスト(Enhancement):新機能の追加や既存機能の改善提案です。

各Issueには固有の番号(#1、#2…)が自動で割り振られ、コメント機能でチームメンバーと議論できます。「Open(未対応)」「Closed(完了)」のステータス管理により、誰が何をいつまでに対応するのかが可視化されます。

GitHub Issuesを使うメリット

情報の一元管理
バグ報告がメール、タスクがExcel、議論がチャット…という情報の散在を解消できます。すべてをGitHub上で管理することで、「あの情報どこだっけ?」という時間のロスがなくなります。

属人化の防止
誰がどのタスクを担当しているか、どんな議論があったかがすべて記録されます。担当者が不在でも、Issueを見れば経緯や現状が把握できます。

コードとの連携
コミットメッセージに「#12」とIssue番号を記載すれば、どのコード変更がどの課題に対応したものか一目瞭然です。プルリクエストと連携させれば、マージ時に自動的にIssueがクローズされます。

無料で始められる
パブリック・プライベートリポジトリともに無料プランで十分な機能が使えます。すでにGitHubを使っているなら、追加投資ゼロで始められます。


Issueの作成方法|基本操作をステップで理解する

新規作成の手順

GitHub IssuesでIssueを作成する基本的な流れは以下の通りです。

  1. リポジトリの「Issues」タブをクリック
  2. 「New issue」ボタンをクリック
  3. タイトルと説明を入力
  4. オプション設定(担当者、ラベル、マイルストーン)
  5. 「Submit new issue」をクリック

作成されたIssueは即座にチームメンバーに共有され、通知設定によってはメールやSlack連携で通知されます。

タイトルと説明文の書き方

Issueの品質は、タイトルと説明文の明確さで決まります。後から見返した時に、誰が読んでも内容が理解できるよう工夫しましょう。

タイトルのポイント

  • 簡潔かつ具体的に(50文字以内を目安)
  • 動詞を含めてアクションを明確に

良い例:「ユーザー登録時のメールアドレス検証機能を追加」
悪い例:「バグ」「確認してください」

説明文のポイント

バグの場合は以下の情報を含めます:

## 現象
ログイン画面でパスワードを入力すると、画面が真っ白になる

## 再現手順
1. ログイン画面を開く
2. メールアドレスに「test@example.com」を入力
3. パスワードに「test1234」を入力
4. ログインボタンをクリック

## 期待される動作
ダッシュボード画面に遷移する

## 実際の動作
画面が真っ白になり、エラーメッセージも表示されない

## 環境
- ブラウザ:Chrome 120
- OS:Windows 11

タスクの場合は、目的・実装内容・受け入れ条件を明記します。Markdown記法を使えば、見出しやリスト、コードブロックで読みやすく整形できます。

担当者とテンプレートの活用

担当者(Assignees)の設定
Issue作成画面の右サイドバーから担当者を選択します。担当者未設定のIssueは放置されがちなので、作成時に必ず設定しましょう。複数人アサインは責任の所在が曖昧になるため、メイン担当者を1名決めるのが基本です。

テンプレートで入力を効率化
Issueテンプレートを設定すれば、記入項目があらかじめ用意された状態でIssueを作成できます。リポジトリの「Settings」→「Features」→「Set up templates」から、バグ報告や機能リクエストなどのテンプレートを作成できます。


ラベル(Labels)でIssueを分類・整理する

Issueが増えてくると、「どれが優先度高いのか」「バグとタスクが混在して見づらい」といった課題が出てきます。そこで活用するのがラベル機能です。

ラベルの役割と基本的な使い分け

ラベルは、Issueに付ける色付きのタグです。種類、優先度、ステータスなど、さまざまな軸で分類できます。

GitHubのリポジトリには、デフォルトで以下のラベルが用意されています:

  • bug(赤):バグや不具合の報告
  • enhancement(青):新機能や機能改善の提案
  • documentation(水色):ドキュメントの追加・修正
  • question(ピンク):質問や議論が必要な事項

ラベルを付けることで、Issue一覧を見た時に視覚的に情報が整理され、必要なIssueを素早く見つけられます。

カスタムラベルの作成と運用

デフォルトのラベルだけでは不十分な場合、カスタムラベルを作成できます。リポジトリの「Issues」タブから「Labels」→「New label」で、ラベル名・説明・色を設定します。

運用例:優先度ラベル

priority: high(赤)
priority: medium(オレンジ)
priority: low(緑)

運用例:ステータスラベル

status: in progress(黄色)
status: review needed(青)
status: blocked(グレー)

ラベル設計のコツ

  • 10〜15種類程度に抑える
  • 「priority:」「status:」のようにプレフィックスを付けて命名規則を統一
  • 色を意味と連動させる(赤=緊急、緑=低優先など)

フィルタリングで効率的に管理

ラベルの真価は、フィルタリング機能と組み合わせた時に発揮されます。Issue一覧画面の検索ボックスに以下のように入力します:

label:bug
→ bugラベルが付いたIssueのみ表示

label:bug label:"priority: high"
→ bugかつhigh priorityのIssueのみ表示

assignee:@me label:"status: review needed"
→ 自分が担当していて、レビュー待ちのIssueのみ表示

頻繁に使う検索条件は、ブラウザのブックマークに保存しておくと便利です。URLに検索条件が含まれているため、ワンクリックで目的のIssue一覧を表示できます。


マイルストーン(Milestones)で進捗を可視化する

マイルストーンは、複数のIssueをグループ化する目標単位です。プロジェクトの節目やリリースバージョンと紐付けて使います。

マイルストーンの設定方法と活用

マイルストーンの用途

  • バージョンリリース(v1.0、v2.0など)
  • 開発フェーズ(α版、β版、正式版)
  • 期間区切り(2024年Q1、第1スプリントなど)

リポジトリの「Issues」タブから「Milestones」→「New milestone」をクリックし、タイトル・期限・説明を入力します。Issue作成時または編集時に、右サイドバーの「Milestone」から選択して紐付けます。

進捗率の自動計算

マイルストーン画面では、進捗率が自動計算されて表示されます。

表示される情報:

  • Open(未完了)のIssue数
  • Closed(完了)のIssue数
  • 進捗率(パーセンテージ)
  • 期限までの残り日数

Issueをクローズするだけで自動的に進捗率が更新されるため、リアルタイムで最新状況を反映できます。Excelやスプレッドシートと違い、更新忘れがありません。

小規模チームでの活用事例

事例1:月次リリースを行う3名の開発チーム
毎月のマイルストーンを作成し、その月に対応する機能追加やバグ修正のIssueを紐付けます。月末に進捗を確認し、未完了のIssueは翌月に繰り越すかどうかを判断します。

事例2:社内システムの段階的改善
フェーズごとにマイルストーンを設定:

  • フェーズ1:基本機能の実装
  • フェーズ2:ユーザビリティ改善
  • フェーズ3:レポート機能追加

経営層への報告時にも、「フェーズ1は80%完了しています」と視覚的に示せます。


コミットやプルリクエストとIssueを連携させる

GitHub Issuesの真価は、コードの変更履歴とタスクを自動的に紐付けられる点にあります。

コミットメッセージでIssueを参照

コミット時にIssue番号を含めるだけで、GitHubが自動的にリンクを作成します。

git commit -m "ログイン画面のレイアウト崩れを修正 #45"

このコミットをプッシュすると、Issue #45のタイムラインに「このコミットで対応されました」という記録が自動的に追加されます。

プルリクエストで自動クローズ

プルリクエストの説明文に以下のキーワードとIssue番号を書くと、マージ時に自動的にIssueがクローズされます。

ログイン機能のバグを修正しました。
fixes #67

自動クローズのキーワード

  • closes #123
  • fixes #123
  • resolves #123

複数のIssueを一度にクローズすることも可能です。

連携のメリット

作業履歴が自動で残る
誰がどのコードでバグを修正したか一目瞭然になります。本番環境で問題が発生した場合、関連するIssueを見れば、どういう経緯で実装されたか、誰が担当したか、どのコミットで変更されたかがすべて確認できます。

属人化を防ぐ
担当者が退職や異動で不在になっても、Issue履歴を見れば過去の議論や実装理由がわかり、新しい担当者がスムーズに引き継げます。

リリースノートの作成が簡単
特定の期間にクローズされたIssueを一覧表示すれば、リリース内容をすぐに把握できます。


Issueのステータス管理とクローズのタイミング

Issueには「Open(未完了)」と「Closed(完了)」の2つのステータスがあります。適切に管理することで、チームの作業状況が常に可視化されます。

OpenとClosedの使い分け

Openにするタイミング

  • 新しいバグを発見したとき
  • 新機能の実装タスクを作成したとき
  • 調査が必要な問題が発生したとき

Closedにするタイミング
チーム内で「完了」の定義を統一することが重要です。

  • コードを書いたらクローズ?
  • レビューが通ったらクローズ?
  • 本番環境にデプロイしたらクローズ?

小規模チームなら「本番環境にリリースしたらクローズ」というシンプルなルールで十分です。

クローズ方法と再オープン

手動クローズ
Issue画面の下部にある「Close issue」ボタンをクリックします。クローズ時にコメントを残すことで、「なぜクローズしたのか」が記録されます。

自動クローズ
プルリクエストの説明文に「closes #123」と書くと、マージ時に自動的にクローズされます。

再オープンが必要なケース

  • バグが再発した場合
  • 対応が不完全だった場合
  • 対応不要と判断したが、後で必要になった場合

クローズされたIssueを開き、「Reopen issue」ボタンをクリックして、再オープンの理由をコメントで追記します。

長期間Openのまま放置されるIssueへの対処

月に1回、または四半期に1回、Open Issueを見直す時間を設けましょう。

対処パターン

  1. 対応不要になった場合:理由をコメントしてクローズ
  2. 優先度が低く当面対応しない場合:将来対応ラベルを付ける
  3. 情報が不足している場合:情報不足ラベルを付け、追加情報を依頼

GitHub Issuesの検索機能を使えば、長期間OpenのままのIssueを簡単に抽出できます。

is:open created:<2024-01-01

中小企業がGitHub Issuesを活用するためのヒント

GitHub Issuesは、大規模な開発プロジェクトだけのツールではありません。3名程度の小規模チームでも十分に効果を発揮します。重要なのは、「完璧な運用」を目指すのではなく、チームにとって”ちょうどいい”使い方を見つけることです。

ITに詳しくないチームでも始められる理由

必要なのは基本的なPC操作だけ

  • Webブラウザが使える
  • 文章を入力できる
  • ボタンをクリックできる

これだけで、Issueの作成・編集・コメント・クローズといった基本操作はすべて行えます。プログラミング知識は一切不要です。

段階的に機能を増やせる
最初はIssueを作成してコメントでやり取りし、完了したらクローズするだけでOK。慣れてきたらラベルで分類、さらに活用するならマイルストーンやプロジェクトボードを追加していけば、無理なく定着します。

Excel管理からの移行ポイント

移行のステップ

  1. 既存のタスクをIssueとして登録:Excelに記載されている未完了のタスクを、一つずつIssueとして作成します。
  2. 並行運用期間を設ける:1〜2週間はExcelとGitHub Issuesを並行運用し、チームメンバーが操作に慣れる期間を確保します。
  3. Excelを参照用にアーカイブ:チーム全員が問題なく使えるようになったら、Excelは「過去の記録」として保存し、日常的な更新は停止します。

移行時のポイント

  • 完璧を目指さない:完了済みのタスクは移行せず、未完了分だけでOK
  • シンプルに始める:最初はラベルやマイルストーンを使わず、タイトルと説明文だけでもOK
  • チーム全員で決める:一人が勝手に移行するのではなく、チームで合意してから進める

運用ルールをシンプルに保つコツ

最小限のルールから始める
最初に決めるべきルールは、以下の3つだけで十分です:

  1. どんなときにIssueを作るか(例:バグを見つけたとき、新機能を実装するとき)
  2. いつクローズするか(例:本番環境にリリースしたとき)
  3. 誰が確認するか(例:毎週月曜の朝に、チーム全員でIssue一覧を確認)

ラベルは5〜10種類まで
ラベルが多すぎると、「どれを選べばいいか」迷います。小規模チームにはバグ機能追加改善質問優先度:高の5種類程度で十分です。

定期的にルールを見直す
3ヶ月に1回、ルールを見直しましょう。使われていないラベルは削除し、形骸化したルールは廃止します。「守れるルール」だけを残すのが、長続きの秘訣です。

「ちょうどいい仕組み」を作るために

目的を明確にする
「なぜGitHub Issuesを導入するのか」をチーム全員で共有します。タスクの抜け漏れを防ぎたい、誰が何をしているか見える化したい、過去の対応履歴を残したい――目的が明確なら、どの機能を使うべきかも自然と決まります。

チーム全員で決める
ツールや運用ルールを一人で勝手に決めないことが重要です。チーム全員でツールを試し、使いやすさを話し合い、運用ルールを一緒に決めましょう。「押し付けられた」と感じると、定着しません。

小さく始めて、段階的に広げる
最初から完璧を目指さず、小さく始めて徐々に拡大します。最初は1つのプロジェクトだけで試し、うまくいったら他のプロジェクトにも展開します。失敗したら、やり方を見直せばOKです。

GitHub Issuesは、チームの「やるべきこと」を可視化し、情報の散在を防ぎ、属人化を解消する強力なツールです。無料で今日から始められるので、まずは小さく試してみることをおすすめします。

師田 賢人

一橋大学商学部を卒業後、Accenture Japanに新卒入社し、ITコンサルタントとして大手企業のシステム導入・業務改善プロジェクトに従事。その後、Webエンジニアとしての実務経験を積み、2016年に独立。 独立後は、企業向けのWebシステム開発・業務効率化ツール構築を中心に、80件以上のプロジェクトを担当し、100社以上の企業と取引実績を持つ。技術領域ではブロックチェーン分野にも精通し、200名以上の専門家への取材・記事執筆を経験。 2023年にHarmonic Society株式会社を設立し、現在はAI駆動のWebサイト制作・業務システム開発・自動化ソリューションを提供。 中小企業から教育機関まで、幅広いクライアントのDXを支援している。

ちょっとした業務の悩みも、気軽にご相談ください。

コメントを残す