- 1 はじめに
- 2 GitHub Copilotの機能
- 3 コマンドラインでCopilotを動かしてみる
- 4 さいごに
- 5 おすすめ書籍
はじめに
GitHub Copilotについて、コード補完以外の機能を活用できていないので、まず初めにどのような機能があるのか調査しました。
まず初めに、機能の一覧を列挙し、それぞれについて簡単に説明します。
次に、CopilotをCLIで動かしてみます。
GitHub Copilotの機能
GitHub Copilotには様々な機能が備わっています。
コード補完
入力中に、Copilotがコードの提案を行う機能です。
1行から数行程度のコードが提案され、Tabキーを押すことでコードに反映することができます。
場合によっては、Copilotは複数の提案を行うことがあります。その場合、
option
または
Alt
+
]
キーを押すことで、候補を切り替えることができます。
Copilotからの提案は一括で反映する方法に加え、部分的に反映させる方法もあります。
command
+
→
キーを押すことで、部分的にコードに反映させることができます。
また、コード補完の提案を生成するためのLLMを変更することもできますが、ここでは割愛します。詳しくは、「Copilot コード補完の AI モデルを変更する」をご覧ください。
Copilot Chat
コーディング関連の質問をできるチャットインタフェースです。
Copilot Chatは、GitHubのWebサイト、GitHubMobile、各種IDEで使用できます。
GitHubのWebサイトで利用する場合は以下のようになります。
- ページ上部の検索バーの横にあるCopilotのアイコンをクリックする
- 表示されたプロンプトに質問を入力してEnterキーを押す
- 必要に応じて、回答を中断できる
- CopilotがBing検索を使って質問に回答する場合は、応答の上部にある[n references]リンクをクリックして検索結果を表示できる
- 会話スレッド内で、フォローアップの質問をすることができる
また、別のモデルをつかって回答を再生成することもできます
Copilotコーディングエージェント
コードを自動的に変更できる自立型のエージェントです。
GitHubのIssueをCopilotに割り当てることができ、エージェントは必要な変更を行いPRを作成します。
また、Copilot ChatからPRを作成するようにCopilotに依頼することもできます。
コマンドラインでのCopilotの使用
コマンドライン上からCopilotに対して操作を行うことができます。
前提条件として、
gh
コマンドがインストールされており、Copilotの拡張機能がインストールされている必要があります。
CLIでの操作については、後ほど別途紹介します。
Copilotによるコードレビュー
CopilotからPRに対するレビューを受けることができます。
Copilotからレビューを受けるには、PRのReviewersでCopilotを選択します。そうすると、数十秒後にはPRにレビューコメントが表示されます。
Copilotのレビューにはいくつか種類があり、具体的なコードを提案するコメント、コードに対する指摘を行うコメント(指摘とnitsレベルのもの)があります。
Copilotのレビューコメントに対してコメントやリアクションをすることができますが、Copilotにはフィードバックされません。
Copilotのレビューに対する修正を行ったあとの再レビューは、手動でReviewrsの横のアイコンをクリックする必要があります(自動的には行われません)
コードレビュー時に考慮すべき情報をCopilotに与えてカスタマイズすることができます。
.github/copilot-instructions.md
をリポジトリに追加することで、Copilotのレビューをカスタマイズできます。詳細については、「GitHub Copilot のリポジトリ カスタム命令を追加する」を参照してください。
CopilotによるPRの要約
GitHub Copilotを使ってPRの概要を生成することができます。
Copilotテキスト入力候補
こちらの機能はパブリックプレビュー段階のため、今後変更される場合があります。
Copilotのテキスト入力候補を使うと、AIで生成されたオートコンプリートを使ってPRの説明を素早く正確に記述することができます。
GitHub Copilot Extensions
Copilot Chatの機能を拡張する機能で、開発者は外部ツール、サービス、カスタム動作などをCopilot Chatに組み込むことができます。
例えば、以下のような機能を追加できます。
- サードパーティのAIモデルを使ってコードの提案を行う
- サードパーティのドキュメントサービスやデータサービスのクエリを実行して、特定のトピックスに関する情報を見つける
- メッセージボードへの投稿や外部システム内のデータの更新などのアクションを実行する
Copilot Chat Extensionsは、GitHub Appsを使用して構築されるため、クロスプラットフォームでの互換性が担保されています。
より詳しい情報については、こちらをご覧ください。
公開範囲
Copilot Chat Extensionsは、公開、非公開、GitHub Marketplaceへの登録等、Extensionの公開範囲を適切に設定することができます。
スキルセットとエージェント
スキルセットとエージェントを使うことで外部サービスとAPIをCoplilot Chatに統合することができます。
スキルセットは最小限のセットアップで特定のタスク(データの取得や単純なタスクの実行など)を実行することができます。
エージェントは、リクエストの処理方法とレスポンスの生成方法を詳細に制御することができます。
コンテキストの受け渡し
GitHub Appの設定で、
Copilot Editor Context
のアクセス許可に対して
Read-Only
アクセスレベルを有効にすると、現在開いているファイルなどのコンテキストをCopilot Extensionでエディタから受け取ることができます。
Copilot Edits
Copilot EditsはVisual Studio Code、Visual Studio、JetBrains等のIDEで利用できます。
1つのCopilot Chatのプロンプトから複数のファイルに変更を加えるには、Copilot Editsを利用します。
Copilot Editsのモード
Copilot Editsには、編集モードとエージェントモードの2つのモードがあります。
編集モードはVS CodeとJetBrainsのIDEでのみ使用できます。
Copilotから提案される編集をより詳細に制御する場合には、編集モードを使います。Copilotが変更するファイルを選び、コンテキストを提供し、提案された編集を受けれるかを選択します。
Copilotが自律的に編集できるようにする場合には、エージェントモードを使います。Copilotがどのファイルに変更を加えるかを決定し、コードの変更とターミナルコマンドを提供し、完了するまでやり取りを繰り返します。
Copilotのカスタム指示
十分なコンテキストを提供することにより、個人の好み、チームの作業方法、使用するツール、プロジェクトの詳細などに合わせてカスタマイズされたチャットの回答を得ることができます。
カスタマイズ方法についてはこちらをご覧ください。
GitHub DesktopでのCopilot
プロジェクトの変更に基づき、GitHub DesktopでのCopilotを使ってコミットメッセージと説明を自動生成します。
Copilot Spaces
コード、ドキュメント、仕様などをコンテンツのスペースで一元管理することで、特定のタスクに沿ったコンテキストでCopilotの回答を得ることができます。
こちらは現在パブリックプレビューとなっています。詳細についてはこちらをご覧ください。
Copilotナレッジベース
Copilotとのチャットのコンテキストとして使用するドキュメントの作成と管理を行います。
Copilot Chat in GitHubかVS Codeで質問するときに、質問のコンテキストとしてナレッジベースを指定できます。
こちらはCopilot Enterpriseのみ利用できます。
GitHub Spark
GitHub Sparkを使うと、やりたいことを自然言語で記述することで、データストレージ、AI機能、GitHub認証などが組み込まれたフルスタックのWebアプリをフルマネージドランタイムにデプロイできます。
SparkはGitHubとシームレスに統合されているため、GitHub codespaceとCopilotを使ってSparkを開発できます。
こちらはパブリックプレビューとなっており、詳細はこちらをご覧ください。
コマンドラインでCopilotを動かしてみる
コマンドラインでCopilotを動かすためには、
gh
コマンドとCopliot拡張機能をインストールし、GitHub CLIアカウントで認証を行う必要があります。
ログインはWebを開いて行うか、Personal access tokenを発行してそれを使うかの2種類の方法があります。
gh
コマンドのインストールは
brew
などで行えます。
Copilot拡張機能をインストールする
gh
コマンドをインストールしたら、GitHub CLIアカウントの認証を行います。
1 | gh auth login |
以下のように対話型で実行していきます(今回は、Webブラウザでログインしました)
1 2 3 4 5 6 7 8 9 10 11 | % gh auth login ? What is your preferred protocol for Git operations on this host? HTTPS ? Authenticate Git with your GitHub credentials? Yes ! First copy your one-time code: A5C0-3D23 Press Enter to open https://github.com/login/device in your browser... ✓ Authentication complete. - gh config set -h github.com git_protocol https ✓ Configured git protocol ✓ Logged in as XXXX |
こうすると、ブラウザが立ち上がり、ブラウザ上でワンタイムコードを入力し、画面の指示に従って進めていくと、ログインすることができます。
ログインが済んだら、Copilot拡張機能をインストールします。
1 | gh extension install github/gh-copilot |
これで、コマンドライン上でCopilotが使えるようになりました。
ちなみに、Copilot拡張機能の更新は、以下のコマンドで行えます。
1 | gh extension upgrade gh-copilot |
Copilotのコマンド一覧
Copilotのコマンドのヘルプを見てみると、
alias
、
config
、
explain
、
suggest
の4つのコマンドがあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | % gh copilot -h Your AI command line copilot. Usage: copilot [command] Examples: $ gh copilot suggest "Install git" $ gh copilot explain "traceroute github.com" Available Commands: alias Generate shell-specific aliases for convenience config Configure options explain Explain a command suggest Suggest a command Flags: -h, --help help for copilot --hostname string The GitHub host to use for authentication -v, --version version for copilot Use "copilot [command] --help" for more information about a command. |
エイリアスの作成
alias
コマンドは、
gh copilot
コマンドを呼び出すためのオプションのシェル固有のエイリアスと関数を生成します。これにより、キーストロークを減らしてコマンドの実行が楽になります。
使用例は以下の通りです。
1 2 | # Add aliases to Zsh configuration $ echo 'eval "$(gh copilot alias -- zsh)"' >> ~/.zshrc |
Copilotの設定の変更
config
コマンドは、オプションの分析データ送信などの設定を変更します。
1 | gh copilot config |
このコマンドを実行すると、対話型で設定を変更することができます。
1 2 3 4 | ? What would you like to configure? [Use arrows to move, type to filter] > Optional Usage Analytics Default value for confirming command execution Exit |
コマンドの説明の取得
explain
コマンドは、入力したコマンドについて自然言語で説明します。
使用例は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | % gh copilot explain 'git log --oneline --graph --decorate --all' Welcome to GitHub Copilot in the CLI! version 1.1.1 (2025-06-17) I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency Explanation: • git log is used to show the commit logs. • --oneline formats the output to show each commit on a single line. • --graph visually represents the commit history as a graph in the output. • --decorate adds information about branches and tags next to the respective commits. • --all shows the commit history for all branches, not just the current one. |
コマンドの提案の取得
suggest
コマンドは、Copilotに対して自然言語で指示を与え、それに対するコマンドの提案を受けることができます。
使用例は以下のとおりです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | % gh copilot suggest Welcome to GitHub Copilot in the CLI! version 1.1.1 (2025-06-17) I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency ? What kind of command can I help you with? [Use arrows to move, type to filter] > gh command ? What would you like the gh command to do? > gh auth Suggestion: gh auth login ? Select an option > Explain command Explanation: • gh auth login is a command used to authenticate your GitHub CLI (gh) with your GitHub account. • The command initiates an interactive process where you can choose your preferred authentication method: • You can authenticate via a web browser or by providing a personal access token. • Additional options may include selecting the GitHub.com or GitHub Enterprise Server instance. • You can follow the prompts to complete the authentication process. ? Select an option [Use arrows to move, type to filter] > Copy command to clipboard Explain command Execute command Revise command Rate response Exit |
gh copilot suggest
コマンドを引数を与えないで実行すると、対話型で指示を与えることができます。
また、以下のように引数を与えて実行することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | gh copilot suggest -t gh "Create pull request" Welcome to GitHub Copilot in the CLI! version 1.1.1 (2025-06-17) I'm powered by AI, so surprises and mistakes are possible. Make sure to verify any generated code or suggestions, and share feedback so that we can learn and improve. For more information, see https://gh.io/gh-copilot-transparency Suggestion: gh pr create --fill ? Select an option > Explain command Explanation: • gh pr create is used to create a new pull request using the GitHub CLI. • --fill automatically fills in the title and body of the pull request with the default values based on the current branch and commits. • You can add other options such as --base to specify the base branch or --draft to create a draft pull request. • For more information about available options, you can use gh pr create --help. ? Select an option [Use arrows to move, type to filter] > Copy command to clipboard Explain command Execute command Revise command Rate response Exit |
さいごに
GitHub Copilotの機能の一覧について、それぞれがどのような機能なのか大まかに説明し、その中で、コマンドライン上でのCopilotの利用を実際に試してみました。
Copilotは、他のAIエージェントやコーディングツールと比べて安価に利用できるので、まずはこれをもっと活用できるようにしていきたいと思います。