
Eine GitHub Action, die die Gemini CLI aufruft.
run-gemini-cli ist eine GitHub Action, die Gemini über die Gemini CLI in deinen Entwicklungsworkflow integriert. Sie fungiert sowohl als autonomer Agent für kritische routinemäßige Programmieraufgaben als auch als bedarfsorientierter Mitarbeiter, dem du schnell Aufgaben delegieren kannst.
Verwende sie, um GitHub-Pull-Request-Reviews durchzuführen, Issues zu kategorisieren, Code-Analysen und -Modifikationen vorzunehmen und vieles mehr – und das alles im Gespräch mit Gemini (z. B. @gemini-cli behebe dieses Problem) direkt in deinen GitHub-Repositorys.
@gemini-cli /review).gh) zu interagieren.GEMINI.md-Datei in deinem Repository, um projektspezifische Anweisungen und Kontext für die Gemini CLI bereitzustellen.Starte in nur wenigen Minuten mit der Gemini CLI in deinem Repository:
Hole deinen API-Schlüssel von Google AI Studio mit großzügigen kostenlosen Kontingenten.
Speichere deinen API-Schlüssel als Secret mit dem Namen GEMINI_API_KEY in deinem Repository:
GEMINI_API_KEY, Wert: dein API-Schlüssel.Füge die folgenden Einträge zu deiner .gitignore-Datei hinzu:
# gemini-cli-Einstellungen
.gemini/
# GitHub-App-Anmeldedaten
gha-creds-*.json
Du hast zwei Möglichkeiten, einen Workflow einzurichten:
Option A: Setup-Befehl verwenden (empfohlen)
Starte die Gemini CLI in deinem Terminal:
gemini
Gib in der Gemini CLI in deinem Terminal Folgendes ein:
/setup-github
Option B: Workflows manuell kopieren
examples/workflows in das Verzeichnis .github/workflows deines Repositorys. Hinweis: Der Workflow gemini-dispatch.yml muss ebenfalls kopiert werden, da er die Ausführung der anderen Workflows auslöst.Pull-Request-Review:
@gemini-cli /review in einem bestehenden Pull-Request, um eine manuelle Überprüfung auszulösen.Issue Triage:
@gemini-cli /triage in bestehenden Issues, um eine manuelle Kategorisierung auszulösen.Allgemeine KI-Unterstützung:
@gemini-cli, gefolgt von deiner Anfrage.@gemini-cli erkläre diese Codeänderung@gemini-cli schlage Verbesserungen für diese Funktion vor@gemini-cli hilf mir, diesen Fehler zu debuggen@gemini-cli schreibe Unit-Tests für diese KomponenteDiese Action bietet mehrere vorgefertigte Workflows für verschiedene Anwendungsfälle. Jeder Workflow ist dafür ausgelegt, in das Verzeichnis .github/workflows deines Repositorys kopiert und nach Bedarf angepasst zu werden.
Dieser Workflow fungiert als zentraler Verteiler für die Gemini CLI und leitet Anfragen basierend auf dem auslösenden Ereignis und dem im Kommentar angegebenen Befehl an den entsprechenden Workflow weiter. Eine detaillierte Anleitung zur Einrichtung des Dispatch-Workflows findest du in der Dokumentation zum Gemini Dispatch-Workflow.
Diese Action kann verwendet werden, um GitHub Issues automatisch oder nach einem Zeitplan zu kategorisieren. Eine detaillierte Anleitung zur Einrichtung des Issue-Triage-Systems findest du in der Dokumentation zum GitHub Issue Triage-Workflow.
Diese Action kann verwendet werden, um Pull-Requests automatisch zu überprüfen, wenn sie geöffnet werden. Eine detaillierte Anleitung zur Einrichtung des Pull-Request-Review-Systems findest du in der Dokumentation zum GitHub PR Review-Workflow.
Diese Art von Action kann verwendet werden, um einen allgemeinen, konversationellen Gemini-KI-Assistenten in Pull-Requests und Issues zu aktivieren, der eine Vielzahl von Aufgaben ausführen kann. Eine detaillierte Anleitung zur Einrichtung des allgemeinen Gemini CLI-Workflows findest du in der Dokumentation zum Gemini Assistant-Workflow.
gcp_location: (Optional) Der Google Cloud-Standort.
gcp_project_id: (Optional) Die Google Cloud-Projekt-ID.
gcp_service_account: (Optional) Die Google Cloud-Dienstkonto-E-Mail.
gcp_workload_identity_provider: (Optional) Der Google Cloud Workload Identity Provider.
gcp_token_format: (Optional, Standard: access_token) Das Token-Format für die Authentifizierung. Setze auf "access_token", um Zugriffstoken zu generieren (erfordert ein Dienstkonto), oder auf eine leere Zeichenfolge für direktes WIF. Kann "access_token" oder "id_token" sein.
gcp_access_token_scopes: (Optional, Standard: https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/userinfo.profile) Die Zugriffsbereiche des Zugriffstokens bei Verwendung von token_format "access_token". Kommagetrennte Liste von OAuth 2.0-Bereichen.
summary: Die zusammengefasste Ausgabe der Gemini CLI-Ausführung.
error: Die Fehlerausgabe der Gemini CLI-Ausführung, falls vorhanden.
Wir empfehlen, die folgenden Werte als Repository-Variablen zu setzen, damit sie in allen Workflows wiederverwendet werden können. Alternativ kannst du sie inline als Aktions-Eingaben in einzelnen Workflows setzen oder um Repository-Level-Werte zu überschreiben.
[!WARNING] Verwende nicht die Umgebungsvariable
DEBUG, da dies dazu führt, dass die Gemini CLI hängt und auf den Node-Debugger wartet.
So fügst du eine Repository-Variable hinzu:
Details zu Repository-Variablen findest du in der GitHub-Dokumentation zu Variablen.
Du kannst die folgenden Secrets in deinem Repository festlegen:
So fügst du ein Secret hinzu:
Weitere Informationen findest du in der offiziellen GitHub-Dokumentation zum Erstellen und Verwenden von verschlüsselten Secrets.
Diese Action erfordert eine Authentifizierung sowohl bei Google-Diensten (für Gemini AI) als auch bei der GitHub-API.
Wähle die Authentifizierungsmethode, die am besten zu deinem Anwendungsfall passt:
Du kannst dich auf zwei Arten bei GitHub authentifizieren:
GITHUB_TOKEN: Für einfachere Anwendungsfälle kann die Action das von Workflow bereitgestellte Standard-GITHUB_TOKEN verwenden.Detaillierte Einrichtungsanweisungen für die Google- und GitHub-Authentifizierung findest du in der Authentifizierungsdokumentation.
Diese Action kann so konfiguriert werden, dass Telemetriedaten (Traces, Metriken und Logs) an dein eigenes Google Cloud-Projekt gesendet werden. So kannst du die Leistung und das Verhalten der Gemini CLI in deinen Workflows überwachen und wertvolle Erkenntnisse für Debugging und Optimierung gewinnen.
Detaillierte Anweisungen zum Einrichten und Konfigurieren von Observability findest du in der Observability-Dokumentation.
Die Gemini CLI kann durch Erweiterungen mit zusätzlichen Funktionen erweitert werden. Diese Erweiterungen werden aus dem Quellcode von ihren GitHub-Repositorys installiert.
Detaillierte Anweisungen zum Einrichten und Konfigurieren von Erweiterungen findest du in der Erweiterungsdokumentation.
Um die Sicherheit, Zuverlässigkeit und Effizienz deiner automatisierten Workflows zu gewährleisten, empfehlen wir dringend, unsere Best Practices zu befolgen. Diese Richtlinien decken wichtige Bereiche wie Repository-Sicherheit, Workflow-Konfiguration und Überwachung ab.
Wichtige Empfehlungen umfassen:
Eine umfassende Anleitung zum Sichern deines Repositorys und deiner Workflows findest du in unserer Best Practices-Dokumentation.
Erstelle eine GEMINI.md-Datei im Stammverzeichnis deines Repositorys, um der Gemini CLI projektspezifischen Kontext und Anweisungen bereitzustellen. Dies ist nützlich, um Codierungskonventionen, Architekturmuster oder andere Richtlinien zu definieren, denen das Modell für ein bestimmtes Repository folgen soll.
Beiträge sind willkommen! Weitere Informationen zum Einstieg findest du im Mitwirkungsleitfaden der Gemini CLI.
gemini_api_key: (Optional) Der API-Schlüssel für die Gemini-API.
gemini_cli_version: (Optional, Standard: latest) Die zu installierende Version der Gemini CLI. Kann "latest", "preview", "nightly", eine bestimmte Versionsnummer oder ein Git-Branch, -Tag oder -Commit sein. Weitere Informationen findest du unter Gemini CLI-Releases.
gemini_debug: (Optional) Aktiviert Debug-Logging und Ausgabestreaming.
gemini_model: (Optional) Das mit Gemini zu verwendende Modell.
google_api_key: (Optional) Der Vertex AI-API-Schlüssel für die Verwendung mit Gemini.
prompt: (Optional, Standard: You are a helpful assistant.) Eine Zeichenfolge, die an das --prompt-Argument der Gemini CLI übergeben wird.
settings: (Optional) Eine JSON-Zeichenfolge, die in .gemini/settings.json geschrieben wird, um die Projekt-Einstellungen der CLI zu konfigurieren.
Weitere Details findest du in der Dokumentation zu Einstellungsdateien.
use_gemini_code_assist: (Optional, Standard: false) Gibt an, ob Code Assist für den Zugriff auf das Gemini-Modell anstelle des Standard-Gemini-API-Schlüssels verwendet werden soll.
Weitere Informationen findest du in der Gemini CLI-Dokumentation.
use_vertex_ai: (Optional, Standard: false) Gibt an, ob Vertex AI für den Zugriff auf das Gemini-Modell anstelle des Standard-Gemini-API-Schlüssels verwendet werden soll.
Weitere Informationen findest du in der Gemini CLI-Dokumentation.
extensions: (Optional) Eine Liste der zu installierenden Gemini CLI-Erweiterungen.
upload_artifacts: (Optional, Standard: false) Gibt an, ob Artefakte in die GitHub Action hochgeladen werden sollen.
use_pnpm: (Optional, Standard: false) Gibt an, ob pnpm anstelle von npm zur Installation von gemini-cli verwendet werden soll.
workflow_name: (Optional, Standard: ${{ github.workflow }}) Der GitHub-Workflow-Name, der für Telemetriezwecke verwendet wird.
github_pr_number: (Optional, Standard: ${{ github.event.pull_request.number }}) Die Pull-Request-Nummer, auf die die CLI angewendet wird. Standardmäßig die Ereignis-Nutzlast.
github_issue_number: (Optional, Standard: ${{ github.event.issue.number }}) Die Issue-Nummer (oder kommagetrennte Liste von Issue-Nummern), auf die die CLI angewendet wird. Standardmäßig die Ereignis-Nutzlast.
| Name | Beschreibung | Typ | Erforderlich | Wann erforderlich |
|---|
GEMINI_DEBUG | Aktiviert Debug-Logging für die Gemini CLI. | Variable | Nein | Nie |
GEMINI_CLI_VERSION | Steuert, welche Version der Gemini CLI installiert wird. | Variable | Nein | Zum Festlegen der CLI-Version |
GCP_WIF_PROVIDER | Vollständiger Ressourcenname des Workload Identity Providers. | Variable | Nein | Bei Verwendung von Google Cloud |
GOOGLE_CLOUD_PROJECT | Google Cloud-Projekt für Inferenz und Observability. | Variable | Nein | Bei Verwendung von Google Cloud |
SERVICE_ACCOUNT_EMAIL | E-Mail-Adresse des Google Cloud-Dienstkontos. Optional – nur für WIF mit Dienstkonto erforderlich (nicht für direktes WIF). | Variable | Nein | Bei Verwendung von WIF mit Dienstkonto |
GOOGLE_CLOUD_LOCATION | Region des Google Cloud-Projekts. | Variable | Nein | Bei Verwendung von Google Cloud |
GOOGLE_GENAI_USE_VERTEXAI | Setze auf true, um Vertex AI zu verwenden. | Variable | Nein | Bei Verwendung von Vertex AI |
GOOGLE_GENAI_USE_GCA | Setze auf true, um Gemini Code Assist zu verwenden. | Variable | Nein | Bei Verwendung von Gemini Code Assist |
APP_ID | GitHub-App-ID für die benutzerdefinierte Authentifizierung. | Variable | Nein | Bei Verwendung einer benutzerdefinierten GitHub-App |
| Name | Beschreibung | Erforderlich | Wann erforderlich |
|---|
GEMINI_API_KEY | Dein Gemini-API-Schlüssel von Google AI Studio. | Nein | Du hast kein GCP-Projekt. |
APP_PRIVATE_KEY | Privater Schlüssel für deine GitHub-App (PEM-Format). | Nein | Du verwendest eine benutzerdefinierte GitHub-App. |
GOOGLE_API_KEY | Dein Google-API-Schlüssel für die Verwendung mit Vertex AI. | Nein | Du hast einen express Vertex AI Account. |