Open-source CLI для проверки безопасности и регрессий MCP-серверов в CI: выявляет изменения схем, безопасно имитирует атаки и формирует SARIF.
N4darae/shrt
Средство регрессионного тестирования повторно выполняет записанные цепочки вызовов API и сравнивает результаты с одобренными человеком эталонами, выявляя изменения между релизами.
- Звёзды
- 2,460
- Форки
- 169
- Открытые issues
- 6
- Последний коммит
- 12 дней назад
Что это?
shrt проверяет бэкенд, выполняя цепочки вызовов API, описанные в YAML: например, вход в систему, создание объекта, добавление запаса и чтение результата. Человек утверждает успешный прогон в качестве эталона, а в последующих релизах цепочки выполняются повторно и сравниваются с ним. Если поле изменилось, shrt указывает шаг, поле и запись, которая, предположительно, вызвала изменение.
В contract-файле описывается, что требуется для каждого rpc, откуда берутся значения, как отклоняются некорректные входные данные и как записи изменяют числовые поля. shrt может генерировать цепочки на основе этого контракта, проверяя граничные значения, отсутствующие или недействительные токены, неизвестные id и дубликаты. Инструмент использует протокол Connect поверх HTTP POST, поэтому работает с серверами на connect-go; серверы только с обычным gRPC не поддерживаются. Поддерживаются unary- и server-streaming rpc; поток читается до первого сообщения.
Инструмент написан на Go, а для компиляции .proto-файлов ему нужен buf. Учетные данные считываются из переменных окружения и скрываются в записях прогонов. Запросы отправляются только на localhost, если хост назначения не указан в конфигурации в списке разрешенных. Инструмент рассчитан на работу под управлением coding agent, но все команды можно выполнять и вручную.
Ключевые возможности
- 01Цепочки вызовов API задаются в YAML-файлах и повторно выполняются при каждом релизе.
- 02В одобренных человеком эталонах сохраняются поля ответов, в том числе те, которые не проверяются утверждениями.
- 03На основе contract-файла можно генерировать цепочки проверок граничных значений, ошибок авторизации и дубликатов.
- 04При сбоях указываются шаг, изменившееся поле и запись, предположительно вызвавшая изменение.
- 05Чтобы защитить данные в production, запросы ограничены localhost и явно разрешенными хостами.
- 06Команда для запуска CI-проверки возвращает ненулевой код завершения при сбое.
Сценарии использования
- Выявление регрессий в бэкенде на connect-go между релизами.
- Запуск регрессионных проверок API в CI для каждой новой сборки.
- Создание и сопровождение контрактов тестирования API coding agent под контролем человека.
Быстрый старт
- 1
Установите buf (инструмент сборки Protocol Buffers, который shrt требует в PATH)
- 2
Установите shrt с Go 1.26 или более новой версии
go install github.com/N4darae/shrt/cmd/shrt@latest - 3
Проверьте установленную версию
shrt version - 4
Настройте shrt в backend-проекте и проверьте его работу
shrt init
Что важно знать
- Требуются Go 1.26 или более новая версия и buf в PATH.
- Работает только с серверами, использующими протокол Connect, но не с серверами, поддерживающими только gRPC.
- В потоковых RPC чтение выполняется только до первого сообщения.
- shrt init пытается определить, какой RPC отвечает за вход в систему, поэтому результат нужно проверить.
В подборках
Темы
Частые вопросы
- Что такое shrt?
- Средство регрессионного тестирования повторно выполняет записанные цепочки вызовов API и сравнивает результаты с одобренными человеком эталонами, выявляя изменения между релизами. shrt проверяет бэкенд, выполняя цепочки вызовов API, описанные в YAML: например, вход в систему, создание объекта, добавление запаса и чтение результата. Человек утверждает успешный прогон в качестве эталона, а в последующих релизах цепочки выполняются повторно и сравниваются с ним. Если поле изменилось, shrt указывает шаг, поле и запись, которая, предположительно, вызвала изменение.
- shrt можно использовать бесплатно? Какая у него лицензия?
- shrt распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- shrt всё ещё поддерживается?
- Активно поддерживается. Последний коммит в shrt — 26 окт. 2026 г..
- Для чего можно использовать shrt?
- Выявление регрессий в бэкенде на connect-go между релизами. Запуск регрессионных проверок API в CI для каждой новой сборки. Создание и сопровождение контрактов тестирования API coding agent под контролем человека.
- Как установить shrt?
- Установите buf (инструмент сборки Protocol Buffers, который shrt требует в PATH) Установите shrt с Go 1.26 или более новой версии: go install github.com/N4darae/shrt/cmd/shrt@latest Проверьте установленную версию: shrt version Настройте shrt в backend-проекте и проверьте его работу: shrt init
- Где скачать shrt?
- Исходный код и инструкции по установке — на GitHub: https://github.com/N4darae/shrt
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
CLI-инструмент для вызова gRPC-серверов: принимает JSON, как curl, и находит схемы через server reflection или proto-файлы.
CLI-инструмент, который запускает браузерный интерфейс для интерактивной отправки запросов на gRPC-серверы — аналог Postman для REST.
Терминальный API-клиент, который хранит запросы HTTP, GraphQL, gRPC, WebSocket и SSE в обычных .http-файлах, пригодных для версионирования в git.
Нативный API-клиент с локальным хранением данных для REST, gRPC, GraphQL и WebSocket, написанный на Go и со встроенным прокси трафика.
Инструмент с открытым исходным кодом для нагрузочного тестирования: тесты производительности пишут на JavaScript и запускают из Go-бинарника.