Shipyard
officielLe CLI Shipyard fournit un serveur MCP permettant aux agents de gérer directement les environnements Shipyard : en extrayant les logs, en comparant les branches, en exécutant des tests, et en arrêtant/démarrant les environnements.
Que pouvez-vous faire avec Shipyard MCP ?
- Lister les environnements avec des filtres — Demandez à afficher les environnements filtrés par dépôt, branche ou demande de tirage via
shipyard get environments. - Inspecter les détails d'un environnement — Récupérez les informations complètes pour un UUID d'environnement spécifique, y compris son jeton de contournement pour les scripts.
- Gérer le cycle de vie des environnements — Arrêtez, redémarrez, annulez les builds, reconstruisez ou ravivez les environnements supprimés par UUID.
- Accéder aux services et aux journaux — Obtenez les ports exposés, diffusez les journaux, exécutez des commandes ou effectuez un transfert de port vers le service d'un environnement en cours d'exécution.
- Gérer les volumes et les instantanés — Listez, réinitialisez, créez des instantanés, chargez ou téléversez des fichiers vers les volumes d'un environnement.
- Déployer des environnements détachés — Clonez un build d'application avec des remplacements de branche personnalisés et des politiques de reconstruction.
Documentation
La CLI Shipyard
Un outil pour gérer les environnements éphémères sur la plateforme Shipyard.
Vous utilisez un assistant IA ? La CLI inclut un serveur MCP : voir Utiliser Shipyard depuis un assistant IA.
Installation
-
Linux et macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows Accédez à la page des versions et téléchargez l'exécutable pour Windows.
-
Homebrew
brew tap shipyard/tap brew install shipyard
Connexion
Exécutez shipyard login pour initialiser la CLI. Cela vous invitera à vous connecter à Shipyard dans le navigateur. La CLI enregistrera ensuite
votre jeton API dans une configuration locale. Vous êtes prêt à commencer à exécuter des commandes.
Ou définissez votre jeton manuellement
Définissez votre jeton API Shipyard comme valeur de la variable d'environnement SHIPYARD_API_TOKEN.
Vous pouvez l'obtenir en allant sur votre page de profil.
Vous pouvez nous contacter à support@shipyard.build si vous souhaitez activer l'accès API pour votre organisation. Si vous avez d'autres questions, n'hésitez pas à rejoindre notre communauté Slack.
shipyard set token
Alternativement, vous pouvez utiliser un fichier de configuration stocké dans $HOME/.shipyard/config.yaml par défaut.
Lorsque vous exécutez la CLI pour la première fois, elle créera une configuration vide par défaut que vous pourrez ensuite modifier.
Vous pouvez également spécifier un chemin de configuration non standard avec l'indicateur --config {path} ajouté à n'importe quelle commande.
Ajoutez toutes les valeurs de configuration dans votre fichier de configuration et assurez-vous que le fichier respecte la syntaxe YAML. Par exemple :
api_token: <your-token>
org: <your-non-default-org>
Les valeurs de vos variables d'environnement remplacent leurs valeurs correspondantes dans la configuration.
Utilisation de base
Obtenir toutes les organisations dont vous êtes membre
shipyard get orgs
Définir l'organisation par défaut globale
shipyard set org {org-name}
Obtenir l'organisation actuellement configurée
shipyard get org
Lister tous les environnements
shipyard get environments
Indicateurs disponibles :
| Nom | Description | Type | Valeur par défaut |
|---|---|---|---|
| branch | Filtrer par nom de branche | string | |
| deleted | Renvoyer les environnements supprimés | boolean | false |
| json | Afficher la sortie JSON complète | boolean | false |
| name | Filtrer par nom de l'application | string | |
| org-name | Filtrer par nom d'organisation, si vous faites partie de plusieurs organisations | string | votre organisation par défaut |
| page | Numéro de page demandé | int | 1 |
| page-size | Taille de page demandée | int | 20 |
| pull-request-number | Filtrer par numéro de pull request | string | |
| repo-name | Filtrer par nom de dépôt | string |
Exemples :
- Lister tous les environnements exécutant le dépôt
flask-backendsur la branchemain:
shipyard get environments --repo-name flask-backend --branch main
- Lister tous les environnements supprimés :
shipyard get environments --deleted
Obtenir les détails d'un environnement spécifique par son UUID
shipyard get environment {environment_uuid}
Indicateurs disponibles :
| Nom | Description | Type | Valeur par défaut |
|---|---|---|---|
| json | Afficher la sortie JSON complète | boolean | false |
| org | Organisation de l'environnement, si vous faites partie de plusieurs organisations | string | votre organisation par défaut |
| bypass-token | Afficher uniquement le jeton de contournement de l'environnement, pour les scripts | boolean | false |
--bypass-token permet à un script d'utiliser le jeton sans que personne ne le saisisse ou ne l'imprime :
SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/
Arrêter un environnement en cours d'exécution
shipyard stop environment {environment_uuid}
Redémarrer un environnement arrêté
shipyard restart environment {environment_uuid}
Annuler une compilation en cours pour un environnement
shipyard cancel environment {environment_uuid}
Recompiler un environnement
shipyard rebuild environment {environment_uuid}
Restaurer un environnement supprimé
shipyard revive environment {environment_uuid}
Déployer un environnement détaché
Créez un nouvel environnement indépendant (« détaché ») en clonant une compilation d'application existante. Nécessite que les environnements détachés soient activés pour votre organisation.
shipyard detached deploy {application_build_uuid} --name my-detached-env
Remplacez les branches par dépôt et contrôlez si l'environnement détaché se recompile lors de nouveaux commits :
# Override the branch for a repo, and never rebuild on new commits
shipyard detached deploy {application_build_uuid} --name my-detached-env --branch web=feature-x --build-on-commit never
# Per-repo build-on-commit settings (always | inherit | never)
shipyard detached deploy {application_build_uuid} --build-on-commit-for web=always --build-on-commit-for api=never
Obtenir tous les services et ports exposés pour un environnement
shipyard get services --env {environment_uuid}
Exécuter une commande dans le service d'un environnement en cours d'exécution
Exécutez n'importe quelle commande avec n'importe quels arguments et indicateurs dans un service donné pour un environnement en cours d'exécution. Passez tous les arguments de commande après une double barre oblique.
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Rediriger le port du service d'un environnement en cours d'exécution
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Obtenir les journaux du service d'un environnement en cours d'exécution
shipyard logs --env {environment_uuid} --service {service_name}
Visiter un environnement
shipyard visit {environment_uuid}
Indicateurs disponibles :
| Nom | Description | Type | Valeur par défaut |
|---|---|---|---|
| follow | Suivre la sortie des journaux | boolean | false |
| tail | Nombre de lignes de journal récentes à afficher | int | 3000 |
Travailler avec les volumes
Lister tous les volumes dans un environnement
shipyard get volumes --env {environment_uuid}
Lister toutes les captures instantanées de volumes dans un environnement
shipyard get snapshots --env {environment_uuid}
Réinitialiser un volume dans un environnement
shipyard reset volume --env {environment_uuid}
Créer une capture instantanée dans un environnement
shipyard create snapshot --env {environment_uuid}
Charger une capture instantanée de volume dans un environnement
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
Téléverser un fichier vers un volume dans un environnement
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
Appeler directement l'API REST
shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json
Les chemins doivent commencer par /api/v1 ou /api/v2 ; votre jeton et votre organisation sont ajoutés automatiquement.
bypass_token et les informations d'identification kubeconfig sont masquées sauf si vous passez --include-secrets.
Se connecter à telepresence
shipyard telepresence connect --env {environment_uuid}
À partir de là, vous pourrez communiquer directement avec tous les pods dans le namespace. Vous devrez peut-être utiliser le
nom d'hôte du namespace pour communiquer avec les services, que vous pouvez obtenir via telepresence status sous le champ Namespace. Par exemple, pour communiquer avec redis, vous utiliseriez redis.shipyard-app-build-{uuid}
Créer un exécutable à partir du code :
Vous pouvez créer un exécutable en exécutant la commande suivante :
make
Pour exécuter ce nouvel exécutable :
./shipyard
Activer l'autocomplétion
Bash
Ce script dépend du package bash-completion. S'il n'est pas déjà installé, vous pouvez l'installer via le gestionnaire de packages
de votre système d'exploitation.
Pour charger les complétions dans votre session shell actuelle :
source <(shipyard completion bash)
Pour charger les complétions pour chaque nouvelle session, exécutez la commande suivante une fois.
Sur Linux :
shipyard completion bash > /etc/bash_completion.d/shipyard
Sur macOS :
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
Si la complétion du shell n'est pas déjà activée dans votre environnement, vous devrez l'activer. Vous pouvez exécuter la commande suivante une fois :
echo "autoload -U compinit; compinit" >> ~/.zshrc
Pour charger les complétions dans votre session shell actuelle :
source <(shipyard completion zsh); compdef _shipyard shipyard
Pour charger les complétions pour chaque nouvelle session, exécutez la commande suivante une fois.
Sur Linux :
shipyard completion zsh > "${fpath[1]}/_shipyard"
Sur macOS :
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
Vous devrez démarrer un nouveau shell pour que cette configuration prenne effet.
Fish
Pour charger les complétions dans votre session shell actuelle :
$ shipyard completion fish | source
Pour charger les complétions pour chaque session, exécutez une fois :
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Pour charger les complétions dans votre session shell actuelle :
shipyard completion powershell | Out-String | Invoke-Expression
Pour charger les complétions pour chaque nouvelle session, exécutez :
shipyard completion powershell > shipyard.ps1
et sourcez ce fichier depuis votre profil PowerShell.
Utiliser Shipyard depuis un assistant IA (MCP)
shipyard mcp serve exécute un serveur Model Context Protocol, afin qu'un
assistant tel que Claude Code, Claude Desktop, Cursor ou Codex puisse lister, inspecter, recompiler et configurer vos
environnements, lire les journaux de services, gérer les volumes et vérifier une modification poussée par rapport à son environnement.
Avec la CLI connectée, ajoutez-la à Claude Code :
claude mcp add shipyard -- shipyard mcp serve
Puis posez des questions comme :
- « Quels environnements sont en cours d'exécution pour le dépôt
web? » - « Affiche-moi les journaux du service
apisur l'environnement de ma branche. » - « Définis
FEATURE_FLAGS=betasur cet environnement et redémarre le serviceworker. » - « Je viens de pousser. Vérifie la modification par rapport à son environnement. » (ou
/mcp__shipyard__verify)
Consultez le guide MCP pour le configurer dans d'autres clients, la configuration, la liste complète des outils,
l'invite verify et le dépannage.