Skip to main content

Настройка агента Copilot для взаимодействия с GitHub

Узнайте, как проверить полезные данные и получить ресурсы из GitHub с помощью Copilot agent.

Необходимые компоненты

Проверка наличия полезных данных из GitHub

Прежде чем ваш Copilot agent начнет обработку запроса, необходимо убедиться, что запрос поступил из GitHub, и что он предназначен для вашего агента. Все запросы агента содержат X-GitHub-Public-Key-Identifier заголовки и X-GitHub-Public-Key-Signature заголовки. Чтобы проверить подпись для конкретного запроса, сравните подпись в X-GitHub-Public-Key-Signature заголовке с подписанной копией текста запроса, используя текущий открытый ключ, указанный в https://api.github.com/meta/public_keys/copilot_apiсписке.

Дополнительные сведения и примеры проверки подписи на определенных языках см. в репозитории github-technology-partners/signature-verification .

⚠️Заметка: В настоящее время мы отправим повторяющиеся пары этих заголовков. Один набор имеет префикс Github-Public-...; другой имеет X-GitHub-Public.... Ранее к 31 марта 31 марта** будет использоваться закрытие**. Обновите соответствующие проверки до правильного префикса (X-GitHub-Public...) к тому же.

Получение ресурсов из API GitHub

Запросы к Copilot agent получат X-GitHub-Token заголовок. Этот заголовок содержит маркер API, который можно использовать для получения ресурсов из API GitHub от имени пользователя, взаимодействующего с агентом. Разрешения этого маркера перекрываются собственными разрешениями пользователя и разрешениями, предоставленными для установки 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
}

Дополнительные сведения о работе с API GitHubи изучение официальных пакетов средств разработки программного обеспечения (SDK) см. в octokit организации.