Skip to main content

Konfigurieren Ihres Copilot-Agents für die Kommunikation mit GitHub

Hier erfahren Sie, wie Sie mit Ihrem Copilot agent Payloads überprüfen und Ressourcen aus GitHub abrufen können.

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.