Shipyard

officiel

Le 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 :

NomDescriptionTypeValeur par défaut
branchFiltrer par nom de branchestring
deletedRenvoyer les environnements supprimésbooleanfalse
jsonAfficher la sortie JSON complètebooleanfalse
nameFiltrer par nom de l'applicationstring
org-nameFiltrer par nom d'organisation, si vous faites partie de plusieurs organisationsstringvotre organisation par défaut
pageNuméro de page demandéint1
page-sizeTaille de page demandéeint20
pull-request-numberFiltrer par numéro de pull requeststring
repo-nameFiltrer par nom de dépôtstring

Exemples :

  • Lister tous les environnements exécutant le dépôt flask-backend sur la branche main :
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 :

NomDescriptionTypeValeur par défaut
jsonAfficher la sortie JSON complètebooleanfalse
orgOrganisation de l'environnement, si vous faites partie de plusieurs organisationsstringvotre organisation par défaut
bypass-tokenAfficher uniquement le jeton de contournement de l'environnement, pour les scriptsbooleanfalse

--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 :

NomDescriptionTypeValeur par défaut
followSuivre la sortie des journauxbooleanfalse
tailNombre de lignes de journal récentes à afficherint3000

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 api sur l'environnement de ma branche. »
  • « Définis FEATURE_FLAGS=beta sur cet environnement et redémarre le service worker. »
  • « 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.