Exécuter une commande dans l’espace de travail
Une commande bash exécutée à la racine du projet, sur une copie de travail du brouillon dans le conteneur du site : rg, grep, sed, find, cat, node. La compilation du projet est refusée (400) : workspace:commit soumet les fichiers aux mêmes vérifications que toute autre modification et lance la véritable compilation, dont getSiteBuild signale les erreurs. Aucun accès réseau, durée maximale de 300 s. Les fichiers modifiés restent non validés (indiqués dans uncommitted) jusqu’à workspace:commit. L’espace de travail suit le brouillon : toute nouvelle modification conserve vos changements non validés.
POST/v1/sites/{site_id}/workspace:run
Nécessite sites:write. Ne coûte aucun crédit. Le chemin se termine par /workspace:run.
L’espace de travail est un shell exécuté hors ligne dans le conteneur propre au site, sur une copie de travail de son brouillon. Utilisez-le pour les tâches adaptées au shell : rg, grep, find, cat, sed -i, node et npx astro build, pour tester une compilation en quelques secondes. La commande s’exécute à la racine du projet avec un compte sans privilèges, sans accès au réseau.
Les modifications apportées par la commande ne sont pas validées. La réponse les répertorie dans uncommitted, à raison d’une par ligne, au format de git status (M src/pages/index.astro). Rien n’est ajouté à l’historique tant que vous n’avez pas validé l’espace de travail, et les visiteurs ne voient rien tant que vous n’avez pas publié.
command peut contenir jusqu’à 8000 caractères. timeout_ms doit être compris entre 1000 et 300000 et vaut 60000 par défaut : une commande toujours en cours à l’issue de ce délai est arrêtée et timed_out vaut true. L’échec d’une commande ne constitue pas une erreur d’API : l’appel réussit et exit_code est différent de 0. output regroupe stdout et stderr ; au-delà de 8 KB, il conserve le début et la fin, et truncated vaut true.
L’espace de travail suit l’évolution du brouillon. Si une autre modification a fait évoluer le brouillon depuis votre dernière commande, vos modifications non validées sont conservées et note le signale. Il en va de même si l’espace de travail a dû être recréé.
Un site dont la création est toujours en cours renvoie result_not_ready. Un site suspendu ou en cours de suppression renvoie conflict.
Autorisations
Authorizationbearerin headerrequiredParamètres de chemin
site_idstringrequiredL’identifiant du site ou son slug (l’adresse avant .atelier201.page).
Corps
application/jsonrequiredcommandstringrequiredlength: 1–8000 charsUne commande bash exécutée à la racine du projet, sur une copie de travail du brouillon : rg, grep, sed, find, cat, node... Aucun accès réseau. Les fichiers modifiés restent non validés jusqu’à workspace:commit, qui les compile et signale les erreurs éventuelles. La compilation du projet est refusée ici : elle a pris 30 s et ferait doublon.
timeout_msintegerrange: 1000–300000Valeur par défaut : 60000. La commande est interrompue au-delà de cette durée.
Réponse
Exécuter une commande shell dans l’espace de travail du site
dataobjectrequiredrequest_idstringrequiredCodes possibles : invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredCodes possibles : authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_credits
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_scope, feature_not_available, admin_required
errorobjectrequiredrequest_idstringrequiredCodes possibles : resource_not_found
errorobjectrequiredrequest_idstringrequiredCodes possibles : conflict, result_not_ready, idempotency_key_reused
errorobjectrequiredrequest_idstringrequiredCodes possibles : result_expired
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large_for_plan
errorobjectrequiredrequest_idstringrequiredCodes possibles : rate_limited
errorobjectrequiredrequest_idstringrequiredCodes possibles : internal_error
errorobjectrequiredrequest_idstringrequiredCodes possibles : service_unavailable
errorobjectrequiredrequest_idstringrequired