Sie können GitHub Copilot CLI in einem GitHub Actions-Workflow ausführen, um KI-gestützte Aufgaben im Rahmen Ihres CI/CD-Prozesses zu automatisieren. Sie können beispielsweise aktuelle Repository-Aktivitäten zusammenfassen, Berichte generieren oder das Gerüst für Projektinhalte erstellen. GitHub Copilot CLI wird auf dem Actions-Runner wie jedes andere CLI-Tool ausgeführt, sodass Sie es während eines Auftrags installieren und aus Workflowschritten aufrufen können.
Verwenden Copilot CLI in einem Aktions-Workflow
Sie können einen Auftrag in einem GitHub Actions Workflow definieren, der: installiert Copilot CLI auf dem Läufer, authentifiziert ihn, führt ihn im programmgesteuerten Modus aus und behandelt dann die Ergebnisse. Der programmgesteuerte Modus wurde für Skripts und Automatisierung entwickelt und ermöglicht es Ihnen, eine Aufforderung nicht interaktiv zu übergeben.
Workflows können diesem Muster folgen: 1. Trigger: Starten Sie den Workflow in einem Zeitplan, als Reaktion auf Repositoryereignisse oder manuell. 1. Setup: Auscheckcode, Umgebung einrichten. 1. Installation: Installieren Sie GitHub Copilot CLI auf dem Runner. 1. Authentifizieren: Stellen Sie sicher, dass die CLI über die erforderlichen Berechtigungen für den Zugriff auf das Repository verfügt und Änderungen vornehmen kann.
- Führen Sie Copilot CLICopilot CLI mit einer Eingabe aus, die die zu automatisierende Aufgabe beschreibt.
Beispielworkflow
Der folgende Workflow generiert Details zu Änderungen, die heute im Standardzweig des Repositorys vorgenommen wurden, und zeigt diese Details als Zusammenfassung für den Workflow-Lauf an.
name: Daily summary
on:
workflow_dispatch:
# Run this workflow daily at 5:30pm UTC
schedule:
- cron: '30 17 * * *'
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
name: Daily summary
on:
workflow_dispatch:
# Run this workflow daily at 5:30pm UTC
schedule:
- cron: '30 17 * * *'
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
In den folgenden Abschnitten wird jeder Teil dieses Workflows erläutert.
Auslöser
In diesem Beispiel wird der Workflow täglich ausgeführt und kann auch manuell ausgelöst werden.
Mit dem workflow_dispatch-Auslöser können Sie den Workflow manuell über die Registerkarte Aktionen Ihres Repositorys auf GitHub ausführen, was nützlich ist, wenn Sie Änderungen an Ihrer Eingabeaufforderung oder Workflowkonfiguration testen.
Der schedule Trigger führt den Workflow automatisch zu einem bestimmten Zeitpunkt mithilfe der Cron-Syntax aus.
on:
# Allows manual triggering of this workflow
workflow_dispatch:
# Run this workflow daily at 11:55pm UTC
schedule:
- cron: '55 23 * * *'
on:
# Allows manual triggering of this workflow
workflow_dispatch:
# Run this workflow daily at 11:55pm UTC
schedule:
- cron: '55 23 * * *'
Konfiguration
Richten Sie den Auftrag ein, damit Copilot CLI Zugriff auf Ihr Repository hat und auf dem Actions Runner ausgeführt wird. Dadurch kann Copilot CLI der Repositorykontext analysiert werden, wenn die tägliche Zusammenfassung generiert wird.
Der permissions Block definiert den Bereich, der dem integrierten Bereich GITHUB_TOKENgewährt wird. Da dieser Workflow Repositorydaten liest und eine Zusammenfassung in die Protokolle ausgibt, benötigt er contents: read.
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
permissions:
contents: read
jobs:
daily-summary:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
Installieren
Installieren Sie Copilot CLI auf dem Runner, damit Ihr Workflow ihn als Befehl aufrufen kann. Sie können mit jeder unterstützten Installationsmethode installieren GitHub Copilot CLI . Eine vollständige Liste der Installationsoptionen finden Sie unter Installation von GitHub Copilot CLI.
In diesem Beispiel wird der Workflow global mit npm installiert GitHub Copilot CLI .
- name: Set up Node.js environment uses: actions/setup-node@v4 - name: Install Copilot CLI run: npm install -g @github/copilot
- name: Set up Node.js environment
uses: actions/setup-node@v4
- name: Install Copilot CLI
run: npm install -g @github/copilot
Authentifizieren
Um Copilot CLI auf einem Actions-Runner auszuführen, müssen Sie ein Benutzerkonto GitHub mit einer gültigen Lizenz Copilot authentifizieren.
**Step 1: Erstellen Eines personal access token (PAT) mit der Berechtigung "Copilot Anforderungen":**
-
Rufen Sie Ihre persönlichen Einstellungen auf, um einen fine-grained personal access token zu erstellen: github.com/settings/personal-access-tokens/new.
-
Erstellen Sie einen neuen PAT mit der Berechtigung "Copilot Anfragen".
-
Kopieren Sie den Tokenwert.
**Schritt 2: Speichern sie den PAT als geheimen Aktions-Repositoryschlüssel:** -
Wechseln Sie in Ihrem Repository zu "Geheime Einstellungen" > und "Variablenaktionen > ", und klicken Sie auf "Neues Repositorygeheimnis".****
-
Geben Sie dem geheimen Schlüssel einen Namen, den Sie im Workflow verwenden werden. In diesem Beispiel verwenden
PERSONAL_ACCESS_TOKENwir den Namen des geheimen Schlüssels. -
Fügen Sie den Tokenwert in das Feld "Geheim" ein, und klicken Sie auf "Geheimer Schlüssel hinzufügen".
Der Workflow legt eine spezielle Umgebungsvariable mit dem Wert des geheimen Repositoryschlüssels fest.
Copilot CLI unterstützt mehrere spezielle Umgebungsvariablen für die Authentifizierung. In diesem Beispiel verwendet der Workflow COPILOT_GITHUB_TOKEN, der spezifisch für Copilot CLI ist, und es Ihnen ermöglicht, andere Berechtigungen für Copilot zu setzen, als Sie möglicherweise an anderer Stelle mit der eingebauten Umgebungsvariable GITHUB_TOKEN verwenden.
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
- name: Run Copilot CLI
env:
COPILOT_GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
Führen Sie Copilot CLI aus.
Verwenden Sie copilot -p PROMPT [OPTIONS], um die CLI programmgesteuert auszuführen und zu beenden, sobald der Befehl beendet ist.
Das CLI gibt seine Antwort zur Standardausgabe aus, die im Datensatz für den ausgeführten Aktions-Workflow festgehalten wird. Um jedoch die Details der Änderungen leichter zugänglich zu machen, fügt dieses Beispiel diese Informationen zur Zusammenfassung für die Workflowausführung hinzu.
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
run: |
copilot -p "Review the git log for this repository and write a bullet point summary of all code changes that were made today, with links to the relevant commit on GitHub. Above the bullet list give a description (max 100 words) summarizing the changes made. Write the details to summary.md" --allow-tool='shell(git:*)' --allow-tool=write --no-ask-user
cat summary.md >> "$GITHUB_STEP_SUMMARY"
In diesem Beispiel werden nach der CLI-Eingabeaufforderung mehrere Optionen verwendet:
-
`--allow-tool='shell(git:*)'` ermöglicht das Copilot Ausführen von Git-Befehlen zum Analysieren des Repositoryverlaufs. Dies ist erforderlich, um die Zusammenfassung der letzten Änderungen zu generieren. -
`--allow-tool='write'` ermöglicht Copilot das Schreiben der generierten Zusammenfassung in eine Datei auf dem Läufer. -
`--no-ask-user` verhindert, dass die CLI zur Eingabe des Benutzers auffordert, was bei der Ausführung in einem automatisierten Workflow wichtig ist, in dem kein Benutzer auf Anforderungen für zusätzliche Eingaben reagiert.
Nächste Schritte
Nachdem Sie bestätigt haben, dass der Workflow eine Zusammenfassung der Änderungen generiert, können Sie dasselbe Muster an andere Automatisierungsaufgaben anpassen. Beginnen Sie damit, die Eingabeaufforderung zu ändern, die Sie an copilot -p PROMPT übergeben, und entscheiden Sie dann, was Sie mit der Ausgabe tun möchten. So können Sie beispielsweise Folgendes tun:
- Erstellen Sie eine Pull-Anforderung, um eine Änderungsprotokolldatei im Repository mit den Änderungen des Tages zu aktualisieren.
- Senden Sie die Zusammenfassung an die Repository-Betreuer.
Weiterführende Lektüre
-
[AUTOTITLE](/copilot/reference/copilot-cli-reference/cli-command-reference) -
[AUTOTITLE](/actions) -
[AUTOTITLE](/copilot/how-tos/copilot-cli/automate-copilot-cli/run-cli-programmatically)