# Claude Code GitHub Actions : installation et workflows

URL: https://agentvera.dev/fr/blog/claude-code-github-actions/ · Publié: 2026-10-27

Configurer Claude Code GitHub Actions : /install-github-app ou installation manuelle, mentions @claude, revue de PR automatique, secrets, coûts et permissions.

**En bref:**

- Lancez /install-github-app dans Claude Code pour installer la Claude GitHub App, enregistrer votre clé comme secret et ouvrir une PR avec les workflows, ou faites ces trois étapes à la main.
- Sans l’input prompt, l’action attend @claude dans les commentaires d’issues et de PR ; avec un prompt, elle s’exécute seule, ce qui permet une revue de PR automatique ou un rapport quotidien.
- Chaque exécution coûte des minutes Actions et des tokens : limitez-la avec --max-turns dans claude_args, des timeouts de job, la concurrence et un --allowedTools étroit ; gardez l’exploration en local.

Claude Code GitHub Actions vous permet d’exécuter Claude Code dans un workflow GitHub. Vous mentionnez `@claude` dans une issue ou une pull request, et Claude lit le code, répond, écrit un correctif sur une nouvelle branche ou relit le diff, le tout sur un runner GitHub. La façon la plus rapide de l’installer est d’ouvrir Claude Code dans votre dépôt et de lancer `/install-github-app`. La commande installe la Claude GitHub App, enregistre votre clé comme secret du dépôt et ouvre une pull request avec les fichiers de workflow.

Ce guide couvre les deux façons de l’installer, les inputs de l’action officielle `anthropics/claude-code-action`, les deux modes (mentions et automatisation), un workflow de revue de PR prêt à l’emploi, les secrets, le contrôle des coûts et des permissions, et les cas où il vaut mieux lancer Claude en local. Tout ce qui suit s’appuie sur la documentation d’Anthropic et le README de l’action, tels qu’ils étaient en octobre 2026. Si vous cherchez plutôt un agent qui répare tout seul les builds de CI en échec, un article y est consacré : [corriger automatiquement les échecs de CI avec l’IA](/fr/blog/auto-fix-ci-failures-with-ai/ "Corriger les échecs de CI avec l’IA").

## Ce que fait l’action

`anthropics/claude-code-action@v1` est une GitHub Action qui exécute l’agent Claude Code sur votre propre runner GitHub. Elle fonctionne selon deux modes :

- **Interactif (mentions).** Si vous ne lui donnez pas de `prompt`, elle attend une phrase de déclenchement, `@claude` par défaut. Cette phrase peut se trouver dans un commentaire d’issue ou de PR, une revue de PR, ou le titre ou le corps d’une nouvelle issue. Claude répond dans un commentaire et peut pousser une branche avec des modifications.
- **Automatisation.** Si vous définissez `prompt`, Claude exécute cette tâche dès que le workflow se déclenche, sans mention. Les résultats vont dans le journal d’exécution, sauf si le prompt ou un plugin dit à Claude de publier ailleurs. C’est ainsi que l’on construit des revues de PR, des rapports planifiés et le tri des issues.

L’agent suit les mêmes règles que dans votre terminal. Il lit `CLAUDE.md`, utilise les outils que vous autorisez et s’arrête à la limite de tours que vous fixez.

## Étape 1 : installation rapide avec /install-github-app

Ouvrez Claude Code dans le dépôt et lancez :

```text
/install-github-app
```

Avant de commencer, vérifiez trois choses :

- **Vous êtes administrateur du dépôt.** Installer l’application et ajouter des secrets demandent tous deux les droits d’administration.
- **Le dépôt est sur github.com.** Si le remote est sur gitlab.com ou bitbucket.org, la commande affiche un avertissement et s’arrête.
- **Le GitHub CLI est connecté.** Lancez d’abord `gh auth login` si ce n’est pas fait.

La commande vous guide pas à pas. Elle installe la Claude GitHub App sur le dépôt et vous demande comment Claude doit s’authentifier. Elle enregistre ensuite comme secret du dépôt soit `ANTHROPIC_API_KEY` (une clé API), soit `CLAUDE_CODE_OAUTH_TOKEN` (un token lié à votre abonnement Claude). Si une clé existe déjà, elle peut la réutiliser. Enfin, elle pousse une branche avec les fichiers de workflow et ouvre une pull request que vous n’avez plus qu’à fusionner.

Vous obtenez deux workflows : `claude.yml` répond aux mentions `@claude`, et `claude-code-review.yml` relit les pull requests. Appuyez sur Échap pour vous arrêter en cours de route, ou choisissez « Skip for now » une fois l’application installée si vous voulez écrire les workflows vous-même. Si vous relancez la commande plus tard, elle propose de mettre à jour le fichier de workflow vers la dernière version.

L’installation rapide fonctionne avec l’API Claude et avec les abonnements Claude. Si vous utilisez Amazon Bedrock, Google Cloud ou Microsoft Foundry, suivez la voie manuelle et la section de la documentation consacrée aux fournisseurs cloud.

## Étape 2 : installation manuelle

Si la commande ne correspond pas à votre situation, voici les trois mêmes étapes à la main :

1. **Installez la Claude GitHub App** depuis `github.com/apps/claude` sur le dépôt. L’action utilise ses permissions Contents, Issues et Pull requests, chacune en lecture et en écriture.
2. **Ajoutez un secret** dans Settings → Secrets and variables → Actions :
   - `ANTHROPIC_API_KEY` : une clé API de la Claude Console, facturée au token, ou
   - `CLAUDE_CODE_OAUTH_TOKEN` : lancez `claude setup-token` en local pour en créer un ; il fonctionne avec les offres Pro, Max, Team et Enterprise.
3. **Copiez le workflow d’exemple** `claude.yml` depuis le dossier `examples/` de l’action vers `.github/workflows/`.

Voici un workflow de mentions fonctionnel :

```yaml
name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      issues: write
      id-token: write
      actions: read
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
```

Deux permissions passent facilement inaperçues. `id-token: write` est nécessaire pour l’authentification par défaut via la GitHub App. `actions: read` permet à Claude de lire les résultats de CI, pour que vous puissiez lui demander pourquoi un check a échoué. Si vous utilisez un token d’abonnement, remplacez la dernière ligne par `claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`.

Pour une organisation, la documentation conseille d’installer l’application au niveau de l’organisation, de placer la clé dans un secret Actions d’organisation et d’appeler un workflow réutilisable depuis chaque dépôt. Elle recommande aussi une clé API plutôt qu’un token OAuth pour les secrets partagés, car un token appartient à l’abonnement d’une seule personne. Si vous préférez ne stocker aucune clé de longue durée, l’action prend en charge la fédération d’identité de charge de travail (OIDC) via les inputs `anthropic_federation_rule_id` et `anthropic_organization_id`.

## Étape 3 : utiliser @claude dans les issues et les pull requests

Une fois le workflow sur la branche par défaut, écrivez un commentaire :

```text
@claude why does the checkout test fail on Node 22? Fix it if the cause is in our code.
```

```text
@claude implement this issue. Keep the public API unchanged and add tests.
```

```text
@claude review the error handling in src/payments/ and suggest changes inline.
```

Claude répond dans un commentaire. Quand il modifie du code, il pousse sur une branche qui commence par `claude/` (l’input `branch_prefix` permet de changer ce préfixe) et vous donne un lien pour ouvrir la pull request. Quelques règles déterminent qui peut lancer une exécution :

- **La personne qui commente doit avoir un accès en écriture.** Les utilisateurs qui ne l’ont pas sont ignorés, sauf si vous les listez dans `allowed_non_write_users`, ce qui demande aussi votre propre `github_token`.
- **Les bots sont ignorés**, sauf si vous les nommez dans `allowed_bots`. La valeur `"*"` accepte tous les bots, ce que le README déconseille sur les dépôts publics.
- **Le déclencheur est un mot entier.** `@claude` fonctionne, `/claude` et `@claude-bot` non. Changez-le avec `trigger_phrase` si besoin.

Il existe aussi `assignee_trigger` (démarrer quand une issue est assignée à un utilisateur donné) et `label_trigger` (démarrer quand un label est ajouté, `claude` par défaut). Associez-les aux bons types d’événements `issues` dans `on:`.

## Étape 4 : un workflow de revue de PR automatique

Le workflow de revue ci-dessous est celui que fournit la documentation. Il s’exécute sur chaque pull request ouverte, mise à jour, rouverte ou prête pour la revue, sans que personne ait à taper `@claude` :

```yaml
name: Code Review
on:
  pull_request:
    types: [opened, synchronize, ready_for_review, reopened]
jobs:
  review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
          plugins: "code-review@claude-code-plugins"
          prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
          claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'
```

Le rôle de chaque partie :

- `plugin_marketplaces` et `plugins` chargent le plugin officiel `code-review`.
- `prompt` lance sa commande sur la PR en cours. `--comment` publie les résultats sous forme de commentaires en ligne, ou d’un seul commentaire de synthèse.
- La ligne `claude_args` est obligatoire. Sans `--allowedTools` pour l’outil de commentaire en ligne, le serveur MCP qui publie les commentaires ne démarre pas.

Le plugin ignore les PR en brouillon, fermées ou triviales, ainsi que celles qu’il a déjà commentées. Les pull requests issues de forks d’un dépôt public n’ont pas accès aux secrets du dépôt, donc la revue ne s’y exécute pas. Anthropic propose aussi un produit géré distinct, appelé Code Review, qui relit les PR sans aucun fichier de workflow. L’action, elle, est celle que vous contrôlez et que vous exécutez sur votre propre runner.

Pour un tour d’horizon de ce que la revue par IA détecte et de ce qu’elle laisse passer, lisez [la revue de code par IA](/fr/blog/ai-code-review/ "Revue de code par IA").

## Étape 5 : automatisations planifiées et personnalisées

Avec `prompt`, vous pouvez exécuter n’importe quelle tâche sur n’importe quel événement GitHub. Un résumé quotidien ressemble à ceci :

```yaml
name: Daily report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: read
      id-token: write
    steps:
      - uses: actions/checkout@v6
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Summarize yesterday's commits and open issues"
          claude_args: |
            --model claude-opus-5-5
            --allowedTools "mcp__github__list_commits,mcp__github__list_issues"
```

N’oubliez pas qu’avec un simple prompt, Claude n’a ni shell ni accès à l’API GitHub tant que vous ne lui accordez pas d’outils avec `--allowedTools` ou une règle `permissions.allow` dans l’input `settings`. Les workflows planifiés ne s’exécutent que depuis la branche par défaut, et GitHub les désactive dans les dépôts publics après 60 jours sans activité.

## Les inputs que vous utiliserez vraiment

L’action compte de nombreux inputs. Voici les plus courants :

| Input | Ce qu’il fait |
| --- | --- |
| `prompt` | Texte de la tâche ou commande slash. S’il est défini, l’action s’exécute en mode automatisation. |
| `claude_args` | N’importe quelle option du CLI Claude Code, comme `--max-turns`, `--model`, `--allowedTools`, `--mcp-config`, `--append-system-prompt`. |
| `anthropic_api_key` | Clé API pour l’API Claude. |
| `claude_code_oauth_token` | Token issu de `claude setup-token`, en alternative à la clé API. |
| `github_token` | Votre propre token, si vous ne voulez pas que la Claude GitHub App agisse. |
| `trigger_phrase` | Le mot de mention. Par défaut `@claude`. |
| `settings` | Réglages de Claude Code en JSON ou chemin de fichier, pour les permissions, les hooks et l’environnement. |
| `plugin_marketplaces`, `plugins` | Chargent des plugins comme `code-review`. |
| `use_bedrock`, `use_vertex`, `use_foundry` | Passer par un fournisseur cloud plutôt que par l’API Claude. |

D’autres inputs utiles du README : `base_branch` et `branch_prefix` pour choisir où Claude pousse, `use_sticky_comment` pour garder un seul commentaire mis à jour, `track_progress` pour publier des commentaires de suivi sur les événements de PR et d’issues, `use_commit_signing` pour signer les commits, et `additional_permissions` (par exemple `actions: read`). L’action renvoie aussi des outputs comme `branch_name`, `session_id` et `structured_output` pour les étapes suivantes.

Si vous utilisiez la bêta, la mise à niveau est mécanique. Remplacez `@beta` par `@v1`, supprimez `mode`, renommez `direct_prompt` en `prompt`, déplacez `max_turns` et `model` dans `claude_args`, et transformez `custom_instructions` en `--append-system-prompt`.

## Secrets : quoi mettre où

- **Ne mettez jamais de clé dans un fichier de workflow.** Utilisez `${{ secrets.ANTHROPIC_API_KEY }}` ou `${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}`.
- **Gardez les secrets au niveau le plus restreint qui fonctionne :** un secret de dépôt pour un seul dépôt, un secret d’organisation limité à certains dépôts pour plusieurs.
- **Laissez `show_full_output` désactivé sur les dépôts publics.** Le README avertit qu’une sortie complète dans les journaux peut exposer des secrets.
- **Traitez le texte des issues comme une entrée non fiable.** Quiconque peut écrire une issue peut tenter d’orienter Claude avec des instructions cachées dedans. La règle d’accès en écriture est votre principale défense, alors n’assouplissez pas `allowed_non_write_users` ou `allowed_bots` à la légère. [L’injection de prompt](/fr/glossary/prompt-injection/ "Injection de prompt") et [la sécurité des agents de code IA](/fr/blog/ai-coding-agent-security/ "Sécurité des agents de code IA") détaillent ces risques.

## Maîtriser les coûts et les permissions

Chaque exécution coûte deux fois : des minutes GitHub Actions sur le runner, et des tokens Claude (ou de l’usage d’abonnement si vous utilisez un token OAuth). Les leviers recommandés par la documentation :

- **Limitez les tours :** `claude_args: "--max-turns 5"` empêche une exécution de tourner en boucle.
- **Fixez un timeout** avec `timeout-minutes` sur le job.
- **Utilisez la concurrence** pour qu’une rafale de pushs ne lance pas cinq revues de la même PR :

```yaml
concurrency:
  group: claude-${{ github.event.pull_request.number || github.event.issue.number }}
  cancel-in-progress: true
```

- **Restreignez les outils.** Ne donnez à `--allowedTools` que les commandes dont la tâche a besoin, et gardez les `permissions` du job en lecture seule pour les jobs de revue, comme dans le workflow ci-dessus.
- **Gardez CLAUDE.md court et précis.** Claude le charge à chaque exécution, donc un fichier long coûte des tokens à chaque fois. [Écrire un CLAUDE.md](/fr/blog/claude-md-agents-md/ "Écrire CLAUDE.md et AGENTS.md") propose un modèle.
- **Formulez des demandes précises.** « @claude fix the null check in parseDate » coûte moins cher que « @claude look at this ». Les modèles d’issues aident les gens à mieux les rédiger.

## Pièges courants

- **Le workflow n’est pas sur la branche par défaut.** Les workflows `issue_comment` ne s’exécutent que depuis la branche par défaut, alors fusionnez d’abord la PR d’installation.
- **La CI ne tourne pas sur les commits de Claude.** GitHub ne lance pas de workflows pour les commits faits avec le `GITHUB_TOKEN` par défaut. Retirez `github_token: ${{ secrets.GITHUB_TOKEN }}` pour que l’action utilise la Claude GitHub App, ou passez un token issu de votre propre application.
- **La revue ne publie rien.** Vérifiez la ligne `--allowedTools "mcp__github_inline_comment__create_inline_comment"`, et regardez si la PR est en brouillon ou vient d’un fork.
- **Claude dit qu’il ne peut pas lancer de commandes.** En mode automatisation, rien n’est autorisé par défaut. Ajoutez les outils à `--allowedTools`.

## Quand lancer plutôt Claude en local

L’action excelle dans les tâches où un déclencheur fixe mène à un travail borné : répondre à une question, implémenter une petite issue, relire un diff, écrire un résumé quotidien. Elle convient mal quand :

- **Vous voulez guider l’agent au fil de l’eau.** Un fil de commentaires est lent quand vous devez corriger l’agent toutes les quelques minutes. Une session locale vous permet d’interrompre, d’approuver et de réorienter.
- **La tâche a besoin de votre environnement :** une base de données en marche, un service local, des secrets qui ne doivent pas aller en CI, ou une interface graphique que vous devez regarder.
- **Vous explorez.** Une longue investigation consomme des minutes de runner et des tokens sans que personne ne la surveille. En local, vous la voyez dériver et vous l’arrêtez.
- **Vous voulez plusieurs agents à la fois,** chacun dans son propre worktree, pour comparer des approches.

Beaucoup d’équipes utilisent les deux. L’action se charge des revues de routine et des petites issues, et le travail plus lourd se fait en local, sous les yeux de quelqu’un.

## Le côté local avec AgentVera

AgentVera est une application de bureau qui exécute Claude Code, Codex, opencode et d’autres agents de code en CLI côte à côte, dans de vrais terminaux, avec vos propres installations et connexions. Elle couvre le côté local de la répartition décrite ci-dessus :

- **Des agents dans des panneaux et des worktrees.** Lancez plusieurs agents Claude Code côte à côte, chacun dans son propre [git worktree](/fr/glossary/git-worktree/ "Qu’est-ce qu’un git worktree"), et suivez diffs et commits dans le panneau [Git et GitHub](/fr/features/git-and-github/ "Git et GitHub").
- **[Code review automatique](/fr/features/code-review/ "Code review automatique")** avant de pousser : quand un agent termine un tour, un modèle Claude de votre choix relit ce qu’il a écrit et liste les problèmes avec leur gravité et leur fichier:ligne. Il peut les renvoyer à l’agent. C’est inclus dans l’offre gratuite.
- **[Centre CI/CD](/fr/features/ci-cd-center/ "Centre CI/CD")** : il réunit au même endroit les exécutions GitHub Actions, GitLab CI et Jenkins. Les journaux d’une exécution en échec partent vers un nouvel agent en un clic.
- **[Automatisations](/fr/features/automations/ "Automatisations")** (Pro et Team) : elles peuvent lancer un agent quand la CI passe au rouge ou quand un membre du dépôt commente une PR ouverte. L’agent travaille dans son propre worktree, et AgentVera ne pousse jamais directement sur la branche par défaut.

Comme AgentVera exécute n’importe quel agent CLI, la même configuration fonctionne aussi pour d’autres agents. [Utiliser opencode](/fr/blog/how-to-use-opencode/ "Utiliser opencode") montre ce côté avec un agent indépendant du fournisseur. [Téléchargez AgentVera](/fr/download/ "Télécharger AgentVera") pour l’essayer.

## En résumé

Pour intégrer Claude Code à GitHub Actions, lancez `/install-github-app`, fusionnez la PR qu’il ouvre et écrivez `@claude` dans une issue. Pour des revues automatiques, ajoutez le workflow du plugin `code-review` avec sa ligne `--allowedTools`. Ensuite, gardez le tout sous contrôle avec `--max-turns`, des timeouts de job, la concurrence, des permissions en lecture seule quand c’est possible, et des secrets qui ne touchent jamais le fichier de workflow. Laissez le travail long, exploratoire ou dépendant de votre environnement à une session locale que vous pouvez surveiller.

## Questions fréquentes

**Claude Code GitHub Actions est-il gratuit ?** Ajouter l’action ne coûte rien, mais chaque exécution consomme des minutes GitHub Actions sur votre runner et de l’usage Claude. Avec une clé API, vous payez au token ; avec un CLAUDE_CODE_OAUTH_TOKEN créé par claude setup-token, les exécutions sont décomptées de votre abonnement Pro, Max, Team ou Enterprise.

**Pourquoi rien ne se passe quand j’écris @claude ?** Vérifiez que le commentaire contient @claude comme mot entier (pas /claude ni @claude-bot), que vous avez un accès en écriture au dépôt, que la Claude GitHub App est installée sur le dépôt, que le fichier de workflow est sur la branche par défaut et que le secret de la clé API ou du token OAuth existe.

**Claude peut-il relire les pull requests automatiquement ?** Oui. Un workflow déclenché sur pull_request avec un prompt qui lance le plugin code-review relit chaque PR nouvelle ou mise à jour et publie des commentaires en ligne. Les PR en brouillon, fermées ou triviales sont ignorées. Anthropic vend aussi un produit géré distinct, Code Review, qui ne demande aucun workflow.

**Faut-il utiliser une clé API ou un token OAuth ?** Pour un dépôt personnel, les deux conviennent. Pour une organisation, la documentation recommande une clé API de la Claude Console enregistrée comme secret d’organisation, car un token OAuth est lié à l’abonnement d’une seule personne et cesse de fonctionner si elle part.

**Pourquoi ma CI ne tourne-t-elle pas sur les commits que Claude pousse ?** GitHub ne lance pas de workflows pour les commits faits avec le GITHUB_TOKEN par défaut. Retirez github_token: ${{ secrets.GITHUB_TOKEN }} des inputs de l’action pour qu’elle utilise la Claude GitHub App, ou passez un token issu de votre propre GitHub App.

---

**À propos d’AgentVera.** AgentVera est une app de bureau pour macOS, Windows et Linux, développée par Solviera Teknoloji. Elle exécute 18 agents de code IA (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) côte à côte, par projet, dans de vrais terminaux avec les installations et connexions CLI de l’utilisateur. L’offre gratuite inclut des agents illimités. Télécharger: https://agentvera.dev/fr/download/ · Tarifs: https://agentvera.dev/fr/pricing/
