【アドベントカレンダー2025】Copilot/VSCode活用:外部システム連携と自動化

はじめに: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では非推奨です。)

設定手順:

  1. エージェントの起動と鍵の登録
        eval "$(ssh-agent -s)"
        ssh-add ~/.ssh/【秘密鍵ファイル名】
`ssh-add -l` で鍵が登録されていることを確認してください。
  1. configファイルの設定 ~/.ssh/config に以下の設定を追記します。
        Host ■.■.■.*
          ForwardAgent yes

これにより、Copilotがパスフレーズなしでリモートサーバーへアクセスし、開発認証などをスムーズに行えるようになります。

実践例:自律的なログ調査と修正

この環境が整うと、チャットで「このバッチを実行してエラーログを確認して」と指示するだけで、Copilotは以下を自律的に行います。

  1. バッチを実行
  2. ログファイルを確認
  3. エラーがあればコードを修正して再実行 実際に、OSやPHPのバージョンが異なる環境への移行作業(EOSL対応)において、実行・修正のサイクルを自動化できた事例もあります。

vscodeの画面

実践例:環境構築

  • 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連携は、開発者の手作業を大幅に削減できる可能性を持っています。ぜひ試してみてください。


この文章の賞味期限は公開後6ヶ月間、消費期限は公開後1年間を想定しています。
公開後はお早めにお召し上がりください。