---
title: "Automatisation"
description: "Exécutez la CLI dans CI avec une clé API et laissez un agent la piloter en toute sécurité."
canonical: "https://atelier201.com/docs/fr/cli/automation"
updated: "2026-11-06"
---

# Automatisation

## Dans CI

Utilisez une clé API plutôt qu’une connexion OAuth : la clé appartient à l’espace de travail et n’expire pas lorsqu’une personne le quitte.

```bash
export ATELIER201_API_KEY="atelier201_live_..."
atelier201 site push --build --wait
```

Limitez les autorisations aux scopes strictement nécessaires à la tâche. Un job qui crée un build et un aperçu a besoin de `sites:write`. N’accordez pas `sites:publish` : le job ne pourra pas modifier ce que voient les visiteurs et une fuite du journal ne risque pas de mettre quoi que ce soit en ligne.

Dans un script, `publish` nécessite `--yes` et `sites delete` nécessite `--confirm <slug>`. Sans ces options, la commande se termine avec le code `2`, n’effectue aucune modification et affiche la commande exacte à relancer.

## Avec un agent

```bash
atelier201 help --json
```

`help --json` affiche dans un seul document lisible par machine l’arborescence complète des commandes, les codes de sortie, la politique de nouvelle tentative et le format des erreurs. Un agent qui le consulte d’abord n’a pas à deviner les options.

Utilisez `atelier201 help files read --json` pour examiner une seule commande, ou
`atelier201 help --operation readSiteFile --json` pour consulter ses schémas REST complets et son mappage CLI/MCP. La découverte fonctionne hors ligne, sans identifiants. Le contrat fourni décrit la version installée de la CLI; l’OpenAPI en direct et la ressource MCP décrivent l’API déployée. Consultez la [couverture des opérations](/docs/api/surfaces).

> **Warning: Laissez le propriétaire publier**
>
> Un agent devrait créer le build d’un brouillon, partager un aperçu et demander l’autorisation. Accordez-lui `sites:write`, mais pas `sites:publish`. Il pourra ainsi effectuer tout le travail, tandis que le propriétaire décidera du moment de la mise en ligne.

## Nouvelles tentatives

La CLI réessaie les commandes après une réponse `429`. Elle ne réessaie les réponses `408` et `5xx` que pour les lectures (`GET`, `HEAD` et `OPTIONS`). Une écriture qui échoue avec une réponse `5xx` est signalée, sans nouvelle tentative, car elle a peut-être déjà été appliquée. Relisez le site avant de réessayer vous-même. Un en-tête `Idempotency-Key` n’active pas les nouvelles tentatives automatiques pour les écritures. Si `Retry-After` dépasse 60 secondes, la CLI renvoie l’erreur et les détails nécessaires pour la résoudre, plutôt que de réessayer trop tôt ou d’attendre indéfiniment. Les erreurs réseau et les délais d’attente ne donnent lieu à aucune nouvelle tentative. Désactivez les nouvelles tentatives avec `--no-retry`.
