12k
All articles

GitHub Copilot Extensions を始めよう

GitHub Copilot Extensions のインストール、Node.js での Hello World エージェント構築、VS Code 拡張機能と MCP サーバーの選択方法を紹介する。

OpenReplay Team
OpenReplay Team
GitHub Copilot Extensions を始めよう

GitHub Copilot Extensions は、外部ツールやサービスを Copilot Chat に直接統合することで、開発者の作業方法を変革します。複数のアプリケーションを切り替える代わりに、IDE や GitHub.com 内で自然言語による会話を通じて、データベースのクエリ、デプロイの監視、エラーのデバッグなどを実行できるようになりました。

重要なポイント

  • GitHub Copilot Extensions は外部ツールを Copilot Chat に直接統合し、シームレスなワークフローを実現
  • GitHub App ベースの拡張機能は 2025 年 11 月までに廃止予定、VS Code 拡張機能は引き続きサポート
  • 拡張機能の構築には、エンドポイントのセットアップ、GitHub App の設定、Server-Sent Events の処理が必要
  • Docker、MongoDB、Microsoft などの主要パートナーが既に GitHub Marketplace で拡張機能を提供

GitHub Copilot Extensions とは?

これらの拡張機能は、既存のワークフローとシームレスに統合されます。問題をデバッグする際、エラー監視には Sentry、データベースクエリには DataStax、デプロイには Azure を呼び出すことができ、すべてコードエディタを離れることなく実行できます。Docker、MongoDB、Stripe、Microsoft などの主要パートナーは、既に GitHub Marketplace で利用可能な拡張機能を構築しています。

重要:廃止スケジュール

覚えておくべき重要な日付:

  • 2025 年 9 月 23 日: 新しい GitHub App ベースの Copilot Extensions の作成が不可能に
  • 2025 年 11 月 10 日: 既存のすべての GitHub App ベースの拡張機能が動作停止

VS Code Copilot Extensions は影響を受けず、引き続きサポートされます。今日新しいプロジェクトを開始する場合は、VS Code 拡張機能の構築、または長期的なソリューションとして Model Context Protocol (MCP) サーバーの検討をお勧めします。

GitHub Marketplace から拡張機能をインストールする

既存の拡張機能を使い始めるには、わずか数分で完了します:

  1. GitHub Marketplace で利用可能な拡張機能を閲覧
  2. 選択した拡張機能の「Install」をクリック
  3. 必要な権限を付与
  4. Copilot Chat で @ に続けて拡張機能名を入力してアクセス

例えば、@sentry と入力するとエラーログを分析でき、@docker はコンテナのビルドとデプロイを支援します—すべて自然言語コマンドで実行できます。

Hello World 拡張機能を構築する

最小限の Hello World Extension を作成して、コアコンセプトを理解しましょう。この例では、Node.js と Copilot Extensions Preview SDK を使用します。

ステップ 1: エンドポイントをセットアップする

import { verifyAndParseRequest, createTextEvent, createDoneEvent } from "@copilot-extensions/preview-sdk";
import express from 'express';

const app = express();
app.use(express.text());

app.post("/", async (req, res) => {
  // Verify the request is from GitHub
  const signature = req.headers["github-public-key-signature"];
  const keyID = req.headers["github-public-key-identifier"];
  const token = req.headers["x-github-token"];
  
  const { isValidRequest, payload } = await verifyAndParseRequest(
    req.body,
    signature,
    keyID,
    { token }
  );
  
  if (!isValidRequest) {
    return res.status(401).send("Unauthorized");
  }
  
  // Send response using server-sent events
  res.setHeader("Content-Type", "text/event-stream");
  
  // Simple Hello World response
  res.write(createTextEvent("Hello from my Copilot Extension! 👋"));
  res.write(createDoneEvent());
  res.end();
});

app.listen(3000);

ステップ 2: GitHub App を設定する

  1. Settings → Developer settings → GitHub Apps に移動
  2. 以下の設定で新しい GitHub App を作成:
    • Webhook URL: サーバーエンドポイント(ローカルテストには ngrok を使用)
    • Permissions: 「Copilot Chat」を読み取り専用に設定
    • Copilot settings: App Type を「Agent」に設定

ステップ 3: 拡張機能をテストする

インストール後、Copilot Chat で拡張機能をテスト:

  • GitHub.com 上
  • VS Code 内
  • Visual Studio 内

@your-extension-name に続けて任意のメッセージを入力します。チャットに「Hello World」レスポンスが表示されます。

覚えておくべき重要な概念

リクエストの検証: SDK の verifyAndParseRequest 関数を使用して、受信リクエストを常に検証します。これにより、リクエストが確実に GitHub から送信されたものであることを保証します。

Server-Sent Events: Copilot Extensions はストリーミングレスポンスに SSE を使用します。これにより、チャットインターフェースでリアルタイムの段階的な更新が可能になります。

トークン管理: x-github-token ヘッダーはユーザーコンテキストを提供します。Octokit と併用して、ユーザーに代わって GitHub API にアクセスできます。

次のステップ

まず、GitHub Marketplace で既存の拡張機能を探索して、一般的なパターンとユースケースを理解しましょう。本番環境用の拡張機能については、以下を検討してください:

  • 適切なエラーハンドリングの実装
  • 複雑な操作のための関数呼び出しの追加
  • 組織の内部 API との統合
  • インテリジェントなレスポンスのための Copilot LLM API の使用

廃止スケジュールを考慮すると、VS Code Copilot Extensions は新規開発において最も将来性のある選択肢です。エコシステムは急速に進化を続けており、MCP サーバーが次世代の拡張機能アーキテクチャとして台頭しています。

まとめ

パートナー拡張機能をインストールする場合でも、カスタム統合を構築する場合でも、GitHub Copilot Extensions は開発者がツールと対話する方法を根本的に変え、コンテキストの切り替えなしにフロー状態を維持し、生産性を保ちます。GitHub App ベースの拡張機能の廃止が近づいているため、長期的なソリューションとして VS Code 拡張機能や MCP サーバーを検討する絶好の機会です。

よくある質問

2025 年 9 月以降も新しい GitHub App ベースの Copilot Extensions を作成できますか?

いいえ、2025 年 9 月 23 日以降、新しい GitHub App ベースの拡張機能は作成できません。既存のものは 2025 年 11 月 10 日まで動作し続けます。代わりに VS Code 拡張機能の構築や MCP サーバーの検討をお勧めします。

Copilot Extension 用の GitHub App にはどのような権限が必要ですか?

GitHub App には、Copilot Chat を読み取り専用権限に設定し、App Type を Agent として設定する必要があります。追加の権限は、拡張機能がアクセスする必要がある GitHub API によって異なります。

開発中に Copilot Extension をローカルでテストするにはどうすればよいですか?

ngrok などのトンネリングサービスを使用して、ローカルサーバーをインターネットに公開します。GitHub App の Webhook URL を ngrok URL で設定し、Copilot Chat で @ に続けて拡張機能名を入力してテストします。

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — self-hosted, with full data ownership.

Star on GitHub

We use cookies to improve your experience. By using our site, you accept cookies.