Skip to main content
Skip to content

Server-zu-Server-Authentifizierung

Verwenden Sie ein kurzlebiges Installationszugriffstoken, wenn ein Dienst Copilot-Anfragen im Namen einer Organisation ohne die Anmeldeinformationen eines Benutzers stellen muss. Verwenden Sie in GitHub Actions stattdessen die integrierte GITHUB_TOKEN.

GitHub Actions

Erteilen Sie für Workflows in einem organisationseigenen Repository dem integrierten Token die Berechtigung, Copilot-Anfragen zu stellen:

permissions:
  contents: read
  copilot-requests: write

jobs:
  copilot:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: your-application
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Die Richtlinie Verwendung von Copilot CLI zulassen, die der Organisation in Rechnung gestellt wird muss aktiviert sein. Dieser Ansatz benötigt weder eine GitHub App noch ein gespeichertes Authentifizierungsgeheimnis. Ausführliche Informationen findest du unter Verwenden von Copilot CLI in GitHub Actions mit GITHUB_TOKEN.

Andere Dienste und CI-Systeme

Für Dienste außerhalb GitHub Actions:

  1. Erstellen Sie eine GitHub-App mit der Organisationsberechtigung Copilot Requests, die auf Schreibgeschützt festgelegt ist.

  2. Installieren Sie sie für die Organisation, der die Nutzung zugeordnet und in Rechnung gestellt werden soll.

  3. Generieren eines Installationszugriffstokens für eine GitHub App mit der Copilot-Berechtigung:

    {
      "permissions": {
        "organization_copilot_requests": "read"
      }
    }
    
  4. Übergeben Sie das resultierende ghs_ Token an die SDK-Option gitHubToken, github_token oder eine entsprechende Option. Legen Sie ihn für einen vorhandenen Laufzeit-URI stattdessen als COPILOT_GITHUB_TOKEN für den Laufzeitprozess fest.

Die Organisation muss für Copilot-Anfragen von GitHub App-Installationen aktiviert sein. Installationstoken laufen nach einer Stunde ab.

Hinweis

Es ist kein angemeldeter Benutzer erforderlich. useLoggedInUser: false deaktiviert die automatische Erkennung von Anmeldeinformationen, einschließlich Umgebungsvariablentoken wie COPILOT_GITHUB_TOKEN, also übergeben Sie das Installationstoken über die explizite Tokenoption des SDK.

Runtime konfigurieren

In den folgenden Beispielen wird davon ausgegangen, dass das gemintete Token in INSTALLATION_TOKEN ist. Sie übergeben es nur an die Child-Runtime und deaktivieren Fallback auf gespeicherte Benutzeranmeldeinformationen.

TypeScript
import { CopilotClient, RuntimeConnection } from "@github/copilot-sdk";

const token = process.env.INSTALLATION_TOKEN;
if (!token) throw new Error("INSTALLATION_TOKEN is required");

const client = new CopilotClient({
    connection: RuntimeConnection.forStdio(),
    gitHubToken: token,
    useLoggedInUser: false,
});

Verwenden Sie für prozessinterne FFI dieselbe Tokenoption; Umgebungsvariablentoken im Hostprozess werden ignoriert, wenn useLoggedInUser false ist. Legen Sie für einen vorhandenen Laufzeit-URI COPILOT_GITHUB_TOKEN für diesen Laufzeitprozess fest.

Aktualisierungs-Token

Erstellen Sie vor Ablauf des aktuellen Tokens ein neues Installationstoken. Starten Sie für einen untergeordneten Prozess den SDK-Client mit dem neuen Token neu. Starten Sie für eine in-Process- oder vorhandene Laufzeit die Hostlaufzeit mit dem neuen Token neu.

Billing

Die Verwendung wird der Organisation zugeordnet und in Rechnung gestellt, die die GitHub App-Installation besitzt.

Troubleshooting

SymptomPrüfen
401 UnauthorizedDas Token ist möglicherweise abgelaufen oder ungültig. Erstelle ein neues Installations-Token.
403 mit dem Hinweis, dass Copilot Anforderungen mit GitHub App-Installationszugriffstoken nicht aktiviert sind.Bestätigen Sie, dass die Organisation GitHub App-Installationsauthentifizierung für Copilot unterstützt.
No GitHub OAuth token or Copilot HMAC key provided oder Not authenticatedBestätigen Sie, dass das Installationstoken über die explizite Tokenoption des SDK übergeben wird. Mit useLoggedInUser: false ignoriert die Laufzeit COPILOT_GITHUB_TOKEN und andere Umgebungsvariablen-Token.
403 Forbiddenaus der Copilot-APIVergewissern Sie sich, dass die Installation über die Copilot Requests-Berechtigung der Organisation verfügt, und generieren Sie dann ein neues Token.
Das angeforderte Modell ist nicht verfügbar.Vergewissern Sie sich, dass die Richtlinie der Organisation die Verwendung von Copilot zulässt und die gebündelte Laufzeit es unterstützt.
Falsches Konto belastetBestätigen Sie, dass die Installation zur beabsichtigten Organisation gehört.

Weiterführende Lektüre