Note
GitHub Copilot Extensions befinden sich in der public preview und können noch geändert werden.
Voraussetzungen
Bevor Sie Ihren Copilot agent für die Kommunikation mit GitHub konfigurieren, sollten Sie verstehen, wie Ihr Copilot agent mit der Copilot-Plattform kommuniziert. Weitere Informationen finden Sie unter Konfigurieren Ihres Copilot-Agents für die Kommunikation mit der Copilot-Plattform.
Überprüfen, ob Payloads von GitHub stammen
Bevor Ihr Copilot agent mit der Verarbeitung einer Anforderung beginnt, sollten Sie überprüfen, ob die Anforderung von GitHub stammt und für Ihren Agent vorgesehen ist. Alle Agentanforderungen haben die Header Github-Public-Key-Identifier
und Github-Public-Key-Signature
. Vergleichen Sie zum Überprüfen der Signatur für eine bestimmte Anforderung die Signatur im Header Github-Public-Key-Signature
mit einer signierten Kopie des Anforderungstexts anhand des unter https://api.github.com/meta/public_keys/copilot_api aufgeführten aktuellen öffentlichen Schlüssels.
Weitere Details und Beispiele für die Signaturüberprüfung in bestimmten Sprachen finden Sie im github-technology-partners/signature-verification
-Repository.
Abrufen von Ressourcen aus der GitHub-API
Anforderungen an Ihren Copilot agent erhalten einen X-Github-Token
-Header. Dieser Header enthält ein API-Token, das eingesetzt kann, um Ressourcen aus der GitHub-API im Namen des Benutzers abzurufen, der mit Ihrem Agent interagiert. Die Berechtigungen dieses Tokens bestehen aus der Überschneidung zwischen den eigenen Berechtigungen des Benutzers und den Berechtigungen, die Ihrer GitHub App-Installation gewährt werden.
Ein Beispiel für eine möglichen Einsatz des X-Github-Token
finden Sie im folgenden Codebeispiel:
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
}
Mehr zum Arbeiten mit der GitHub-API erfahren und die offiziellen Software Development Kits (SDKs) erkunden können Sie in der octokit
-Organisation.