第3章 GitHubの基本操作を実務レベルで覚える
想定学習時間: 8分
GitHubには、プロジェクトの「やること」「問題点」「改善案」「相談事項」などを整理するためのIssueという機能があります。Issueは直訳すると「問題」や「課題」といった意味ですが、GitHub上では単なるエラー報告にとどまらない、幅広い用途で活用されます。
「Issueはバグ報告専用ではないか」「自分一人で使うリポジトリには不要ではないか」と考える方もいるかもしれません。確かに、アプリケーションの不具合や画面の崩れといったバグ報告にもIssueは有効です。しかし、その使い道はそれだけではありません。
Issueは、これから実装したい機能、後で修正したい点、気になっている問題、改善したいアイデア、AIに依頼したい作業、人に確認してほしいことなど、リポジトリに関連するあらゆる作業や検討事項を記録し、管理するための場所です。
GitHubを実務で利用する場合、Issueは非常に重要な役割を果たします。なぜなら、プロジェクトの進行はコードを書くだけでは完結しないからです。
こうした「作業前の整理」や「作業中の検討事項の記録」が不可欠です。Issueは、これらの整理をGitHub上に集約するための機能です。頭の中だけで管理したり、チャットツールに流してしまったりすると、情報が散逸し、作業の抜け漏れや遅延につながる可能性があります。
Issueを作成する際は、タイトルと本文を記述します。
例えば、「スマホ表示の余白を調整する」というIssueであれば、本文に「スマホ表示でファーストビューの上下余白が大きすぎる。特にiPhoneサイズで見たとき、CTAボタンが画面下に隠れてしまう。余白を調整し、最初の画面内で見出しとボタンが見えるようにしたい」と記述できます。さらに完了条件として「iPhone幅で見出しとCTAボタンが画面内に収まっていること」「PC表示が大きく崩れていないこと」などを明記することで、作業内容がより明確になります。
Issueは単なるメモではなく、作業の目的と完了条件を整理し、共有するためのツールです。
AIを活用した開発において、IssueはAIへの具体的な作業指示書として非常に強力なツールとなります。
AIに「スマホ表示を直して」と漠然と依頼するだけでは、AIは意図を推測する必要があり、期待通りの結果が得られないことがあります。しかし、Issueに「スマホ表示でCTAボタンが画面下に隠れている。iPhone幅で見出しとCTAボタンが最初の画面に収まるようにしたい。PC表示は崩さない。CSSの変更箇所は最小限にする」と具体的に記述されていれば、AIへの指示が明確になり、より精度の高い出力を期待できます。
これまでは主に人間チームのタスク管理に使われてきたIssueですが、AI開発においては「AIに渡す仕事の単位」として活用できます。例えば、「問い合わせフォームを追加する」というIssueを作成し、入力項目、実装範囲(見た目のみで送信処理は不要)、完了条件などを詳細に記述します。このIssueがあれば、AIに「このIssueの内容に沿って実装してください」「このIssueをもとに作業手順を出してください」といった具体的な依頼が可能です。
AIに作業を依頼する際、チャットで思いついたまま指示を出すのではなく、Issueとして作業内容を整理してから依頼することで、AIの出力品質を高め、その後の確認作業も効率化できます。Issueは、AIへの曖昧な依頼を、具体的な「仕事の単位」に変えるための重要な場所です。
Issueは、AIと共に作成することも可能です。例えば、最初に「トップページをもっと見やすくしたい」といった漠然としたIssueを作成し、AIに「このIssueを実装しやすい形に整理してください。目的、作業内容、完了条件に分けてください」と依頼することで、AIがIssueの本文を具体的に整えてくれます。
Issueは、GitHubの他の機能と連携することで、より実務的なワークフローを構築できます。
この一連の流れにより、Issueは「作業を始める前の整理場所」、Branchは「作業部屋」、Commitは「作業の記録」、Pull Requestは「変更の確認依頼」、Mergeは「本体への取り込み」という役割が明確になり、プロジェクトの進捗が可視化されます。
Issueは、コードやファイルと同じ場所にタスクを置けるため、作業内容とリポジトリが一体となり、AIにリポジトリ全体を見せる際にも、やるべきことを一緒に伝えやすいという強みがあります。AIとの会話で出てきた改善案や、後でやるべき修正などもIssueとして記録することで、プロジェクトの散乱を防ぎ、効率的な開発をサポートします。