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 sie während eines Auftrags installieren und aus Workflowschritten aufrufen können.
Verwenden von Copilot CLI in einem Actions-Workflow
Sie können einen Auftrag in einem GitHub Actions Workflow definieren, der Copilot CLI auf dem Runner installiert, es authentifiziert, im programmgesteuerten Modus ausführt und dann die Ergebnisse behandelt. 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. Installieren: 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. 1. Führen Sie Copilot CLI aus: Rufen Sie Copilot CLI mit einer Aufforderung auf, die die Aufgabe beschreibt, die Sie automatisieren möchten.
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 workflow_dispatch dem Trigger können Sie den Workflow manuell über die Registerkarte "Aktionen " Ihres Repositorys auf GitHubausführen, was beim Testen von Änderungen an ihrer Eingabeaufforderung oder Workflowkonfiguration hilfreich ist.
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 so ein, dass Copilot CLI auf Ihr Repository zugreifen und auf dem Aktionsläufer ausgeführt werden können. Dies ermöglicht es Copilot CLI, den Repository-Kontext bei der Generierung der täglichen Zusammenfassung zu analysieren.
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 es als Befehl ausführen kann. Sie können GitHub Copilot-CLI mit einer unterstützten Installationsmethode installieren. Eine vollständige Liste der Installationsoptionen finden Sie unter Installieren von GitHub Copilot CLI.
In diesem Beispiel installiert der Workflow GitHub Copilot-CLI global mit npm.
- 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
Damit Copilot CLI auf einem Actions-Runner ausgeführt werden kann, müssen Sie ein GitHub Benutzerkonto mit einer gültigen Copilot Lizenz authentifizieren.
**Schritt 1: Erstellen Sie ein personal access token (PAT) mit der Erlaubnis "Copilot Requests":**
-
Gehen Sie zu Ihren persönlichen Einstellungen, um eine fine-grained personal access token zu erstellen: github.com/settings/personal-access-tokens/new.
-
Erstellen Sie einen neuen PAT mit der Berechtigung "Copilot Requests".
-
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 verschiedene spezielle Umgebungsvariablen zur Authentifizierung. In diesem Beispiel verwendet der Workflow COPILOT_GITHUB_TOKEN, der spezifisch für Copilot CLI ist und es Ihnen ermöglicht, unterschiedliche Berechtigungen für Copilot festzulegen, als sie andernorts mit der integrierten Umgebungsvariable GITHUB_TOKEN verwendbar sind.
- 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ühre Copilot CLI aus
Verwenden Sie copilot -p PROMPT [OPTIONS], um die CLI programmgesteuert auszuführen und zu beenden, sobald der Befehl beendet ist.
Die CLI druckt die Antwort auf die Standardausgabe, die im Protokoll für die Ausführung des Aktionsworkflows aufgezeichnet 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 Copilot das 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, eine generierte Zusammenfassung in eine Datei auf dem Runner zu schreiben. -
`--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)