Note
GitHub Copilot Extensions 为 公共预览版,可能随时更改。
先决条件
在配置 Copilot agent 与 GitHub 通信之前,应了解 Copilot agent 如何与 Copilot 平台通信。 请参阅“配置 Copilot 代理以与 Copilot 平台通信”。
验证有效负载是否来自 GitHub
在 Copilot agent 开始处理请求之前,应验证请求是否来自 GitHub,以及该请求是否适用于代理。 所有代理请求都包含 Github-Public-Key-Identifier
和 Github-Public-Key-Signature
标头。 要验证特定请求的签名,请使用 https://api.github.com/meta/public_keys/copilot_api 中列出的当前公钥,将 Github-Public-Key-Signature
标头中的签名与请求正文的签名副本进行比较。
有关特定语言签名验证的更多详细信息和示例,请参阅 github-technology-partners/signature-verification
存储库。
从 GitHub API 中提取资源
对 Copilot agent 的请求将收到 X-Github-Token
标头。 此标头包含一个 API 令牌,可用于代表与代理交互的用户从 GitHub 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
组织。