Shipyard
официальныйCLI Shipyard предоставляет MCP-сервер для управления средами Shipyard напрямую: извлечение логов, сравнение веток, запуск тестов, остановка и запуск сред.
Что можно делать с Shipyard MCP?
- Список окружений с фильтрами — Запросите показ окружений, отфильтрованных по репозиторию, ветке или pull request, с помощью
shipyard get environments. - Просмотр деталей окружения — Получите полную информацию для конкретного UUID окружения, включая его bypass-токен для скриптов.
- Управление жизненным циклом окружения — Остановите, перезапустите, отмените сборки, пересоберите или восстановите удаленные окружения по UUID.
- Доступ к сервисам и журналам — Получите открытые порты, просматривайте журналы в реальном времени, выполняйте команды или настраивайте проброс портов в сервис работающего окружения.
- Работа с томами и снимками — Список, сброс, создание снимков, загрузка или выгрузка файлов в тома внутри окружения.
- Развертывание изолированных окружений — Клонируйте сборку приложения с пользовательскими переопределениями веток и политиками пересборки.
Документация
Интерфейс командной строки Shipyard
Инструмент для управления эфемерными средами на платформе Shipyard.
Используете ИИ-ассистента? CLI включает MCP-сервер: см. Использование Shipyard с ИИ-ассистентом.
Установка
-
Linux и macOS
curl https://www.shipyard.sh/install.sh | bash -
Windows Перейдите на страницу релизов и загрузите исполняемый файл для Windows.
-
Homebrew
brew tap shipyard/tap brew install shipyard
Вход в систему
Выполните shipyard login для инициализации CLI. Вам будет предложено войти в Shipyard в браузере. Затем CLI
сохранит ваш API-токен в локальной конфигурации. Вы готовы начать выполнять команды.
Или установите токен вручную
Установите ваш API-токен Shipyard как значение переменной окружения SHIPYARD_API_TOKEN.
Вы можете получить его, перейдя на страницу вашего профиля.
Вы можете связаться с нами по адресу support@shipyard.build, если хотите включить API-доступ для вашей организации. Если у вас есть другие вопросы, присоединяйтесь к нашему сообществу Slack.
shipyard set token
В качестве альтернативы вы можете использовать файл конфигурации, хранящийся по умолчанию в $HOME/.shipyard/config.yaml.
При первом запуске CLI создаст пустой файл конфигурации по умолчанию, который вы затем сможете отредактировать.
Вы также можете указать нестандартный путь к конфигурации с помощью флага --config {path}, добавляемого к любой команде.
Добавьте любые значения конфигурации в ваш файл и убедитесь, что файл соответствует синтаксису YAML. Например:
api_token: <your-token>
org: <your-non-default-org>
Значения ваших переменных окружения переопределяют соответствующие значения в конфигурации.
Базовое использование
Получить все организации, в которых вы состоите
shipyard get orgs
Установить глобальную организацию по умолчанию
shipyard set org {org-name}
Получить текущую настроенную организацию
shipyard get org
Список всех сред
shipyard get environments
Доступные флаги:
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| branch | Фильтр по имени ветки | string | |
| deleted | Возвращать удаленные среды | boolean | false |
| json | Вывести полный JSON-вывод | boolean | false |
| name | Фильтр по имени приложения | string | |
| org-name | Фильтр по имени организации, если вы состоите в нескольких организациях | string | ваша организация по умолчанию |
| page | Запрашиваемый номер страницы | int | 1 |
| page-size | Запрашиваемый размер страницы | int | 20 |
| pull-request-number | Фильтр по номеру pull request | string | |
| repo-name | Фильтр по имени репозитория | string |
Примеры:
- Список всех сред, запускающих репозиторий
flask-backendна веткеmain:
shipyard get environments --repo-name flask-backend --branch main
- Список всех удаленных сред:
shipyard get environments --deleted
Получить сведения о конкретной среде по её UUID
shipyard get environment {environment_uuid}
Доступные флаги:
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| json | Вывести полный JSON-вывод | boolean | false |
| org | Организация среды, если вы состоите в нескольких организациях | string | ваша организация по умолчанию |
| bypass-token | Вывести только bypass-токен среды, для скриптов | boolean | false |
--bypass-token позволяет скрипту использовать токен без ввода или вывода его на экран:
SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/
Остановить запущенную среду
shipyard stop environment {environment_uuid}
Перезапустить остановленную среду
shipyard restart environment {environment_uuid}
Отменить текущую сборку для среды
shipyard cancel environment {environment_uuid}
Пересобрать среду
shipyard rebuild environment {environment_uuid}
Восстановить удаленную среду
shipyard revive environment {environment_uuid}
Развернуть отдельную среду
Создайте новую, независимую («отдельную») среду, клонируя существующую сборку приложения. Требуется, чтобы отдельные среды были включены для вашей организации.
shipyard detached deploy {application_build_uuid} --name my-detached-env
Переопределите ветки для каждого репозитория и управляйте тем, будет ли отдельная среда пересобираться при новых коммитах:
# 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
Получить все сервисы и открытые порты для среды
shipyard get services --env {environment_uuid}
Выполнить команду в сервисе запущенной среды
Выполните любую команду с любыми аргументами и флагами в заданном сервисе для запущенной среды. Передавайте любые аргументы команды после двойной косой черты.
shipyard exec --env {environment_uuid} --service {service_name} -- bash
Проброс порта сервиса запущенной среды
shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}
Получить логи сервиса запущенной среды
shipyard logs --env {environment_uuid} --service {service_name}
Посетить среду
shipyard visit {environment_uuid}
Доступные флаги:
| Имя | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| follow | Следовать за выводом логов | boolean | false |
| tail | Количество последних строк логов для отображения | int | 3000 |
Работа с томами
Список всех томов в среде
shipyard get volumes --env {environment_uuid}
Список всех снимков томов в среде
shipyard get snapshots --env {environment_uuid}
Сбросить том в среде
shipyard reset volume --env {environment_uuid}
Создать снимок в среде
shipyard create snapshot --env {environment_uuid}
Загрузить снимок тома в среде
shipyard load snapshot --env {environment_uuid} --sequence-number {n}
Загрузить файл в том в среде
shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}
Вызов REST API напрямую
shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json
Пути должны начинаться с /api/v1 или /api/v2; ваш токен и организация добавляются автоматически.
bypass_token и учетные данные kubeconfig скрываются, если вы не передадите --include-secrets.
Подключение к telepresence
shipyard telepresence connect --env {environment_uuid}
Оттуда вы сможете напрямую общаться со всеми подами в пространстве имен. Возможно, вам придется использовать
имя хоста пространства имен для связи с сервисами, которое можно получить через telepresence status в поле Namespace. Например, для связи с redis используйте redis.shipyard-app-build-{uuid}
Создание исполняемого файла из кода:
Вы можете создать исполняемый файл, выполнив следующую команду:
make
Чтобы запустить этот новый исполняемый файл:
./shipyard
Включение автодополнения
Bash
Этот скрипт зависит от пакета bash-completion. Если он еще не установлен, вы можете установить его через менеджер пакетов вашей ОС.
Чтобы загрузить автодополнение в текущей сессии оболочки:
source <(shipyard completion bash)
Чтобы загружать автодополнение для каждой новой сессии, выполните следующее один раз.
На Linux:
shipyard completion bash > /etc/bash_completion.d/shipyard
На macOS:
shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard
Zsh
Если автодополнение оболочки еще не включено в вашей среде, вам нужно будет включить его. Вы можете выполнить следующее один раз:
echo "autoload -U compinit; compinit" >> ~/.zshrc
Чтобы загрузить автодополнение в текущей сессии оболочки:
source <(shipyard completion zsh); compdef _shipyard shipyard
Чтобы загружать автодополнение для каждой новой сессии, выполните следующее один раз.
На Linux:
shipyard completion zsh > "${fpath[1]}/_shipyard"
На macOS:
shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard
Вам нужно будет запустить новую оболочку, чтобы эта настройка вступила в силу.
Fish
Чтобы загрузить автодополнение в текущей сессии оболочки:
$ shipyard completion fish | source
Чтобы загружать автодополнение для каждой сессии, выполните один раз:
shipyard completion fish > ~/.config/fish/completions/shipyard.fish
PowerShell
Чтобы загрузить автодополнение в текущей сессии оболочки:
shipyard completion powershell | Out-String | Invoke-Expression
Чтобы загружать автодополнение для каждой новой сессии, выполните:
shipyard completion powershell > shipyard.ps1
и подключите этот файл из вашего профиля PowerShell.
Использование Shipyard с ИИ-ассистентом (MCP)
shipyard mcp serve запускает сервер Model Context Protocol, поэтому
ассистент, такой как Claude Code, Claude Desktop, Cursor или Codex, может перечислять, проверять, пересобирать и настраивать ваши
среды, читать логи сервисов, управлять томами и проверять отправленное изменение в его среде.
После входа в CLI добавьте его в Claude Code:
claude mcp add shipyard -- shipyard mcp serve
Затем задавайте вопросы, например:
- «Какие среды запущены для репозитория
web?» - «Покажи логи сервиса
apiв среде моей ветки». - «Установи
FEATURE_FLAGS=betaв этой среде и перезапусти сервисworker». - «Я только что отправил изменения. Проверь изменение в его среде». (или
/mcp__shipyard__verify)
См. Руководство по MCP для настройки в других клиентах, конфигурации, полного списка инструментов,
подсказки verify и устранения неполадок.