
はじめに:Copilotで「やれていること」
ぐるなびで Principal Tech Lead をしている大文字亮(ダイモンジリョウ)です。 本記事では、VSCode上のGitHub Copilotと外部システムを連携させ、開発業務を効率化・自動化する手法について紹介します。 Copilotは各種APIやCLIの操作方法を学習しているため、適切な権限と指示を与えることで、単なるコード補完に留まらない広範なタスクを実行可能です。
例えば、現在、私の環境では以下のような連携と自動化を実現できています。
- SSH連携: ログ調査やサーバー上のインストール作業、バッチ実行などを自律的に実施。
- ブラウザ操作: ChromiumをCLI経由で操作し、画面遷移を含むE2E的な試験やスクリーンショット取得を実施。
- GitLab連携: MCP(Model Context Protocol)が利用できない環境でも、API経由でMR(Merge Request)の作成や履歴調査を実施。
- GitHub連携: GitHub CLI (
gh) を操作し、リポジトリ作成、PR作成、CI/CD設定などを実施。 - AWS連携: AWS CLIを操作し、環境構築、マイグレーション、設定内容の調査確認を実施。
- Jira/Confluence連携: MCP(Model Context Protocol)が利用できない環境でも、アクセストークンを用いたAPI経由での接続により、仕様書や作業手順の取得、チケット内容の確認が可能。
本稿では、この中でも特に効果の高いSSH連携とChromium連携について詳しく解説します。
CopilotとSSHの連携
Copilotは通常、SSHでログインした後のターミナルセッションを継続的に保持することができません。しかし、「ワンショット実行」と「Agent Forwarding」を組み合わせることで、実用的なサーバー操作が可能になります。
1. SSHのワンショット実行
CopilotにSSH経由での操作をさせる場合、接続を維持しようとするのではなく、1回のコマンドで完結する「ワンショット実行」を行わせるのがポイントです。
コマンド例:
ssh -o StrictHostKeyChecking=accept-new -o ConnectTimeout=10 <host> "hostname; whoami; date"
この挙動をCopilotに徹底させるため、copilot-instructions.md やチャットでの指示に「sshはワンショットで実行」というルールを明記しておくとスムーズに動作します。
2. Agent Forwarding(ssh-agentの活用)
ワンショット実行のたびにパスフレーズを入力するのは現実的ではありません。そこで、Agent Forwarding を設定します。
(以下の操作はWindowsの場合はvscodeのターミナルを最新版git bash(git for windows)に設定しておいてください。WSLやPSやCMDでは非推奨です。)
設定手順:
- エージェントの起動と鍵の登録
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/【秘密鍵ファイル名】
`ssh-add -l` で鍵が登録されていることを確認してください。
- configファイルの設定
~/.ssh/configに以下の設定を追記します。
Host ■.■.■.*
ForwardAgent yes
これにより、Copilotがパスフレーズなしでリモートサーバーへアクセスし、開発認証などをスムーズに行えるようになります。
実践例:自律的なログ調査と修正
この環境が整うと、チャットで「このバッチを実行してエラーログを確認して」と指示するだけで、Copilotは以下を自律的に行います。
- バッチを実行
- ログファイルを確認
- エラーがあればコードを修正して再実行 実際に、OSやPHPのバージョンが異なる環境への移行作業(EOSL対応)において、実行・修正のサイクルを自動化できた事例もあります。

実践例:環境構築
- Confluenceに記載された手順書に従って、サーバ上でのミドルウエアのインストール・設定等の環境構築
CopilotとChromiumの連携
Copilotにブラウザ操作をさせることで、Webアプリケーションの動作確認やテストを自動化できます。ここでは Chrome DevTools Protocol を利用します。
この挙動をCopilotに徹底させるため、copilot-instructions.md やチャットでの指示に「WEBページはChromiumで確認」等のルールを明記しておくとスムーズに動作します。
CLIによるブラウザ操作
Chrome DevTools Protocolパッケージをインストールすると、CLIコマンドでブラウザを制御できるようになります。CopilotはこのCLI操作を理解しているため、以下の操作が可能です。
- 画面遷移
- フォーム入力
- HTMLの取得
- スクリーンショットの撮影
Copilotは取得したHTMLやスクリーンショットの内容を読み取ることができるため、「画面に表示された内容に基づいて次のアクションを決める」といった判断も可能です。
Chromiumの推奨
普段使いのGoogle ChromeをCopilotに操作させると、ユーザー自身のブラウジングと干渉してしまい不便です。そのため、Copilot用の操作ブラウザとして Chromium を別途インストールし、そちらを使わせることを推奨します。
実践例:E2Eテストの自動化
この仕組みを活用することで、例えば「Confluenceに記載されたテスト項目書やログイン方法を取得し、管理画面にログインして動作確認を行う」といった、複数のシステムと画面遷移をまたぐE2E(End-to-End)的な試験を自動化できるようになります。
まとめ
Copilotは単なるコーディングアシスタントにとどまらず、CLIやAPIを介してサーバーやブラウザを直接操作する「オペレーター」としても機能します。特にSSHのワンショット実行やChromium連携は、開発者の手作業を大幅に削減できる可能性を持っています。ぜひ試してみてください。
