Note
GitHub Copilot Extensions は パブリック プレビュー 段階であり、変更される可能性があります。
前提条件
GitHub と通信するように Copilot agent を構成する前に、Copilot agent が Copilot プラットフォームと通信する方法を理解しておく必要があります。 「Copilot プラットフォームと通信するように Copilot エージェントを構成する」を参照してください。
ペイロードが GitHub から送信されていることを確認する
Copilot agent が要求の処理を開始する前に、要求が GitHub から送信されていること、およびエージェントを対象としていることを確認する必要があります。 すべてのエージェント要求には、Github-Public-Key-Identifier
ヘッダーと Github-Public-Key-Signature
ヘッダーが含まれます。 特定の要求の署名を確認するには、Github-Public-Key-Signature
ヘッダーの署名と、https://api.github.com/meta/public_keys/copilot_api に記載されている現在の公開キーを使用して、要求本文の署名済みコピーを比較します。
特定の言語での署名検証の詳細と例については、「github-technology-partners/signature-verification
」リポジトリを参照してください。
GitHub API からのリソースのフェッチ
Copilot agent への要求は、X-Github-Token
ヘッダーを受け取ります。 このヘッダーには、エージェントと対話するユーザーの代わりに GitHub API からリソースをフェッチするために使用できる API トークンが含まれています。 このトークンのアクセス許可は、ユーザー自身のアクセス許可と、GitHub App インストールに付与されるアクセス許可の重複です。
X-Github-Token
の使用方法の例については、次のコード サンプルを参照してください。
async function whoami(req) {
const response = await fetch(
// The GitHub API endpoint for the authenticated user
"https://api.github.com/user",
{
headers: {
"Authorization": `Bearer ${req.headers.get("x-github-token")}`
}
}
)
const user = await response.json()
return user
}
GitHub の API の操作の詳細と、公式のソフトウェア開発キット (SDK) については、「octokit
組織」を参照してください。