秘密厳守WEBからお問い合わせまずは資料請求
AI総合研究所

SHARE

X(twiiter)にポストFacebookに投稿はてなブックマークに登録URLをコピー

Github Copilotとは?使い方や料金、VScodeへの導入方法を解説

この記事のポイント

  • GitHub CopilotはAI駆動のコーディングアシスタントツール
  • 様々なプログラミング言語やコードブロックの補完が可能
  • サブスクリプションベースの課金制で、無料プランも条件次第で利用可能
  • 開発者の生産性向上、エラー減少、学習支援などのメリット
  • Visual Studio Codeなどの開発環境向けにインストールガイドを提供

監修者プロフィール

坂本 将磨

Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。

プログラミングの世界に革新をもたらすAI駆動のコーディングアシスタントツール「GitHub Copilot」が注目を集めています。
GitHub CopilotはOpenAIとGitHubによる共同開発により誕生し、機械学習を活用してコードの自動生成や補完を行います。これにより、開発者はより効率的かつ迅速にプログラミング作業を進めることができます。

本記事では、GitHub Copilotの概要から特徴、利用方法、メリットまでを網羅的に解説します。
AI技術がもたらすプログラミングの未来を感じながら、GitHubCopilotの活用方法を探っていきましょう。

Github Copilotとは

GitHub Copilotとは、開発者がコードをより迅速かつ簡単に記述できるよう支援するAI駆動のコーディングアシスタントです。
入力中にコードの提案を行うことで、現在の行を補完したり、新しいコードブロックを提案したりします。

Github Copilotの主要機能は以下の通りです。

  • コード補完
    入力している間に、GitHub Copilotからリアルタイムでコード提案が得られます。

  • チャット形式での質問
    Copilotとの対話を通じて、コードに関する質問や問題解決の方法を尋ねることができます。

  • Pull Requestの概要(Copilot Enterpriseのみ)
    Copilotを使って、pull requestの変更点について自動的な説明を得ることが可能です。

  • ナレッジベース(Copilot Enterpriseのみ)
    チャット中のコンテキストとして使用できる、ドキュメントのコレクションを作成および管理します。

Github Copilotの料金体系

GitHub Copilotの利用にはサブスクリプションに基づく課金が伴います。GitHub Copilotの料金体系、および無料で利用できる特別なケースについて説明します。

Github Copilotの料金形態
Github Copilotの料金形態

GitHub Copilotを使い始めるには以下の3つのプランのいずれかを利用する必要があります。

1.GitHub Copilot Individual(個人ユーザー向け)

個人開発者や小規模プロジェクトのための手頃な価格設定とサービス内容です。

試用版があり、新規ユーザーは、30日間の無料トライアルを利用できます。トライアル期間終了後、自動的に有料プランに移行します。

  • 月単位の課金: カレンダー月ごとに10米国ドルが課金されます。
  • 年単位の課金: 年間100米国ドルが一括で課金されます。

2.GitHub Copilot BusinessおよびGitHub Copilot Enterprise(チームや企業向けの課金プラン)

複数のライセンスを一括で購入し、ライセンスをメンバーに付与する利用方法です。

組織やエンタープライズの場合、請求はシートの割り当て数に基づいて行われ、期間途中で割り当てられたシートは日割り計算されます。

  • GitHub Copilot Business: ユーザーあたり月額19米国ドル。

  • GitHub Copilot Enterprise ユーザーあたり月額39米国ドル。


より詳細な料金体系・プラン概要については、以下の記事をご覧ください。
➡️[Github Copilot for Businessとは?使い方や料金、導入方法を解説]

3. 学生・開発向けの無料利用プラン

学生、教師、GitHubのオープンソースリポジトリの保守担当者であるユーザーは、GitHub Copilotを無料で利用できます。Githubからの審査があるため、学生証などの身分を証明するものがあれば利用可能です。


Github Copilotの導入手順

GitHub Copilot
GitHub Copilot

GitHub Copilotの使用を開始するためには、まず上記のいずれかのプランに入ったGitHubアカウントが必要です。
そのためGitHubアカウントを持っている必要があります。まだ持っていない場合は新しいアカウントを作成してください。

以下に、個人アカウントでGitHub Copilotを始める手順を示します。無料使用版でなくても個人アカウントであれば同じ進め方です。

無料試用版の開始

  1. 任意のGitHubページの右上隅でプロフィール写真をクリックし、Your Copilotを選択します。

  2. GitHub Copilot設定ページで、無料トライアル開始をクリックします。

  3. 月単位または年単位で支払うかを選択し、Get access to GitHub Copilotをクリックします。

  4. 支払いの詳細を入力し、送信をクリックします。

  5. ユーザー設定を選択し、Save and complete setupをクリックします。

インストール方法と環境設定について

GitHub Copilotは、様々な開発環境やエディターをサポートしているため、以下の6つの選択肢の中から開発者自身に最適なプラットフォームを選ぶことができます。

  • JetBrains IDEs
  • Visual Studio
  • Visual Studio Code
  • Azure Data Studio
  • Vim / Neovim

インストールプロセスは以下の手順に従います:

  1. GitHub Copilotの公式ページにアクセスし、利用可能なエディターの一覧から選択してください。

  2. 選択したエディターのプラグインまたは拡張機能をインストールします。

  3. GitHub Copilotの使用を開始する前に、適切なAPIキーまたは認証トークンの設定や、Githubアカウントでのサインインを行ってください。


それぞれの開発環境ではCopilotをインストールする際の手順が異なる可能性があります。

各コードエディターごとにGithub公式のドキュメントがありますので参考にしてください。

VisualStudio Codeでの導入例

VisualStudio Code
VisualStudio Code

本記事ではVisual Studio Code(VS Code)の導入方法、使用方法を紹介します。GitHub Copilotをこのエディターで使用するために、以下の手順に従ってください。

  1. VS Codeを開きます。
    まだインストールしていない場合は、公式サイトからダウンロードしてインストールしてください。

  2. 拡張機能ビューを開きます。
    VS Codeのサイドバーにある拡張機能アイコン(四角が重なったような形のアイコン)をクリックするか、Ctrl+Shift+X(Windows / Linux)またはCmd+Shift+X(macOS)のショートカットを使用します。

  3. 検索バーに「GitHub Copilot」と入力します。 検索結果に表示される「GitHub Copilot」拡張機能を見つけます。

  4. [Install]ボタンをクリックします。
    インストールが完了すると、VS CodeでGitHub Copilotを使用できるようになります。

  5. GitHubにサインインします。
    GitHub Copilotを初めて使用する場合、GitHubアカウントでサインインするよう求められます。サインインすることですぐに使用できます。

GitHub Copilotの使い方

GitHub Copilotは、AIによるコーディング支援を提供することで、ソフトウェア開発の効率を飛躍的に向上させます。

基本的な機能として以下の2つがあり、その使用方法について紹介します。

コード補完機能

GitHub Copilotは、入力中のコードをリアルタイムで解析し、コードの補完提案を行います。
これにより、開発者はより少ない入力でコードを完成させることができます。

Github Copilotのコード補完機能の画像
Github Copilotのコード補完機能の画像

以下の手順で、この機能を活用できます。

  1. コード入力開始
    VS Codeでコーディングを開始します。たとえば、function や for ループの初めの数文字を入力します。

  2. 提案の表示
    GitHub Copilotは、入力したコードに基づいて提案を表示します。提案されたコードは、エディタ内で灰色のテキストとして表示されます。

  3. 提案の受け入れ
    提案されたコードが目的に合致している場合、Tabキーを押して提案を受け入れます。

  4. 代替提案のブラウズ
    提案に複数のオプションがある場合、Ctrl + Space(Windows / Linux)またはCmd + Space(macOS)を使用して、利用可能な提案をブラウズできます。

チャット機能(Github Copilot Chat)

GitHub Copilotのチャット機能を使用すると、自然言語で問題を記述し、それに対するコーディングの提案を受け取ることができます。

Github Copilotのチャット機能を使用した画像
Github Copilotのチャット機能を使用した画像

以下の手順で、この機能を活用できます。

  1. チャット機能のアクセス
    VS Codeのコマンドパレットを開き(Ctrl + Shift + PまたはCmd + Shift + P)、"Chat: Open Editer (GitHub Copilot)"コマンドを実行します。

  2. 質問の入力
    コマンドパレットに表示される入力欄に、解決したい問題や学びたい内容に関する質問を文章で入力します。

  3. 提案の受け取り
    質問に基づいて、GitHub Copilotがコードの提案を表示します。提案されたコードを確認し、適切なものを選択してコードベースに組み込みます。


より詳細な概要、使い方については、こちらの記事をご覧ください。
➡️Github Copilot Chatとは?使い方や料金、日本語対応について解説!


GitHub Copilotを使ってみた

GitHub Copilotは、コード補完機能以外にも、ソフトウェア開発の多様な面で支援を提供します。以下は、GitHub Copilotチャットを活用する具体的な使用例です。

  1. 目的のプログラムをディレクトリやファイル、ドキュメントごと作成
  2. プログラムを動かすためのコマンドの生成
  3. テスト用のデータの生成
  4. ドキュメントを作成する
  5. csvファイルを読み込む

1. 目的のプログラムをディレクトリやファイル、ドキュメントごと作成

プロジェクトの初期段階で、GitHub Copilotを使用して、基本的なファイル構成やディレクトリのセットアップを自動的に行うことができます。

例えば、「Reactアプリケーションの雛形を作成」という指示をすることで、必要なファイル群と基本的なコンポーネント、さらにはドキュメントまでを一気に生成することが可能です。

@workspace /new シングルページのポートフォリオのためのReactアプリケーションの雛形を作成

上記のコマンドをチャットに打ち込みます。

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からスキーマを作成
csvからスキーマを作成した画像

次は、以下のコマンドをチャットに打ち込みます。

@workspace data.csvの年齢の平均を出して

csvからプログラムの作成
csvからプログラムを作成した画像

どちらの使い方でも、Github Copilotが特定のファイルを読み取り、適切な返答が出力されています。


Github Copilotの導入効果・メリット

AI技術を活用することで、開発者の生産性が向上し、より創造的な作業に集中できるようになります。

以下に、GitHub Copilotを導入することの主な利点を紹介します。

開発時間の短縮
GitHub Copilotのコード補完機能により、開発者はコーディングに要する時間を大幅に短縮できます。一般的なコードスニペットや関数の自動提案を通じて、開発者はタイプする量を減らし、より迅速にプロジェクトを前進させることができます。

エラーの減少
AIによるコード提案は、構文エラーや一般的なプログラミングミスの発生を減らすのに役立ちます。これにより、デバッグ作業が減少し、より安定したソフトウェアを生産することが可能になります。

学習と発見
GitHub Copilotは、新しいライブラリやフレームワークの使用方法を学ぶのにも非常に役立ちます。特定のAPIの使用例や、あまり知られていないプログラミングテクニックの提案を通じて、開発者は新しい知識を身につけ、スキルを拡大することができます。

セキュリティと品質の管理
GitHub Copilotは、コードのセキュリティと品質の向上にも寄与します。提案されるコードは、GitHub上の公開されている数百万のコードリポジトリから学習されたものであり、一般的なベストプラクティスやセキュリティ基準に沿ったものであることが多いです。


Github Copilot利用時の注意点

注意点として、セキュリティやプライバシー、コードの独自性(著作権の問題)、また従来の開発プロセスへの依存度の調整などがあります。

Github Copilotの著作権について

GitHub Copilotが生成するコードは、大量の公開ソースコードを基に機械学習で訓練されたモデルから出力されるため、既存のコードと酷似したり、一部が完全に一致したりする可能性があります。

具体的には、生成されたコードが元になったオープンソースコードの「派生物」であると判断された場合、そのコードに適用されていたオープンソースライセンスの条件に従う必要が出てきます。
しかし、大量のコードを学習して生成するCopilotの特性上、生成コードがどのオープンソースコードに由来するのか特定することは非常に困難です。

【関連記事】
➡️Github Copilotの著作権問題は?考えうるリスクや安全に利用する方法を解説

また、組織でGitHub Copilotを利用する場合は、Github Copilot for Businessの活用が有効です。

このプランでは、組織全体の管理機能としてGitHub上のパブリックコードと一致するコードの提案をブロックできる機能が追加されています。
これにより、組織内での著作権問題のリスクを軽減することができます。

サポートと法的情報

GitHub Copilotの利用に際して、サポートや法的情報を把握しておくことが重要です。GitHubが提供する豊富なドキュメント、FAQセクション、コミュニティフォーラムがあります。

これらのリソースは、疑問点や問題解決に役立つ情報を提供し、利用者がすぐに課題を克服できるよう支援します。

法的情報には、ライセンスに関する詳細や利用規約、データの取り扱いに関するガイドラインなどが含まれます。GitHub Copilotの利用者として、これらの情報に注意を払ってソフトウェアを使用することが求められるため、常に最新の公式情報にアクセスすることが重要です。


まとめ

本記事では、開発者がAIを利用してコーディング作業の効率を向上させるための最新ツール「GitHub Copilot」について幅広く解説しました。
概要から目的、機能、使い方、さまざまな開発環境での活用法、課金情報、注意点とメリット、さらには関連するその他のサービスまで、さまざまな側面を網羅しました。ぜひご活用ください。

AI活用のノウハウ集「AI総合研究所」サービスご紹介資料

「AI総合研究所 サービス紹介資料」は、AI導入のノウハウがないというお客様にも使いやすい最先端のAI導入ノウハウを知れる資料です。

資料ダウンロード
監修者

坂本 将磨

Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。

関連記事

AI導入の最初の窓口。

お悩み・課題に合わせて活用方法をご案内いたします。
お気軽にお問合せください。

AI総合研究所 Bottom banner

ご相談
お問い合わせは
こちら!