Déployer Google Apps Script avec Clasp

VérifiéPrudence

Déployer une application web Google Apps Script avec clasp, couvrant l'hygiène des ID de déploiement, /exec vs /dev, l'archivage des déploiements obsolètes et les pièges d'authentification.

Spar Skills Guide Bot
DevOpsIntermédiaire
24/07/2026
Claude Code
#google-apps-script#clasp#deployment#release-management#web-app

Recommandé pour

Synthèse automatique

Encadre le déploiement d'une web app Google Apps Script avec clasp, en insistant sur la gestion des ID de déploiement, la distinction /exec vs /dev et les pièges d'authentification.

Points forts

  • Procédure de pré-vol explicite (version de clasp, push, contrôle du .clasp.json ignoré par git)
  • Identifie quatre pièges concrets et fréquents : /exec contre /dev, dérive des ID, déploiements obsolètes, cache et comptes Google
  • Rappelle de vérifier sur l'URL /exec en navigation privée plutôt que de se fier au code de sortie
  • S'appuie sur un runbook de projet et un CHANGELOG pour tracer les ID et les changements

Limites

  • Suppose que le dépôt contient un docs/deploy-runbook.md avec les ID et le script ID
  • Ne couvre pas l'installation de clasp ni la configuration OAuth au-delà de la vérification du compte
  • Les commandes et le comportement dépendent de la version de clasp installée
Quand l'utiliser

À utiliser lorsqu'il faut déployer ou redéployer une web app Apps Script et éviter de casser les liens /exec déjà partagés.

Quand l'éviter

À éviter pour du développement local sans publication, ou lorsque aucun runbook de déploiement et aucun projet clasp n'existent encore.

Analyse de sécurité

Prudence
Score qualité90/100

No exfiltration, obfuscated payloads, destructive shell commands, or safety-disabling instructions. It uses Bash and network access to run clasp for legitimate deployments and is unusually careful (refuses to npm install -g, refuses to deploy unasked, verifies on /exec in incognito, warns about undeploying the live ID). The only real risk is that deploying is an outward-facing, partially irreversible production action, so it warrants 'caution' rather than 'safe'.

Points d'attention
  • •Uses Bash to run clasp push/deploy, which publishes code to a live Google Apps Script project — an outward-facing, hard-to-reverse action (mitigated by explicit 'confirm before first deploy each session' rule)
  • •Defers to repo-local docs (docs/deploy-runbook.md, CLAUDE.md) as authoritative, with 'where they disagree, the runbook wins' — a mild instruction-source precedence/injection consideration since those files are untrusted input
  • •clasp undeploy can take a live app down; skill warns about it and requires confirmation but the capability remains
Comment cette analyse est faite

Exemples

Redeploy existing web app
Push the latest changes to our gas-webapp and redeploy it, keeping the existing /exec URL working.
Check why the link is stale
clasp deploy succeeded but the shared link still shows the old version — figure out what's going on with this Apps Script deployment.
Clean up old deployments
List our Apps Script deployments and archive the stale ones, but make sure you don't undeploy the live one.

name: gas-deploy description: Deploy a Google Apps Script web app with clasp — deployment-ID hygiene, /exec versus /dev, archiving stale deployments, and the auth traps. Use when the user says "deploy", "push to Apps Script", "clasp deploy", or names a gas-webapp project. allowed-tools:

  • Bash
  • Read
  • Grep

gas-deploy

Apps Script deployment is a recurring source of lost time, almost always for one of four reasons below rather than anything to do with the code.

Read the repo's docs/deploy-runbook.md first — it holds this project's deployment IDs, script ID, and any project-specific steps. This skill is the procedure and the traps; the runbook is the specifics. Where they disagree, the runbook wins.

Never deploy unasked

~/.claude/CLAUDE.md and every scaffolded CLAUDE.md say it: run verify before every push, never deploy without being asked. Deployment is outward-facing. Confirm before the first clasp deploy of a session, every session.

1. Pre-flight

clasp --version
clasp push --watch=false

If clasp is not on PATH, stop and report the install command. Never npm install -g on the user's behalf.

Confirm .clasp.json exists and is gitignored, and that .clasp.json.example is committed with the script ID redacted (repo-standards §2.1 layer 3). A real script ID in a tracked file is the same class of mistake as a committed key.

2. The four traps, in the order they bite

  1. /exec versus /dev. /dev serves the current saved code to the owner and nobody else. /exec serves a specific numbered deployment to everyone. Testing on /dev and announcing on /exec is the single most common false "it works". Always verify on the /exec URL you are about to hand over.

  2. Deployment-ID drift. clasp deploy without -i creates a new deployment with a new ID and a new /exec URL. Every previously shared link keeps serving the old code. Redeploy the existing ID:

    clasp deployments
    clasp deploy -i <deployment-id> -d "<what changed>"
    

    Record the ID in docs/deploy-runbook.md and never create a second long-lived one.

  3. Stale deployments accumulate. Apps Script caps deployments per project. Archive with clasp undeploy <id> — but read clasp deployments first and confirm the ID is not the live one. Undeploying the live deployment takes the app down, and it is not undoable from the CLI.

  4. Auth and caching. A logged-in Google account that is not the script owner sees a stale or permission-denied page that looks like a deploy failure. Verify in an incognito window, signed in as the intended audience. clasp login --status confirms which account clasp itself is using; it is frequently not the one in the browser.

3. Verify

Open the /exec URL in incognito. Confirm the change is visible and the version string, if the app has one, matches what was just deployed. Do not report success from a clasp deploy exit code alone — it reports that the deployment was created, not that the app works.

4. Record

Append to CHANGELOG.md under Unreleased if the deployment carries a user-visible change, and update docs/deploy-runbook.md if any ID changed.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/deploy-google-apps-script-with-clasp-mryiqgn8/download' --output '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md.part' && mv '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md.part' '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md' && test -s '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/gas-deploy' && cp -R '.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8' '.claude/skills/gas-deploy'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8'

openskills read 'deploy-google-apps-script-with-clasp-mryiqgn8'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/deploy-google-apps-script-with-clasp-mryiqgn8/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires