Перейти к содержимому

CLI

outry <КОМАНДА>

Отправить запросы и выполнить их директивы.

Окно терминала
outry run <ПУТИ|ИМЕНА>...

Папки раскрываются во все *.outry и *.http внутри них по алфавиту; файл .outry выполняет все свои запросы и сценарии сверху вниз. Явно указанные файлы выполняются в заданном порядке. Запрос или сценарий можно указать по имени (CreateOrder, users.Create) или по строке (api/orders.outry:12). Значения из save передаются следующим запросам; запросы, вызванные из .outry, делят один кеш прогона и cookies.

Флаг Описание
-e, --env <ENV> Окружение из env.toml (по умолчанию — default из конфига)
--project <DIR> Папка проекта (по умолчанию env.toml ищется вверх от первого пути)
--var <NAME=VALUE> Переопределить переменную; можно несколько раз
--fail-fast Остановиться на первом упавшем запросе
-v, --verbose Печатать заголовки и тело ответа
--json Печатать по JSON-объекту на запрос (JSON Lines)
--timeout <SECONDS> Таймаут запроса, по умолчанию 30
--fresh Не читать и не сохранять значения save и ответы cache: между запусками
--no-keyring Не искать секреты в системном хранилище паролей
--yes Отправлять запросы с confirm: true без вопроса

Код выхода: 0 — всё прошло, 1 — хотя бы один запрос упал, 2 — Outry не смог запуститься.

Проверить проект без отправки запросов. Код выхода 1, если есть ошибка.

Окно терминала
outry check [ПУТИ]... [--env <ENV>] [--var <NAME=VALUE>]... [--no-keyring]
[--no-fmt] [--go <DIR> | --no-go] [--format text|github]

Без путей (или с путём к самому проекту, outry check api) проверяется всё:

  • синтаксис, а в .outry ещё имена вызываемых запросов, их аргументы, формы, файлы schema() и циклы вызовов;
  • каждое окружение: вызовы запросов, которым only его запрещает, неизвестные окружения в only и переменные, которых в окружении нет нигде (имена из save где-либо в проекте считаются заданными). Хранилище паролей не читается — секрет считается заданным, если он перечислен в secrets. Одна и та же ошибка в нескольких окружениях печатается один раз;
  • формат, как outry fmt --check (--no-fmt выключает);
  • Go-код, как outry import go --check, если go.mod нашёлся в каталоге проекта или выше, до корня репозитория. --go <DIR> указывает сервис, --no-go пропускает.

С путями проверяются только эти файлы, без Go. --env проверяет одно окружение с настоящими переменными — --var, OUTRY_*, env.toml и хранилище паролей (--no-keyring выключает). --format github печатает аннотации GitHub Actions.

api/orders/create.outry:1:1: error: not formatted (`outry fmt`)
api/orders/create.outry:7:22: error: variable `api_key` is not defined in staging, prod
api/orders/create.outry:9:13: error: `Seed` is limited to dev and cannot be called in prod
main.go:42:1: error: route DELETE /orders/{id} has no request (`outry import go` creates api/orders/delete.outry)
12 files, 3 environments, 18 Go routes: 4 errors, 0 warnings

Привести файлы .outry к каноническому виду, как gofmt; комментарии сохраняются. Печатает изменённые файлы.

Окно терминала
outry fmt [ПУТИ]... [--check]

По умолчанию — текущая папка. --check ничего не меняет и завершается с кодом 1, если файл не отформатирован, — для CI.

Переписать файлы .http в .outry рядом с ними. Существующий .outry не перезаписывается. См. Файлы .http.

Окно терминала
outry convert [ПУТИ]... [--dry-run] [--rm]
Флаг Описание
--dry-run Напечатать результат вместо записи файлов
--rm Удалить .http после того, как записан его .outry

Показать итоговое значение каждой переменной окружения и откуда оно взялось. Значения секретов (из хранилища паролей или из списка secrets) замаскированы.

Окно терминала
outry vars [-e <ОКРУЖЕНИЕ>] [--project <ПАПКА>] [--var <ИМЯ=ЗНАЧЕНИЕ>]...
project billing-api · env dev
base env.toml http://localhost:8080
token keychain eyJ…(212 chars)
api_key missing not set: outry secret set api_key --env dev
user_id saved 42
Флаг Описание
--var <ИМЯ=ЗНАЧЕНИЕ> Переопределить переменную, как в outry run
--fresh Не учитывать значения из save
--no-keyring Не искать секреты в хранилище паролей
--reveal Показать значения секретов целиком
--json Вывести JSON-массив

Переменные из OUTRY_* и хранилища паролей показываются только для имён, которые есть в env.toml (включая secrets) или среди сохранённых значений.

Показать окружения проекта; * — окружение по умолчанию.

Окно терминала
outry envs [--dir <DIR>]

Сохранить или удалить секрет в системном хранилище паролей. set читает значение из stdin.

Окно терминала
outry secret set <NAME> [-e <ENV>] [--project <DIR>]
outry secret rm <NAME> [-e <ENV>] [--project <DIR>]
Окно терминала
echo -n "$TOKEN" | outry secret set token --env prod

Создать api/env.toml и пример запроса в указанной папке (по умолчанию — текущей). Если env.toml уже есть, завершается с ошибкой.

Окно терминала
outry init [DIR]

Создать запрос .outry для каждого роута Go-сервиса (chi, gin, net/http), у которого его ещё нет. Расхождения с кодом существующих запросов выводятся под роутом; меняются файлы только с --fix. Подробнее — Импорт роутов из Go.

Окно терминала
outry import go [DIR]

DIR — папка с Go-кодом, сканируется рекурсивно (по умолчанию — текущая). Файлы создаются в проекте, найденном от текущей папки; у него должен быть env.toml.

Флаг Описание
--dry-run Только показать план (с --fix — diff правок)
--check Для CI: ничего не писать, отчёт по файлам, код выхода 1 при ошибках
--fix Исправить расхождения, которые правятся без потери смысла
--prune Удалить файлы, все запросы которых — к пропавшим роутам
--format <F> text (по умолчанию), github (аннотации GitHub Actions), json
--base <NAME> Переменная с адресом сервиса в существующих URL .http (для сопоставления), по умолчанию base
--query <FILE.scm> Дополнительный запрос tree-sitter для другого роутера; можно несколько раз
--project <DIR> Папка проекта с env.toml
--json То же, что --format json

Языковой сервер для файлов .outry через stdin/stdout: ошибки outry check, предупреждения окружения, расхождения с Go-кодом с Quick Fix, автодополнение, подсказки, переход к определению, форматирование и code lens «▶ Send». Запускается редактором — см. Редакторы.

Окно терминала
outry lsp [--env <ENV>] [--no-keyring]
Флаг Описание
--env <ENV> Окружение для переменных и отправки, по умолчанию — default из env.toml
--no-keyring Не брать секреты из системного хранилища паролей

Обновить CLI до последнего релиза на GitHub. Перед заменой бинаря проверяется контрольная сумма SHA-256 архива.

Окно терминала
outry update [--check]

--check только сообщает, есть ли новая версия.

Напечатать скрипт автодополнения для шелла: bash, zsh, fish, powershell или elvish. Дополняются команды, флаги и их описания.

Окно терминала
outry completions fish > ~/.config/fish/completions/outry.fish
outry completions bash > ~/.local/share/bash-completion/completions/outry
echo 'source <(outry completions zsh)' >> ~/.zshrc

После outry update запустите снова, чтобы подхватить новые команды.

Переменная Что делает
OUTRY_<NAME> Значение переменной name; см. Переменные
OUTRY_NO_UPDATE_NOTIFIER=1 Отключить напоминание о новой версии (NO_UPDATE_NOTIFIER тоже работает)
CI Если задана, напоминание о новой версии отключено
NO_COLOR Отключить цветной вывод