Visual StudioでGitHub Copilotを使ってみた!導入方法・使い方・セキュリティの注意点

システム開発
スポンサーリンク
スポンサーリンク

AIを活用した開発支援ツールが普及する中で、特に注目を集めているのがGitHub Copilotです。

私自身、普段はVisual Studioを利用してC#やASP.NET MVCの開発を行っていますが、「実際にどこまで使えるのか」「既存システムの調査にも使えるのか」「顧客案件で利用して問題ないのか」といった疑問がありました。

そこで今回は、Visual StudioでGitHub Copilotを導入し、実際に試してみた内容や、利用時に気になったセキュリティ面についてまとめます。

GitHub Copilotとは

GitHub Copilotは、GitHubが提供するAI開発支援サービスです。OpenAIをはじめとする複数の生成AIモデルを利用してコード生成や開発支援を行います。

開発者が入力したコメントやコードをもとに、次に入力するコードを予測して提案してくれます。

例えば、

// CSVファイルを読み込む

とコメントを入力すると、

string[] lines = File.ReadAllLines(filePath);
foreach (var line in lines)
{
    // 処理
}

のようなコードを提案してくれます。

また、単なるコード補完だけではなく、

  • コードの説明
  • SQL作成
  • リファクタリング提案
  • バグ調査
  • コードレビュー支援
  • ソースコード解析

なども行うことができます。

現在は以下のプランが提供されています。

プラン 用途
Free 個人利用・お試し
Pro 個人開発
Business 企業利用
Enterprise 大規模組織向け

個人で試す場合はFreeでも十分ですが、チャット利用回数などに制限があります。

導入

Visual Studioで利用できる主な機能

Visual Studioで利用する場合、主に以下の機能が利用できます。

コード補完

入力中のコードを予測して提案してくれます。

Copilot Chat

チャット形式で質問できます。

例えば、

  • このコードを説明してください
  • この処理を改善してください
  • SQLを作成してください

などの指示が可能です。

ソースコード解析

クラスやメソッドの役割を説明してくれます。

既存システムの調査時に非常に便利です。

Visual Studioへの導入方法

導入手順はそれほど難しくありません。

  1. GitHubアカウントを作成
  2. GitHub Copilot Freeを有効化
  3. Visual Studioへサインイン
  4. GitHub Copilot拡張機能をインストール
  5. Visual Studioを再起動

Visual StudioのバージョンによってはGitHub Copilotが標準搭載されており、追加インストールが不要です。

設定完了後は、コード入力時に自動で補完候補が表示されます。

設定

GitHub Copilot Freeを有効化する

GitHubへログイン後、Copilotの設定画面からFreeプランを有効化します。

まずはFreeで試してみるのがおすすめです。

ソースコードは外部へ送信されるのか

GitHub Copilotを調べる中で、一番気になったのがセキュリティでした。

結論から言うと、Copilotは回答を生成するために必要な情報をGitHub側へ送信します。

つまり、

  • ソースコード
  • コメント
  • ファイル名
  • クラス名

などがコンテキストとして利用されます。

そのため、

「ソースコードがまったく外部へ送信されない」

というわけではありません。

学習利用をOFFにする設定

Free・Pro利用者は設定を確認しておくことをおすすめします。Business・Enterpriseは学習対象外です。

業務利用する場合は、この設定をOFFにしておくことをおすすめします。

私も最初に確認した設定の一つです。

web.configや接続文字列の扱い

個人的に最も気になったのがここでした。

.NET Frameworkのシステムでは、

web.config

の中に

  • ConnectionString
  • DBユーザー
  • DBパスワード
  • SMTPパスワード

などが記載されているケースがあります。

例えば、

<connectionStrings>
  <add name="MainDB"
       connectionString="Server=xxx;
       Database=yyy;
       User ID=zzz;
       Password=abc123;" />
</connectionStrings>

のような状態です。

こうした情報がソースコード内に含まれている場合は注意が必要です。

顧客案件で利用する際の注意点

調査した結果、

Copilot Businessであっても、回答生成に必要な情報は送信されることが分かりました。

そのため、

  • 接続情報をソースに含めない
  • パスワードを別管理する
  • システム全体解析を安易に実行しない

といった運用が重要になります。

基本操作

コード補完

最も簡単な使い方です。

入力中に表示される候補をTabキーで採用できます。

実際に使ってみると、単純な処理を書く時間はかなり短縮できました。

コードの説明

既存システムの調査で便利だった機能です。

例えばメソッドを選択して、

「この処理を説明してください」

と質問すると、処理内容を要約して説明してくれます。

SQL作成

自然言語で要件を入力するだけでSQLを作成できます。

例えば、

「受注ヘッダと受注明細を結合して一覧を取得するSQLを作成してください」

と入力すると、かなり実用的なSQLを生成してくれました。

ソースコード解析

これが個人的に一番期待していた機能です。

例えば、

「このControllerの役割を説明してください」

という質問には問題なく回答してくれます。

また、

「このファイルの処理の流れを説明してください」

といった質問にも対応できます。

実際に既存システムを解析してみた

普段扱っているASP.NET MVCのプロジェクトで試してみました。

まずはControllerを開き、

「このControllerの役割を説明してください」

と質問してみました。

すると、

  • 検索処理
  • 登録処理
  • 更新処理
  • 画面遷移

などを整理して説明してくれました。

さらに、

「このメソッドの処理内容を説明してください」

と聞くと、処理の流れを分かりやすくまとめてくれます。

これは既存システムの保守や引継ぎ作業で非常に役立ちそうです。

プロジェクト全体の解析はできるのか

調査していて気になったのが、

「ソリューション全体を解析できるのか」

という点でした。

ソリューション全体を対象に質問できますが、必ずしも全ファイルを完全に解析しているわけではありません。

例えば、

  • このプロジェクトの構成を説明してください
  • 受注登録処理の流れを調査してください
  • CSV取込処理を調査してください

といった質問もできます。

ただし、ここで注意が必要です。

プロジェクト全体解析を行うと、関連するファイルを広く参照する可能性があります。

そのため、顧客案件で利用する場合は、

  • メソッド単位
  • クラス単位
  • ファイル単位

で利用する方が安心だと感じました。

まとめ

GitHub Copilotを実際に調べてみて感じたのは、

「コード生成ツール」というよりも、

「開発支援ツール」

として非常に優秀だということです。

特に、

  • コード補完
  • コード説明
  • SQL作成
  • 既存システム調査

の効果は大きいと感じました。

一方で、AIサービスである以上、セキュリティへの配慮は必要です。

特にweb.configや接続文字列などの機密情報を含むプロジェクトでは、利用ルールを決めた上で活用することをおすすめします。

まずはGitHub Copilot Freeで試してみて、自分の開発スタイルに合うか確認してみてはいかがでしょうか。

システム開発
スポンサーリンク
シェアする
tobotoboをフォローする

コメント

タイトルとURLをコピーしました