Необходимые компоненты
Проверка наличия полезных данных из 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
организации.