openWorkspace
Rôle et comportement
Section intitulée « Rôle et comportement »Ouvre un workspace sur un checkout Git hôte : prend son verrou, prépare le checkout ou le worktree choisi par la politique de branche, copie copies, puis exécute workspaceReady. Il sert des sandboxes successives, une à la fois, jusqu’à close(). Un verrou détenu par un processus actif échoue avec le code conflict au lieu d’attendre.
Exemple complet et règles détaillées.
Paramètres et propriétés
Section intitulée « Paramètres et propriétés »optionsOptionnelWorkspaceOptions | undefinedDépôt, politique de branche, copies, hooks, délais par étape, quota de stockage, libellé, signal d’annulation et hub d’observation.options.observationOptionnelObservationHub | undefinedHub qui reçoit les opérations Git, de copie, de hook, d’intégration et de nettoyage de ce workspace. L’appelant en reste propriétaire ; le workspace ne le ferme jamais.options.storageQuotaOptionnelOmit<StorageReservationOptions, "signal"> | undefinedAdmission de stockage vérifiée avant l’ouverture du workspace : réserve reserveBytes et échoue avec le code configuration si l’usage sous .outpost plus les réservations actives dépasseraient maxBytes. La réservation est libérée à la fermeture du workspace.options.signalOptionnelAbortSignal | undefinedAnnule l’ouverture : vérifié avant l’allocation et transmis à la réservation de stockage et aux commandes workspaceReady. Un workspace ouvert l’ignore.options.repositoryOptionnelstring | undefinedChemin dans le checkout Git hôte, par défaut le répertoire de travail du processus. Outpost travaille depuis le répertoire racine du checkout ; un répertoire indisponible échoue avec le code workspace.options.branchOptionnelBranchPolicy | undefinedPolitique de branche : current, named ou integrate. { mode: “current” } par défaut ; createSandbox() et dispatch() sur un provider distant utilisent integrate par défaut.options.copiesOptionnelreadonly string[] | undefinedFichiers ou dossiers relatifs au dépôt, copiés depuis le checkout hôte dans le nouveau worktree avant workspaceReady ; les entrées absentes sont ignorées. Exige named ou integrate, et les chemins absolus, avec .. ou .git échouent avec le code configuration. Une copie non suivie ou ignorée fait conserver le worktree à la fermeture. Sur un provider distant sans includeUncommitted, une copie non ignorée par un .gitignore commité fait échouer la première synchronisation avec le code workspace.options.limitsOptionnelStageLimits | undefinedDélais en millisecondes de copie, de préparation Git, de collecte des commits et d’intégration. Au-delà, l’étape échoue avec le code timeout, ou conflict pour l’intégration.options.labelOptionnelstring | undefinedNom utilisé dans la branche integrate (outpost/<label>-<id>), le dossier du worktree sous .outpost/workspaces et le journal d’échec au démarrage ; mis en minuscules, autres caractères remplacés par -, tronqué à 48.options.hooksOptionnelLifecycleHooks | undefinedCommandes de préparation : workspaceReady une fois à l’ouverture du workspace, puis hostReady et sandboxReady pour chaque sandbox qui l’utilise, sauf si cette sandbox passe ses propres hooks. Chaque commande s’arrête après 600000 (10 minutes) sauf si elle fixe deadlineMs ; une sortie non nulle échoue avec le code process.