ai.ros Asset Store

← GitHub マスター講座 | Lesson 20 / 25
20

4-5 Copilot連携でコードレビュー・修正を進める

第4章 AI開発・Web制作でGitHubを使う

想定学習時間: 13分

GitHub Copilotの進化と役割

GitHub Copilotは、単なるコード補完ツールから進化し、GitHub上での開発フロー全体を支援するAIへと変化しています。コードの説明、修正案の提示、Pull Request(PR)の要約、レビュー、Issueを起点とした作業支援など、多岐にわたる場面であなたをサポートします。

Copilotは「コードを書くAI」から、より広範な「GitHub上の作業を手伝うAI」として活用できると理解すると良いでしょう。

Copilot活用の基本原則:AIは補助者、人間は判断者

Copilotは開発作業を大幅に効率化する強力なツールですが、魔法の開発者ではありません。Copilotが提案するコードや修正案、レビュー結果はあくまで補助的なものであり、最終的な判断と責任は常に人間であるあなたにあります。

これらの作業はCopilotによって大いに助けられますが、Copilotの提案が常に正しいとは限りません。提案されたコードがそのまま本番環境で使えるとは限らず、レビューがすべての問題を見つけるわけでもありません。AIはあなたの補助者であり、あなたは判断者です。GitHubは、この人間とAIのやり取りを管理する場所として機能します。

Copilot連携によるコードレビューの効率化

Copilotが特に役立つ場面の一つがコードレビューです。コードレビューでは、変更されたコードが意図通りに機能するか、不要な変更がないか、バグやセキュリティ上の問題がないか、可読性はどうかなどを確認します。

人間だけでレビューを行う場合、専門知識が必要となり、特に初心者にとっては差分を見ても何を確認すべきか迷うことがあります。そこでCopilotのレビュー機能が役立ちます。

これにより、初心者でもレビューの入り口に立ちやすくなります。

たとえば、あなたがAIに問い合わせフォームを追加させたPull Requestを作成したとします。その際、Copilotに以下のように依頼できます。

「このPull Requestの変更内容を確認して」
「不要な変更が入っていないか見て」
「初心者にも分かるように、この差分を説明して」
「フォーム追加に伴う注意点を教えて」
「セキュリティ上気になる点があれば指摘して」

Copilotがすべてを見抜けるわけではありませんが、何も確認しないよりはるかに安全です。特に、あるAIが生成したコードを別のAI(例: Copilot)にレビューさせるという流れは、実務でも有効な活用方法です。AI同士の役割を分担し、多角的な視点からコードを検証することで、品質向上に繋がります。

Pull Requestの説明文作成を支援

Pull Requestを作成する際、変更内容、変更理由、確認してほしい点、未実装部分、注意点などを記述することは、レビューをスムーズに進める上で非常に重要です。しかし、この説明文の作成を面倒に感じ、空欄のままPRを作成してしまうケースも少なくありません。

Copilotは、変更されたファイルやコミット履歴に基づいて、Pull Requestの説明文のたたき台を作成するのを手伝ってくれます。

例えば、以下のような説明文の作成を支援できます。

変更内容
- トップページに問い合わせフォームを追加
- フォーム用のCSSを追加
- READMEに未実装項目を追記

確認してほしいこと
- スマホ表示でフォームが崩れていないか
- 入力欄の文言が分かりやすいか
- 送信処理が未実装であることがREADMEに明記されているか

注意点
- 今回は見た目のみの実装
- 実際の送信処理は次のIssueで対応予定

このような整理された説明文があれば、レビュー担当者は変更内容を素早く理解し、効率的に確認を進められます。ただし、Copilotが作成した説明文も、必ずあなたが差分と照らし合わせて確認し、必要に応じて修正や追記を行うことが重要です。AIが誤った要約をしたり、重要な注意点を見落としたりする可能性も考慮しましょう。

Issueとの連携による作業支援

Issueは、タスク、問題、改善案などを記録する場所です。CopilotにIssueの内容を読ませることで、具体的な作業案や実装方針を検討させることも可能です。

例えば、以下のようなIssueがあったとします。

タイトル
スマホ表示でCTAボタンが下に落ちる問題を修正する

本文
iPhone幅で表示したとき、ファーストビュー内にCTAボタンが収まらない。
見出し、説明文、CTAボタンが最初の画面内に入るように余白と文字サイズを調整したい。
PC表示は大きく崩さないこと。

完了条件
- スマホ幅でCTAボタンが表示される
- PC表示が崩れない
- CSSの変更箇所が確認できる

このIssueに対して、Copilotに以下のように依頼できます。

「このIssueの完了条件に沿って修正案を出して」
「このIssueを実装するための作業手順を考えて」
「このIssueの内容をもとにbranch名を提案して」
「このIssueを実装したPull Requestの説明文を作って」

Issueが具体的であればあるほど、Copilotの提案も具体的で実用的なものになります。「デザインをよくする」といった曖昧なIssueでは、Copilotも具体的な提案が難しくなります。目的と完了条件を明確に記述したIssueを作成し、それを基にCopilotに作業を依頼する流れが効果的です。

コードの説明と理解の補助

AIが生成したコードや、既存の複雑なコードを理解するのに苦労することがあります。Copilotは、そのようなコードの説明を求める際にも役立ちます。

これにより、コードを読む力を補助し、理解を深めることができます。

「この関数を初心者にも分かるように説明して」
「このCSSの役割を教えて」
「この変更でどんな影響がありそうか説明して」
「このファイルがプロジェクト内で何をしているか教えて」

ただし、Copilotの説明も「理解の入口」として活用し、最終的には実際の動作、差分、関連ドキュメント(README、Issueなど)と照らし合わせて確認することが重要です。AIの説明は分かりやすい反面、文脈を誤解したり、一部が不正確であったりする可能性も考慮しましょう。

レビューと修正の連携による開発サイクルの加速

Copilot連携の大きな利点の一つは、レビューと修正のサイクルを高速化できる点です。コードレビューで問題点が見つかった際、その場でCopilotに修正案を出してもらい、必要であればすぐに適用し、再確認するという流れがスムーズに行えます。

例えば、CopilotがPull Requestで以下のような指摘をしたとします。

これらの指摘に対して、Copilotは具体的な修正案を提示できる場合があります。あなたは提示された修正案を確認し、プロジェクトの方針や今回の目的に合致するかを判断した上で採用を検討します。

ここでも、無条件に修正案を採用しないことが重要です。提案された修正が、コードとしては正しくても、プロジェクトの特定の要件に合わない場合や、予期せぬ副作用を引き起こす可能性も考慮し、必ず適用前に確認し、適用後も動作検証を行うようにしましょう。

AI時代のGitHub開発フロー

Copilotを活用することで開発スピードは向上しますが、その分、確認の仕組みがより重要になります。GitHubのコミット、ブランチ、Pull Request、Issueといった機能は、この確認の仕組みを提供します。

AIに直接コードを書かせ、そのままメインブランチにマージするような運用は危険です。以下のような安全な開発フローを実践することをおすすめします。

  1. Issueで作業内容を整理する:何をするか、完了条件は何かを明確にします。
  2. ブランチで作業場所を分ける:メインブランチに直接影響を与えないようにします。
  3. Copilotにコード作成や修正を手伝わせる:AIの力を借りて効率的に作業を進めます。
  4. コミットで変更を記録する:変更履歴を明確に残します。
  5. Pull Requestで差分を確認する:変更内容を客観的に見られるようにします。
  6. Copilotにレビューや要約をさせる:AIの視点から問題点や改善点を洗い出します。
  7. 人間が最終判断してマージする:AIの提案を吟味し、最終的な品質保証を行います。

この流れを遵守することで、AIとGitHubを組み合わせた開発を安全かつ効率的に進めることができます。

Copilot利用時の注意点

AIに見せる情報の範囲

リポジトリには、公開してよいコードだけでなく、機密性の高い情報が含まれる場合があります。プロジェクトによっては、AIに見せてよい情報とそうでない情報を区別する必要があります。

これらを含む場合、Copilotやその他のAIツールの利用には細心の注意が必要です。仕事で利用する場合は、必ず社内ルール、契約内容、クライアントとの取り決めを確認してください。

著作権とライセンス

Copilotの提案には、著作権やライセンスの観点から注意が必要な場合があります。AIが生成したコードが、既存のコードと類似している場合や、特定のライセンスを持つ外部ライブラリのコードを基にしている可能性も考慮しなければなりません。

AIが出力したコードをそのまま商用利用してよいか、プロジェクトの方針に合致しているか、外部ライブラリの扱いが問題ないかなど、確認が必要な場面もあります。「AIが出したものだから何でも使っていい」とは考えず、安全な利用を心がけましょう。

これらの注意点をREADMEやIssueに明記しておくことで、プロジェクトの前提を共有し、リスクを軽減できます。

このリポジトリはAI支援を受けて作成しています。
本番利用前に、人間によるコードレビューと動作確認を行います。
APIキーや個人情報は含めません。
外部ライブラリのライセンスは利用前に確認します。

初心者のためのCopilot活用ステップ

Copilotを完璧に使いこなすことを最初から目指す必要はありません。まずは以下のステップから始めてみましょう。

  1. Pull Requestの変更内容をCopilotに説明してもらう。
  2. 気になる差分をレビューしてもらう。
  3. Issueの内容を具体化してもらう。
  4. 必要であれば、修正案を出してもらう。

小さなリポジトリや小さな変更で試しながら、AIの指摘を読み、自分で判断し、必要なら修正してコミットするという練習を重ねることが、実務で役立つスキルへと繋がります。

AI時代の開発では、コードを書く力だけでなく、AIが生成したコードを確認し、判断する力が非常に重要になります。Copilotは、その確認作業を強力にサポートし、あなたが判断に集中できる環境を提供します。

GitHubはプロジェクトの本体を管理する場所であり、Copilotはそのプロジェクトを読み、書き、確認する手伝いをするAIです。そしてあなたは、目的を決め、優先順位を決め、AIの提案を採用するかどうかを判断する存在です。この役割分担を意識することで、GitHubとAIの組み合わせは強力な開発環境となるでしょう。

人にたとえると

新しい企画を進める会社のプロジェクトチームを想像してみましょう。

プロジェクトリーダーは、まず「何を達成したいか」という目標を明確にします。AIアシスタントに「この目標達成のための計画案や資料の下書きを作成してほしい」と依頼。アシスタントは素早く提案や草案を提示しますが、リーダーはそれを鵜呑みにせず、内容が適切か、チームの方向性に合っているかなどを慎重に確認します。必要であれば修正を指示し、最終的にリーダー自身が責任を持って決定します。チーム全体の進捗状況は共有の記録システムで管理されます。

AIアシスタント=GitHub Copilot
共有の記録システム=GitHub
計画案や資料の下書き=Pull Request