Befehl im Workspace ausführen
Ein Bash-Befehl im Stammverzeichnis des Projekts, in einer Arbeitskopie des Entwurfs im Container der Website: rg, grep, sed, find, cat, node. Ein Build des Projekts wird abgelehnt (400): workspace:commit prüft die Dateien wie jede andere Änderung und startet den echten Build. Dessen Fehler meldet getSiteBuild. Kein Netzwerkzugriff, höchstens 300 s. Geänderte Dateien bleiben uncommitted und werden unter uncommitted aufgeführt, bis workspace:commit ausgeführt wird. Der Workspace folgt dem Entwurf: Bei einer weiteren Änderung werden deine uncommitted Änderungen übernommen.
POST/v1/sites/{site_id}/workspace:run
Erfordert sites:write. Kostet keine Credits. Der Pfad endet mit /workspace:run.
Der Workspace ist eine Shell in einer Arbeitskopie des Website-Entwurfs, offline im eigenen Container der Website. Verwende ihn für Aufgaben, die sich gut in einer Shell erledigen lassen: rg, grep, find, cat, sed -i, node und npx astro build, um in Sekunden einen Build zu testen. Der Befehl wird als nicht privilegierter Benutzer im Stammverzeichnis des Projekts ausgeführt. Es gibt keine Netzwerkverbindung.
Änderungen durch den Befehl bleiben uncommitted. Die Antwort führt diese Änderungen in uncommitted auf, eine pro Zeile im Stil von git status (M src/pages/index.astro). In den Verlauf gelangt nichts, bis du den Workspace committest, und Besucher sehen erst etwas, wenn du veröffentlichst.
command darf höchstens 8000 Zeichen lang sein. timeout_ms liegt zwischen 1000 und 300000 und ist standardmäßig auf 60000 gesetzt: Läuft ein Befehl zu diesem Zeitpunkt noch, wird er angehalten und timed_out ist true. Ein fehlgeschlagener Befehl ist kein API-Fehler: Der Aufruf ist erfolgreich und exit_code ist nicht 0. output enthält zusammen stdout und stderr. Bei mehr als 8 KB bleiben Anfang und Ende erhalten und truncated ist true.
Der Workspace folgt dem Entwurf. Hat eine andere Änderung den Entwurf seit deinem letzten Befehl verändert, werden deine uncommitted Änderungen übernommen und note weist darauf hin. Dasselbe gilt, wenn der Workspace neu erstellt werden musste.
Eine Website, die noch erstellt wird, antwortet mit result_not_ready. Bei einer ausgesetzten oder gerade gelöschten Website lautet die Antwort conflict.
Autorisierung
Authorizationbearerin headerrequiredPfadparameter
site_idstringrequiredID der Website oder ihr Slug (die Adresse vor .atelier201.page).
Body
application/jsonrequiredcommandstringrequiredlength: 1–8000 charsEin Bash-Befehl im Stammverzeichnis des Projekts, in einer Arbeitskopie des Entwurfs: rg, grep, sed, find, cat, node... Kein Netzwerkzugriff. Geänderte Dateien bleiben uncommitted, bis workspace:commit sie erstellt und Build-Fehler meldet. Ein Build des Projekts wird hier abgelehnt: Er dauerte 30 s und hätte den Build doppelt ausgeführt.
timeout_msintegerrange: 1000–300000Standardwert 60000. Danach wird der Befehl abgebrochen.
Antwort
Einen Shell-Befehl im Workspace der Website ausführen
dataobjectrequiredrequest_idstringrequiredMögliche Codes: invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredMögliche Codes: authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredMögliche Codes: insufficient_credits
errorobjectrequiredrequest_idstringrequiredMögliche Codes: insufficient_scope, feature_not_available, admin_required
errorobjectrequiredrequest_idstringrequiredMögliche Codes: resource_not_found
errorobjectrequiredrequest_idstringrequiredMögliche Codes: conflict, result_not_ready, idempotency_key_reused
errorobjectrequiredrequest_idstringrequiredMögliche Codes: result_expired
errorobjectrequiredrequest_idstringrequiredMögliche Codes: request_too_large
errorobjectrequiredrequest_idstringrequiredMögliche Codes: request_too_large_for_plan
errorobjectrequiredrequest_idstringrequiredMögliche Codes: rate_limited
errorobjectrequiredrequest_idstringrequiredMögliche Codes: internal_error
errorobjectrequiredrequest_idstringrequiredMögliche Codes: service_unavailable
errorobjectrequiredrequest_idstringrequired