
Une GitHub Action invoquant le Gemini CLI.
run-gemini-cli est une action GitHub qui intègre Gemini dans votre flux de développement via le Gemini CLI. Elle agit à la fois comme un agent autonome pour les tâches de codage critiques et récurrentes, et comme un collaborateur à la demande auquel vous pouvez rapidement déléguer du travail.
Utilisez-la pour effectuer des revues de pull request GitHub, trier les issues, réaliser des analyses et modifications de code, et plus encore en utilisant Gemini de manière conversationnelle (par exemple, @gemini-cli fix this issue) directement dans vos dépôts GitHub.
@gemini-cli /review).gh).GEMINI.md dans votre dépôt pour fournir des instructions et un contexte spécifiques au projet au Gemini CLI.Commencez à utiliser Gemini CLI dans votre dépôt en quelques minutes :
Obtenez votre clé API depuis Google AI Studio avec des quotas généreux gratuits
Stockez votre clé API en tant que secret nommé GEMINI_API_KEY dans votre dépôt :
GEMINI_API_KEY, Valeur : votre clé APIAjoutez les entrées suivantes à votre fichier .gitignore :
# gemini-cli settings
.gemini/
# GitHub App credentials
gha-creds-*.json
Vous avez deux options pour configurer un workflow :
Option A : Utiliser la commande de configuration (Recommandé)
Lancez le Gemini CLI dans votre terminal :
gemini
Dans le Gemini CLI dans votre terminal, tapez :
/setup-github
Option B : Copier manuellement les workflows
examples/workflows vers le répertoire .github/workflows de votre dépôt. Remarque : le workflow gemini-dispatch.yml doit également être copié, car il déclenche l'exécution des workflows.Revue de Pull Request :
@gemini-cli /review sur une pull request existante pour déclencher manuellement une revueTri d'issues :
@gemini-cli /triage sur des issues existantes pour déclencher manuellement le triAssistance IA générale :
@gemini-cli suivi de votre demande@gemini-cli explain this code change@gemini-cli suggest improvements for this function@gemini-cli help me debug this error@gemini-cli write unit tests for this componentCette action fournit plusieurs workflows préconstruits pour différents cas d'utilisation. Chaque workflow est conçu pour être copié dans le répertoire .github/workflows de votre dépôt et personnalisé selon les besoins.
Ce workflow agit comme un répartiteur central pour Gemini CLI, en aiguillant les requêtes vers le workflow approprié en fonction de l'événement déclencheur et de la commande fournie dans le commentaire. Pour un guide détaillé sur la configuration du workflow de répartition, consultez la documentation du workflow Gemini Dispatch.
Cette action peut être utilisée pour trier automatiquement les issues GitHub ou selon un planning. Pour un guide détaillé sur la configuration du système de tri des issues, consultez la documentation du workflow de tri d'issues GitHub.
Cette action peut être utilisée pour examiner automatiquement les pull requests lorsqu'elles sont ouvertes. Pour un guide détaillé sur la configuration du système de revue des pull requests, consultez la documentation du workflow de revue de PR GitHub.
Ce type d'action peut être utilisé pour invoquer un assistant IA Gemini conversationnel et polyvalent dans les pull requests et les issues afin d'effectuer un large éventail de tâches. Pour un guide détaillé sur la configuration du workflow Gemini CLI généraliste, consultez la documentation du workflow Assistant Gemini.
gcp_location: (Optionnel) L'emplacement Google Cloud.
gcp_project_id: (Optionnel) L'ID du projet Google Cloud.
gcp_service_account: (Optionnel) L'email du compte de service Google Cloud.
gcp_workload_identity_provider: (Optionnel) Le fournisseur d'identité de charge de travail Google Cloud.
gcp_token_format: (Optionnel, défaut : access_token) Le format du jeton pour l'authentification. Définissez sur "access_token" pour générer des jetons d'accès (nécessite un compte de service), ou sur une chaîne vide pour une fédération d'identité directe. Peut être "access_token" ou "id_token".
gcp_access_token_scopes: (Optionnel, défaut : https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/userinfo.profile) Les portées du jeton d'accès lors de l'utilisation de token_format "access_token". Liste séparée par des virgules des portées OAuth 2.0.
summary: La sortie résumée de l'exécution du Gemini CLI.
error: La sortie d'erreur de l'exécution du Gemini CLI, le cas échéant.
Nous recommandons de définir les valeurs suivantes en tant que variables de dépôt afin qu'elles puissent être réutilisées dans tous les workflows. Vous pouvez également les définir en ligne en tant qu'entrées d'action dans des workflows individuels ou pour écraser les valeurs au niveau du dépôt.
[!WARNING] N'utilisez pas la variable d'environnement
DEBUGcar cela provoque le blocage du Gemini CLI en attente de l'attachement du débogueur node.
Pour ajouter une variable de dépôt :
Pour plus de détails sur les variables de dépôt, consultez la documentation GitHub sur les variables.
Vous pouvez définir les secrets suivants dans votre dépôt :
Pour ajouter un secret :
Pour plus d'informations, consultez la documentation officielle GitHub sur la création et l'utilisation de secrets chiffrés.
Cette action nécessite une authentification auprès des services Google (pour Gemini AI) et de l'API GitHub.
Choisissez la méthode d'authentification qui correspond le mieux à votre cas d'utilisation :
Vous pouvez vous authentifier auprès de GitHub de deux manières :
GITHUB_TOKEN par défaut : Pour les cas d'utilisation plus simples, l'action peut utiliser le GITHUB_TOKEN par défaut fourni par le workflow.Pour des instructions détaillées de configuration pour l'authentification Google et GitHub, consultez la documentation d'authentification.
Cette action peut être configurée pour envoyer des données de télémétrie (traces, métriques et logs) vers votre propre projet Google Cloud. Cela vous permet de surveiller les performances et le comportement du Gemini CLI dans vos workflows, fournissant des informations précieuses pour le débogage et l'optimisation.
Pour des instructions détaillées sur la configuration de l'observabilité, consultez la documentation d'observabilité.
Le Gemini CLI peut être étendu avec des fonctionnalités supplémentaires via des extensions. Ces extensions sont installées depuis leur source depuis leurs dépôts GitHub.
Pour des instructions détaillées sur la configuration des extensions, consultez la documentation des extensions.
Pour garantir la sécurité, la fiabilité et l'efficacité de vos workflows automatisés, nous vous recommandons vivement de suivre nos bonnes pratiques. Ces directives couvrent des domaines clés tels que la sécurité du dépôt, la configuration du workflow et la surveillance.
Les principales recommandations incluent :
Pour un guide complet sur la sécurisation de votre dépôt et de vos workflows, veuillez consulter notre documentation des bonnes pratiques.
Créez un fichier GEMINI.md à la racine de votre dépôt pour fournir un contexte et des instructions spécifiques au projet au Gemini CLI. Cela est utile pour définir des conventions de codage, des modèles architecturaux ou d'autres directives que le modèle doit suivre pour un dépôt donné.
Les contributions sont les bienvenues ! Consultez le Guide de contribution du Gemini CLI pour plus de détails sur la façon de commencer.
gemini_api_key: (Optionnel) La clé API pour l'API Gemini.
gemini_cli_version: (Optionnel, défaut : latest) La version du Gemini CLI à installer. Peut être "latest", "preview", "nightly", un numéro de version spécifique, ou une branche git, un tag ou un commit. Pour plus d'informations, voir les versions du Gemini CLI.
gemini_debug: (Optionnel) Activer la journalisation de débogage et le streaming de sortie.
gemini_model: (Optionnel) Le modèle à utiliser avec Gemini.
google_api_key: (Optionnel) La clé API Vertex AI à utiliser avec Gemini.
prompt: (Optionnel, défaut : You are a helpful assistant.) Une chaîne passée à l'argument --prompt du Gemini CLI.
settings: (Optionnel) Une chaîne JSON écrite dans .gemini/settings.json pour configurer les paramètres de projet du CLI. Pour plus de détails, consultez la documentation sur les fichiers de paramètres.
use_gemini_code_assist: (Optionnel, défaut : false) Indique s'il faut utiliser Code Assist pour l'accès au modèle Gemini au lieu de la clé API Gemini par défaut. Pour plus d'informations, consultez la documentation du Gemini CLI.
use_vertex_ai: (Optionnel, défaut : false) Indique s'il faut utiliser Vertex AI pour l'accès au modèle Gemini au lieu de la clé API Gemini par défaut. Pour plus d'informations, consultez la documentation du Gemini CLI.
extensions: (Optionnel) Une liste d'extensions Gemini CLI à installer.
upload_artifacts: (Optionnel, défaut : false) Indique s'il faut télécharger des artefacts vers l'action GitHub.
use_pnpm: (Optionnel, défaut : false) Indique s'il faut utiliser pnpm au lieu de npm pour installer gemini-cli.
workflow_name: (Optionnel, défaut : ${{ github.workflow }}) Le nom du workflow GitHub, utilisé à des fins de télémétrie.
github_pr_number: (Optionnel, défaut : ${{ github.event.pull_request.number }}) Le numéro de la Pull Request sur laquelle le CLI opère. Par défaut, la charge utile de l'événement.
github_issue_number: (Optionnel, défaut : ${{ github.event.issue.number }}) Le numéro de l'issue (ou liste séparée par des virgules de numéros d'issues) sur laquelle le CLI opère. Par défaut, la charge utile de l'événement.
| Name | Description | Type | Requis | Quand requis |
|---|
GEMINI_DEBUG | Active la journalisation de débogage pour le Gemini CLI. | Variable | Non | Jamais |
GEMINI_CLI_VERSION | Contrôle quelle version du Gemini CLI est installée. | Variable | Non | Épinglage de la version du CLI |
GCP_WIF_PROVIDER | Nom complet de la ressource du fournisseur d'identité de charge de travail. | Variable | Non | Utilisation de Google Cloud |
GOOGLE_CLOUD_PROJECT | Projet Google Cloud pour l'inférence et l'observabilité. | Variable | Non | Utilisation de Google Cloud |
SERVICE_ACCOUNT_EMAIL | Adresse email du compte de service Google Cloud. Optionnel - nécessaire uniquement pour WIF avec compte de service (pas requis pour WIF direct). | Variable | Non | Utilisation de WIF avec compte de service |
GOOGLE_CLOUD_LOCATION | Région du projet Google Cloud. | Variable | Non | Utilisation de Google Cloud |
GOOGLE_GENAI_USE_VERTEXAI | Définir sur true pour utiliser Vertex AI | Variable | Non | Utilisation de Vertex AI |
GOOGLE_GENAI_USE_GCA | Définir sur true pour utiliser Gemini Code Assist | Variable | Non | Utilisation de Gemini Code Assist |
APP_ID | ID de l'application GitHub pour l'authentification personnalisée. | Variable | Non | Utilisation d'une application GitHub personnalisée |
| Nom | Description | Requis | Quand requis |
|---|
GEMINI_API_KEY | Votre clé API Gemini depuis Google AI Studio. | Non | Vous n'avez pas de projet GCP. |
APP_PRIVATE_KEY | Clé privée pour votre application GitHub (format PEM). | Non | Utilisation d'une application GitHub personnalisée. |
GOOGLE_API_KEY | Votre clé API Google à utiliser avec Vertex AI. | Non | Vous avez un compte Vertex AI express. |