Skip to main content

Server-zu-Server-Authentifizierung

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

GitHub Actions

Erteilen Sie für Workflows in einem organisationseigenen Repository die integrierte Tokenberechtigung, um Copilot Anforderungen 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: $

Die zulassungsfähige Verwendung von Copilot CLI, die der Organisationsrichtlinie in Rechnung gestellt wird, muss aktiviert sein. Dieser Ansatz benötigt keinen GitHub App- oder gespeicherten Authentifizierungsschlüssel. Ausführliche Informationen findest du unter Verwenden von Copilot CLI in GitHub Actions mit GITHUB_TOKEN.

Andere Dienstleistungen und CI-Systeme

Für Dienste außerhalb GitHub Actions:

  1. Erstellen Sie eine GitHub App mit der Copilot Anforderungs-Repositoryberechtigung auf Lese-& Schreibzugriff.

  2. Installieren Sie sie in der Organisation, die in Rechnung gestellt werden soll. Die aktuelle Copilot Berechtigungsprüfung erfordert Zugriff auf alle Repositorys.

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

    {
      "repository_ids": [123456789],
      "permissions": {
        "copilot_requests": "write"
      }
    }
    
  4. Übergeben Sie das resultierende ghs_ Token an die Laufzeit als COPILOT_GITHUB_TOKEN.

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

Warnung

Übergeben Sie kein Installationstoken über die gitHubTokenSdk-Option oder github_tokendie entsprechende Option. Diese Option gilt für Benutzertoken. Installationstoken müssen den Authentifizierungspfad der Laufzeitumgebung verwenden.

Konfigurieren der Runtime

In den folgenden Beispielen wird davon ausgegangen, dass das geprägte Token in INSTALLATION_TOKENist. Sie übergeben es nur an die untergeordnete Laufzeit und deaktivieren Fallback auf gespeicherte Benutzeranmeldeinformationen.

Codesprachen navigation

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(),
    env: {
        ...process.env,
        COPILOT_GITHUB_TOKEN: token,
    },
    useLoggedInUser: false,
});

Legen Sie für prozessinterne FFI in der Hostumgebung vor dem Laden der Laufzeit fest COPILOT_GITHUB_TOKEN . Optionen pro Clientumgebung werden nicht unterstützt. Legen Sie ihn für einen vorhandenen Laufzeit-URI für diesen Laufzeitprozess fest.

Aktualisierungs-Token

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

Billing

Die Verwendung wird dem Konto zugeordnet und in Rechnung gestellt, das die GitHub App-Installation besitzt. Verwenden Sie eine Organisationsinstallation für die Abrechnung der Organisation; Verwendung von Benutzerkontoinstallationsattributen für diesen Benutzer.

Troubleshooting

SymptomPrüfen
401 UnauthorizedBestätigen Sie, dass die Organisation GitHub App-Installationsauthentifizierung für Copilot unterstützt.
403 Resource not accessible by integration oder ein Fehler beim Erwähnen von BenutzerinformationenBestätigen Sie, dass sich das Installationstoken befindet COPILOT_GITHUB_TOKEN, nicht die explizite Tokenoption des SDK.
403 Forbiddenaus der Copilot-APIBestätigen Sie, dass die Tokenanforderung enthält repository_ids und .copilot_requests: write
403 Forbidden mit der erforderlichen TokenanforderungVergewissern Sie sich, dass die App-Installation zugriff auf alle Repositorys hat, und stellen Sie dann ein neues Token fest.
Das angeforderte Modell ist nicht verfügbar.Vergewissern Sie sich, dass die Copilot-Richtlinie der Organisation das Modell zulässt und die gebündelte Laufzeit es unterstützt.
Falsche Rechnung in Rechnung gestelltBestätigen Sie, dass die Installation zur beabsichtigten Organisation gehört.

Weiterführende Lektüre