この記事のポイント
- GitHub CopilotはAI駆動のコーディングアシスタントで、コード補完やチャット機能を提供
- VS Code、Visual Studio、JetBrains IDEなど主要な開発環境に対応
- 個人向けは月額$10、企業向けは月額$19から。学生・教職員向けの無料プランあり
- プロンプト入力で動画生成、テストデータ作成、ドキュメント作成など多様な開発タスクをサポート
- 著作権リスクに注意が必要。企業向けプランではパブリックコードとの一致をブロック可能
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
GitHub Copilotは、AI技術を駆使して開発者の生産性を飛躍的に向上させる革新的なコーディングアシスタントです。
コード補完機能やチャット形式での質問対応など、多彩な機能を提供し、プログラミングの効率を大幅に改善します。
本記事では、GitHub Copilotの料金体系から実践的な使用方法まで、幅広くカバーします。
Visual Studio Codeへの導入手順や様々な活用例、料金体系、そして著作権などの注意点について詳しく解説します。
AI駆動のツールがもたらすプログラミングの新時代。GitHub Copilotを通じて、その可能性と課題を探っていきましょう。
目次
Github Copilot Individual・Business・Enterpriseの違い
VSCode(codeVisual Studio Code)への導入手順
チャット機能(Github Copilot Chat)による質問やコードレビュー
Github Copilotとは
GitHub Copilotは、ユーザーのコーディング作業を強力にサポートしてくれるAIペアプログラマーです。
まるで隣に優秀なプログラマーがいるかのように、コードの自動補完、関数やクラスの生成、自然言語からのコード生成など、様々な方法で開発の効率化に寄与します。
参考:Github
例えば、関数の名前を入力すると、Copilotがその関数の中身を提案してくれたり、日本語や英語でコメントを書くと、その内容に沿ったコードを自動生成できます。
また、Github CopilotはVSCode(Visual Studio Code)やVisual Studioなどの主要なコードエディタに対応しており、個人向けと企業向けのプランが用意されています。
Github Copilotの対応言語
GitHub Copilotは、Python、JavaScript、TypeScript、Ruby、Go、Java、C#、C++、Cといった主要なプログラミング言語に対応しています。
これらの言語は、様々な分野で活用されており、Webアプリケーション開発、システムプログラミング、データ分析、機械学習など、多岐にわたる用途をカバーしています。
また、GitHub Copilotは、プログラミング言語だけでなく、マークアップ言語やデータ形式のサポートも充実しています。
HTML、CSS、SQLをはじめ、Markdown、JSON、YAMLなども扱うことができます。
これにより、Webページのデザインやデータベース操作、ドキュメント作成、データ交換など、開発に関連する幅広いタスクにおいてCopilotの支援を受けることが可能です。
GitHub Copilotの料金体系
GitHub Copilotを使い始めるには、以下の3つのプランのいずれかに登録する必要あります。
- GitHub Copilot Individual
- GitHub Copilot Business (中規模組織向け)
- GitHub Copilot Enterprise(大企業向け)
Github Copilotの料金形態
GitHub Copilot Individual
GitHub Copilot Individualは、個人開発者向けのプランです。
コードの自動補完、関数やクラスの生成、コメントからのコード生成など、様々な機能を利用して、開発効率を向上させることができます。
【価格】
$10/月 または $100/年(年間プランで2ヶ月分お得)
【主な特徴】
- 個人アカウントで利用可能
- 基本的なコード補完機能
- 多様なIDEとエディタをサポート(VS Code, Visual Studio, JetBrains IDEs, Neovim)
GitHub Copilot Business
GitHub Copilot Businessは、中小企業やチーム向けのプランです。
「Individualプラン」の機能に加えて、コードスニペットの収集をオプトアウトできる機能など、セキュリティ機能が強化されています。
また、組織全体のポリシー管理や監査ログにより、チームでの一貫した利用と管理が可能になります。
【価格】
$19/ユーザー/月
(Organization、またはEnterpriseアカウントが必要です)
【主な特徴】
- 組織全体でのポリシー管理
- セキュリティ強化機能
- 監査ログ
- 指定ファイルの除外機能
- IP indemnity(知的財産権侵害に対する補償)
✅「GitHub Copilot for Business」の詳細については、以下の記事で詳しく解説しています。
Github Copilot for Businessとは?使い方や料金、導入方法を解説
GitHub Copilot Enterprise
GitHub Copilot Enterpriseは、「GitHub Enterprise Cloud」を利用している大規模組織向けのプランです。
Businessプランの機能に加えて、より高度なセキュリティ管理、ポリシー設定、サポートなどが提供されます。
さらに、EnterpriseプランではBingを利用したWeb検索機能や、組織固有のニーズに合わせてAI機能をカスタマイズ可能です。
【価格】
$39/ユーザー/月
(GitHub Enterprise Cloudアカウントが必要)
【主な特徴】
- Businessプランより高度なセキュリティ管理
- カスタマイズ可能なAI機能
- 組織全体のワークフローへのAI統合
- プレミアムサポート
Github Copilotの無料トライアルについて
Github Copilotの新規ユーザーは、30日間の無料トライアルを利用できます。
トライアル期間終了後、自動的に有料プランに移行しますが、30日以内にキャンセルすれば料金は発生しません。
GitHub Education(学生・教職員向け)
対象の学校に所属する学生や教職員は、Github Copolotを無料で利用することが可能です。
学生・教職員向け
認定教育機関の学生または教職員は、「Github Education」に応募することでGitHub Copilotを無料で利用できます。
【対象者】
- 高等学校、中等学校、大学、ホームスクール、またはそれらに準ずる教育機関で、学位を取得できるコースに現在在籍している
- 「所属する学校が発行するメールアドレス」もしくは「現在の在学状況を証明する書類(在学証明書・学生証など)」を保有している
- GitHub個人アカウントを保有していること(ビジネスアカウントは不可)
- 13歳以上であること
Github Copilot Individual・Business・Enterpriseの違い
GitHub Copilotの3つのプラン(Individual、Business、Enterprise)の主な違いは以下の通りです。
比較項目 | Individual | Business | Enterprise |
---|---|---|---|
料金 | 月額$10 年間$100 |
$19/ユーザー/月 | $39/ユーザー/月 |
対象ユーザー | 個人開発者 | 企業、チーム | 大規模組織 |
Githubアカウント | 個人アカウント | Organization、 またはEnterpriseアカウント |
GitHub Enterprise Cloud |
Copilot Chat | 〇 | 〇 | 〇 |
GitHub Copilot in the CLI | 〇 | 〇 | 〇 |
コードスニペット収集 | 〇(無効化可能) | × | × |
パブリックコードに一致する 提案のブロック(著作権対策) |
〇 | 〇 | 〇 |
エディタへの統合 | 〇 | 〇 | 〇 |
複数行の関数提案 | 〇 | 〇 | 〇 |
組織全体のポリシー管理 | × | 〇 | 〇 |
特定ファイルの除外 | × | 〇 | 〇 |
監査ログ | × | 〇 | 〇 |
SAML SSO認証 | × | 〇 | 〇 |
GitHub Mobileでの利用 | × | × | 〇 |
プルリクエストの要約 | × | × | 〇 |
組織のナレッジベースに基づく回答 | × | × | 〇 |
Bingを利用した Web 検索 (ベータ版) | × | × | 〇 |
ファインチューニングモデル(近日公開予定) | × | × | 〇 |
GitHub.comでのCopilot Chat | × | × | 〇 |
VS CodeでのCopilot Chat | × | × | 〇 |
Visual StudioでのCopilot Chat | × | × | 〇 |
選択するプランは、組織の規模、セキュリティ要件、必要な機能に応じて決定するのが良いでしょう。
Github Copilotの導入相談
「GitHub Copilotの導入や使用方法について不明点がある」・「GitHub Copilot for Businessの導入を検討中」といった場合は、お気軽にお問い合わせください。
当社のエキスパートが、お客様のニーズに合わせた最適なソリューションをご提案いたします。
AI駆動の開発支援ツールで、貴社の開発プロセスを次のレベルへ引き上げましょう。
お問い合わせはこちらから▼
ご相談・お問い合わせフォーム(AI総合研究所)
Github Copilotの使い方
ここでは、「個人アカウントでGitHub Copilotを利用する手順」を解説します。
無料トライアルの開始手順
- 任意のGitHubページの右上隅でプロフィール写真をクリックし、「Your Copilot」を選択します。
- GitHub Copilot設定ページで、「無料トライアル開始」をクリックします。
- 月単位または年単位で支払うかを選択し、「Get access to GitHub Copilot」をクリックします。
- 支払いの詳細を入力し、「送信」をクリックします。
- ユーザー設定を選択し、「Save and complete setup」をクリックすると完了です。
VSCode(codeVisual Studio Code)への導入手順
ここでは、Github CopilotをVisual Studio Code(VS Code)へ導入する方法、そして使用方法を紹介します。
-
VS Codeを開きます。
まだインストールしていない場合は、VScodeの公式サイトからダウンロードしてインストールしてください。
-
拡張機能ビューを開き、検索バーに「GitHub Copilot」と入力します。
拡張機能ビューと検索バー
- 検索結果に表示される「GitHub Copilot」の拡張機能をクリックし、[Install]ボタンをクリックします。
インストールが完了すると、VS CodeでGitHub Copilotを使用できるようになります。
Github Copilotのインストール画面
4. GitHub Copilotへのサインイン
GitHub Copilotを初めて使用する場合、GitHubアカウントでサインインするよう求められます。
サインインすることですぐに使用できます。
Github Copilot Chatの導入方法
「Github Copilot Chat」と「Github Copilot」はそれぞれ独立した拡張機能のため、チャット機能を利用したい場合は別途インストールする必要があります。
Github Copilot ChatのVscodeへの導入手順はGithub Copilotと同様です。
主要機能については、以下の記事をご覧ください。
Github Copilot Chatとは?使い方や料金体系を解説!
GitHub Copilotでできること
GitHub Copilotは、AIによるコーディング支援を提供することで、ソフトウェア開発の効率を飛躍的に向上させます。
基本的な機能として以下の2つがあり、その使用方法について紹介します。
コードの補完
GitHub Copilotは、入力中のコードをリアルタイムで解析し、コードの補完提案を行います。
仕組みとしては、以下の要素を考慮してコードを推測します。
- ファイルの拡張子(例:.pyファイルはPython、.jsファイルはJavaScript など)
- ファイル内の既存のコード
- コメントや関数名、変数名などのコンテキスト
さらに、Copilotはファイルの内容やコンテキスト、時にはユーザーの入力も考慮して、最適な提案を生成します。
これにより、各言語の構文やベストプラクティスに沿った提案が可能になります。
Github Copilotのコード補完機能
コード補完機能の使い方
ここでは、Pythonファイルを用いて「リスト内の重複要素を削除する関数の作成」を例に、GitHub Copilotの使用方法を説明します。
- コードを入力する
VS Codeで新しいPythonファイルを開き、以下のように入力を始めます。
def remove_duplicates
- 提案の表示
GitHub Copilotが、入力したコードに基づいて提案を表示します。
提案されたコードは、エディタ内で灰色のテキストとして表示されます。
Github Copilotによる提案
- 提案の受け入れ
この提案が目的に合致している場合、Tabキーを押して提案を受け入れます。
提案されたコードが通常のテキスト色で表示され、カーソルが関数の終わりに移動します。
Tabキーを押して受け入れ
- 代替提案のブラウズ
提案に複数の候補がある場合や、もし別の実装を見たい場合、画像の水色で囲んである「< >」をクリックすることで代替提案を確認できます。
チャット機能(Github Copilot Chat)による質問やコードレビュー
GitHub Copilotのチャット機能(Github Copilot Chat)を使用すると、自然言語で質問を記述し、それに対するコーディングの提案を受け取ることができます。
この機能は、コーディングの効率を大幅に向上させるだけでなく、学習や問題解決のツールとしても非常に有用です。
Github Copilotのチャット機能を使用した画像
Github Copilot Chatの使い方
-
チャット機能へのアクセス
Github Copilot Chatをインストール後、VS Code左側のサイドバーにある吹き出しアイコン(画像矢印)をクリックします。
Github Copilot Chatのアイコン
-
質問の入力
アイコンをクリックすると、チャットウィンドウが開きます。
このウィンドウの下部にある入力欄に、解決したい問題やコードの提案など、質問を自然言語で入力します。
例:
リスト内の重複要素を削除する関数を作成してください
この関数のパフォーマンスを改善する方法はありますか?
このコードのユニットテストを書いてください
Github Copilotのチャットウィンドウ(お使いの設定によって、表示位置は異なる場合が有ります。)
- 提案の受け取り
入力した質問に基づいて、GitHub Copilotが回答やコードの提案を表示します。
これには説明テキスト、コードスニペット、または両方が含まれる場合があります。
今回は例として「シンプルな在庫管理システムのコードを作成し、それに関連する質問」をしてみます。
Github Copilot Chatによる回答
すると、ロジックと具体的なコードを提供してくれました。
回答には以下の要素が含まれています。
- 問題解決のための明確なアプローチ
- 実装可能な具体的なPythonコード
- コードの動作原理の説明
- 使用例と応用方法の提案
GitHub Copilot Chatが単なるコード生成ツールではなく、問題解決に向けた包括的な支援を提供できることがお分かり頂けるかと思います。
- 提案されたコードを確認し、必要に応じて直接エディタにコピー&ペーストするか、提案を参考にしてコードを修正します。
GitHub Copilotを使ってみた
GitHub Copilotは、コード補完機能以外にも、ソフトウェア開発の多様な面で支援を提供します。
ここでは、「GitHub Copilot Chat」を活用した具体的な使用例を紹介します。
1. 基本的なコンポーネントやファイルの作成を依頼する
プロジェクトの初期段階で、GitHub Copilotを使用して、基本的なファイル構成やディレクトリのセットアップを自動的に行うことができます。
例えば、「Reactアプリケーションの雛形を作成」という指示をすることで、必要なファイル群と基本的なコンポーネント、さらにはドキュメントまでを一気に生成することが可能です。
@workspace /new シングルページのポートフォリオのためのReactアプリケーションの雛形を作成
上記のコマンドをチャットに打ち込みます。
Reactアプリケーションの雛形を作成した画像
ワークスペースの作成を押すことで、作成したい任意の場所にプログラムの入ったファイルごと作成することができます。
また、README.mdごと作成できるため、出来上がったファイル群でも簡単に理解することができます。
2. コマンドの実行をしてもらう
特定のプログラムやスクリプトを実行するためのコマンドを忘れがちな場合、GitHub Copilotに問い合わせることで、適切な実行コマンドを提案してもらうことができます。
@terminal main.pyの実行コマンドを教えて
上記のコマンドをチャットに打ち込みます。
プログラムを動かすためのコマンドの生成をした画像
上記以外にも、Docker等のコマンドも生成できます。コマンドをド忘れしてしまった場合にとても役立ちます。
3. テスト用データの生成
GitHub Copilotを使用すると、テストケースに適したデータ生成ロジックの提案を得ることができます。
これにより、テストの品質を向上させると同時に、テストデータ作成にかかる時間を大幅に削減できます。
例として、下記のような「3つのカラムから散布図を作成するプログラムのテストデータ」を作成することを想定します。
# main.py
# 必要なライブラリをインポート
import matplotlib.pyplot as plt
import japanize_matplotlib # 日本語表示に対応
import pandas as pd
# 日本語が文字化けしないように設定
japanize_matplotlib.japanize()
# data.csvからデータを読み込む
df = pd.read_csv('data.csv')
# 男性と女性のデータを分ける
df_male = df[df['性別'] == '男']
df_female = df[df['性別'] == '女']
# 散布図の作成
plt.figure(figsize=(10, 6))
# 男性は青色でプロット
plt.scatter(df_male['年齢'], df_male['購買数'], color='blue', label='男性')
# 女性は赤色でプロット
plt.scatter(df_female['年齢'], df_female['購買数'], color='red', label='女性')
# タイトルと軸ラベルの設定
plt.title('年齢と購買数の相関(性別別)')
plt.xlabel('年齢')
plt.ylabel('購買数')
# 凡例の表示
plt.legend()
# グリッドの表示
plt.grid(True)
# グラフの表示
plt.show()
上記のプログラムのテストデータを作成していきます。下記のコマンドをチャットに打ち込みます。
@workspace /tests main.pyに必要なデータを作成するプログラムであるcreate_data.pyのプログラムを考えてください。性
別、年齢、購買数がランダムに70個生成され、df.to_csv('data1.csv', index=False)を用いてdata.csvという名前で保存するプログラムにしてください。
テスト用のデータの生成した画像
ここで生成されたものをそれぞれcreate_data.pyとtest_main.pyに保存し、test_main.pyを実行します。
ここで作成されたテストは以下の3つです。
- test_read_data()
data.csvからデータを読み込み、その結果がpandas.DataFrameのインスタンスであることを確認します。
- test_split_data()
同じくdata.csvからデータを読み込んで性別で分割し、男性データフレームに女性のデータが含まれていないこと、そして女性データフレームに男性のデータが含まれていないことを確認します。
- test_create_scatter_plot()
散布図を作成し、2つの異なるデータセット(男性と女性)がプロットされていることを確認します。
このテストは、matplotlibのax.collectionsの長さをチェックすることで行われます。
(base) % pytest test_main.py
======================================== test session starts =========================================
platform darwin -- Python 3.11.4, pytest-7.4.0, pluggy-1.0.0
rootdir: /Users/Develop/studyspace/any
plugins: anyio-3.5.0
collected 3 items
test_main.py ... [100%]
========================================== warnings summary ==========================================
../../../anaconda3/lib/python3.11/site-packages/japanize_matplotlib/japanize_matplotlib.py:16
../../../anaconda3/lib/python3.11/site-packages/japanize_matplotlib/japanize_matplotlib.py:16
/Users/anaconda3/lib/python3.11/site-packages/japanize_matplotlib/japanize_matplotlib.py:16: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
is_support_createFontList = LooseVersion(matplotlib.__version__) < '3.2'
../../../anaconda3/lib/python3.11/site-packages/setuptools/_distutils/version.py:345
../../../anaconda3/lib/python3.11/site-packages/setuptools/_distutils/version.py:345
/Users/anaconda3/lib/python3.11/site-packages/setuptools/_distutils/version.py:345: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
other = LooseVersion(other)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=================================== 3 passed, 4 warnings in 12.54s ===================================
この結果から、pytestを使用したテストが実行されていることがわかります。
4. ドキュメントの作成
コードのドキュメントを作成する際にも、GitHub Copilotは役立ちます。
ドキュメント作成の負担を軽減しつつ、一貫性のある説明文を提供できます。
# main.py
import matplotlib.pyplot as plt
import japanize_matplotlib
import pandas as pd
japanize_matplotlib.japanize()
df = pd.read_csv('data.csv')
df_male = df[df['性別'] == '男']
df_female = df[df['性別'] == '女']
plt.figure(figsize=(10, 6))
plt.scatter(df_male['年齢'], df_male['購買数'], color='blue', label='男性')
plt.scatter(df_female['年齢'], df_female['購買数'], color='red', label='女性')
plt.title('年齢と購買数の相関(性別別)')
plt.xlabel('年齢')
plt.ylabel('購買数')
plt.legend()
plt.grid(True)
plt.show()
上記のプログラムを用いて進めていきます。
下記のコマンドをチャットに打ち込みます。
日本語でmain.pyのドキュメントを作成して
すると、このように出力してくれました。
プログラムに注釈が入ることで、可読性が向上します。
ドキュメントを作成した画像
5. csvファイルを読み込む
データ分析やデータ処理タスクにおいて、csvファイルからデータを読み込み、加工するプログラムを作成する必要がある場合、GitHub Copilotに指示をすることで、効率的にコードを生成することができます。
まず、以下のコマンドをチャットに打ち込みます。
@workspace data.csvのデータの中にある情報をもとにして、Pydanticのスキーマを作成して。
csvからスキーマを作成した画像
次は、以下のコマンドをチャットに打ち込みます。
@workspace data.csvの年齢の平均を出して
csvからプログラムを作成した画像
どちらの使い方でも、Github Copilotが特定のファイルを読み取り、適切な返答が出力されています。
Github Copilot利用時の注意点
注意点として、セキュリティやプライバシー、コードの独自性(著作権の問題)、また従来の開発プロセスへの依存度の調整などがあります。
著作権リスク
GitHub Copilotが生成するコードは、大量の公開ソースコードを基に機械学習で訓練されたモデルから出力されるため、既存のコードと酷似したり、一部が完全に一致したりする可能性があります。
具体的には、生成されたコードが元になったオープンソースコードの「派生物」であると判断された場合、そのコードに適用されていたオープンソースライセンスの条件に従う必要が出てきます。
しかし、大量のコードを学習して生成するCopilotの特性上、生成コードがどのオープンソースコードに由来するのか特定することは非常に困難です。
【関連記事】
Github Copilotの著作権問題は?考えうるリスクや安全に利用する方法を解説 | AI総合研究所
AIを活用したコーディング支援ツールであるGitHub Copilotの著作権問題について解説しています。ユーザーや企業が取るべき対策を提案します。
https://www.ai-souken.com/article/github-copilot-copyright-issues
また、組織でGitHub Copilotを利用する場合は、Github Copilot for Businessの活用がおすすめです。
このプランでは、組織全体の管理機能としてGitHub上のパブリックコードと一致するコードの提案をブロックできる機能が追加されています。
これにより、組織内での著作権問題のリスクを軽減することができます。
サポートと法的ガイドライン
GitHub Copilotの利用に際して、サポートや法的情報を把握しておくことが重要です。
-
サポート
GitHubが提供する豊富なドキュメント、FAQセクション、コミュニティフォーラムがあります。
-
法的ガイドライン
法的情報には、ライセンスに関する詳細や利用規約、データの取り扱いに関するガイドラインなどが含まれます。
GitHub Copilotの利用にあたっては、これらの情報に注意を払ってソフトウェアを使用することが求められます。、常に最新の公式情報にアクセスしましょう。
Github Copilotのアップデート情報・最新ニュース【随時更新】
※近日公開予定
まとめ
本記事では、GitHub Copilotの概要、特徴、料金体系、使用方法について詳しく解説しました。
GitHub Copilotは、AI駆動のコーディングアシスタントとして、開発者の生産性を大幅に向上させる強力なツールです。コード補完、チャット機能、ドキュメント作成支援など、多岐にわたる機能を提供し、開発プロセス全体をサポートします。
個人開発者から大規模企業まで、様々なニーズに対応する料金プランが用意されており、柔軟な導入が可能です。ただし、AIが生成するコードの品質チェックや著作権への配慮など、使用にあたっては注意点もあります。
GitHub Copilotを効果的に活用することで、開発者はより創造的な作業に集中でき、プロジェクトの進行速度を加速させることができるでしょう。