Справочник CLIJSON и автоматизация

JSON и автоматизация

CLI создан для скриптинга. Передавайте --json для машиночитаемого вывода, управляйте из CI с помощью токена и обнаруживайте схему любой команды в рантайме.

Другой читатель этого вывода — ИИ-агент для кодинга — деплой из Claude Code показывает, что он делает с JSON неудачной сборки.

--json везде

Добавляйте --json к любой команде для структурированного вывода. CLI также автоматически переключается на JSON, когда stdout не является TTY.

lizard ps --json
lizard secrets list --json
lizard metrics --json

Команды со стримингом

Для стриминговых команд (lizard up без --detach) --json выдаёт один JSON-объект на строку:

{ "event": "log", "line": "Step 1/8 : FROM node:20" }
{ "event": "log", "line": "..." }
{ "event": "deployed", "status": "running", "url": "https://app.onlizard.com" }

Поток завершается done, или error / failed. lizard up дополнительно выдаёт финальное событие deployed / failed / deploying с status и url (которые могут быть null).

logs --json — это снимок, а не поток

lizard logs --json возвращает последние 200 строк (переопределяется через --tail N, максимум 1000) и завершается. Не ждите от него дополнительного вывода. Для конкретного инцидента используйте --restart latest или --restart <id>.

Обнаружение схемы

Выведите точные аргументы, опции и коды выхода любой команды:

lizard --help --json                 # whole tree + global flags + exit codes
lizard service set --help --json     # one command

Формат ответа — { cli, version, command: { arguments, options, subcommands }, globalOptions, exitCodes }. Поскольку он генерируется из вашего установленного бинарника, он всегда соответствует вашей версии — лучше полагаться на него, чем хардкодить флаги.

CI / работа без интерфейса

Аутентифицируйтесь токеном и явно укажите проект (безголовый up не создаст проект автоматически):

# Set LIZARD_TOKEN through your CI secret store.
lizard init --name my-project
lizard up --ci --service api --detach

Проверяйте коды выхода для ветвления пайплайна:

КодЗначение
0успех
1общая ошибка
2авторизация — токен отсутствует / просрочен
3не найдено
4таймаут
5отменено
if lizard redeploy --service api --json; then
  echo "Deploy succeeded"
else
  status=$?
  echo "Deploy failed with code $status" >&2
  lizard logs --build --json || true
  exit "$status"
fi