跳至主要内容

配置您的Copilot代理与GitHub通信

学习如何使用您的Copilot代理验证GitHub的有效载荷并获取资源。

注意

GitHub Copilot扩展程序处于公开预览阶段,如有更改,恕不另行通知。

先决条件

在配置您的Copilot代理与GitHub通信之前,您应该了解您的Copilot代理如何与Copilot平台通信。请参阅“配置您的Copilot代理与Copilot平台通信”。

验证有效载荷是否来自GitHub

在您的Copilot代理开始处理请求之前,您应该验证该请求是否来自GitHub,以及它是否面向您的代理。所有代理请求都包含Github-Public-Key-IdentifierGithub-Public-Key-Signature标头。要验证特定请求的签名,请将Github-Public-Key-Signature标头中的签名与使用https://api.github.com/meta/public_keys/copilot_api中列出的当前公共密钥对请求正文进行签名的副本进行比较。

有关特定语言中签名验证的更多详细信息和示例,请参阅github-technology-partners/signature-verification存储库。

从GitHub API获取资源

对您的Copilot代理的请求将接收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组织。