Назад к обновлениям
New releaseJul 28, 2026

deptrust v0.14.0

CLI и MCP-сервер, который проверяет версии пакетов на наличие известных уязвимостей в 14+ экосистемах, включая npm, PyPI, crates.io, Go modules и GitHub Actions. Интегрируется с AI-агентами через хуки и скиллы.

Поделиться

deptrust

     __           __                  __
 ___/ /___  ___  / /________  _______/ /_
/ _  / __ \/ _ \/ __/ ___/ / / / ___/ __/
/  __/ /_/ /  __/ /_/ /  / /_/ (__  ) /_
\__,_/\____/ .___/\__/_/   \__,_/____/\__/
           /_/

deptrust — это CLI, который проверяет версии пакетов на известные уязвимости в npm, PyPI, crates.io, Go-модулях, RubyGems, NuGet, Maven, Packagist, pub.dev, CocoaPods, Hex.pm, Hackage, GitHub Actions и других экосистемах.

Он работает локально как CLI и как MCP-сервер. Он напрямую обращается к API публичных реестров пакетов и OSV; не существует размещённого сервиса deptrust, которому нужно доверять или который нужно настраивать.

Этот инструмент родился из разочарования тем, что AI-агенты постоянно используют старые версии.

Содержание

Область применения

Поддерживаемые экосистемы:

  • npm, включая scoped-пакеты, такие как @clidey/ux
  • PyPI
  • Cargo / crates.io
  • Go-модули
  • RubyGems
  • NuGet
  • Maven, с использованием имён пакетов groupId:artifactId
  • Packagist / Composer, с использованием имён пакетов vendor/package
  • pub.dev
  • CocoaPods
  • Hex.pm
  • Hackage
  • GitHub Actions, с использованием имён пакетов owner/repo, а также тегов, ссылок на ветки или SHA коммитов в качестве версий

deptrust в настоящее время сообщает об известных уязвимостях и даёт простую рекомендацию:

Наивысшая известная серьёзностьРекомендация
criticalblock
highblock
medium / unknownreview
lowallow
none foundallow

allow означает, что в публичных источниках данных не найдено ни одной блокирующей известной уязвимости. Это не доказывает, что пакет безопасен.

deptrust также выдаёт сигналы риска, которые не являются CVE. Например, версия, опубликованная за последние 72 часа, помечается для review, чтобы агент не устанавливал вслепую только что вышедший релиз.

Поставщики advisory опрашиваются параллельно:

  • OSV
  • GitHub Advisory Database, включая проверенные advisory и advisory о вредоносном ПО

Охват поставщиков зависит от экосистемы. Если deptrust может получить метаданные реестра, но ни один настроенный поставщик уязвимостей не поддерживает эту экосистему, он возвращает unknown вместо того, чтобы считать пакет безопасным.

Охват поставщиков:

ЭкосистемаМетаданные реестраOSVGitHub Advisory DB
npmдадада
PyPIдадада
Cargo / crates.ioдадада
Go-модулидадада
RubyGemsдадада
NuGetдадада
Mavenдадада
Packagist / Composerдадада
pub.devдадада
CocoaPodsданетда
Hex.pmдадада
Hackageдаданет
GitHub Actionsдадада

JSON-вывод содержит поля покрытия advisory:

  • checked_providers: поставщики уязвимостей, к которым deptrust фактически обращался
  • skipped_providers: настроенные поставщики, пропущенные из-за неподдерживаемой экосистемы
  • advisory_coverage: full, partial, none или error
  • advisory_coverage_reason: краткое объяснение значения покрытия
  • registry_verification: verified, когда метаданные реестра подтвердили версию, или unverified, когда проверка точной версии продолжилась после временного сбоя реестра
  • registry_verification_reason: ошибка реестра, когда проверка была недоступна

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

HTTP-запросы повторяются при ответах 429, 502, 503 и 504 до трёх попыток суммарно. Повторы используют короткие экспоненциальные задержки и учитывают значения Retry-After до двух секунд; более длительные ожидания, запрошенные сервером, быстро прерываются, чтобы CLI не зависал. Когда повторы advisory исчерпаны, результат становится неполным, и рекомендация allow не выдаётся.

Аутентификация GitHub API

Запросы к GitHub Advisory Database и GitHub Actions API могут использовать кратковременный токен GitHub App с минимальными привилегиями. В CI передавайте его через DEPTRUST_GITHUB_TOKEN:

DEPTRUST_GITHUB_TOKEN="$GITHUB_APP_TOKEN" deptrust check npm lodash 4.17.20

Приоритет учётных данных: DEPTRUST_GITHUB_TOKEN, затем GITHUB_TOKEN, затем GH_TOKEN. Для локального использования резервный вариант через GitHub CLI включается явно с помощью DEPTRUST_GITHUB_AUTH=gh deptrust check ...; он выполняет gh auth token без запросов. Если учётные данные недоступны, DepTrust продолжает работу без аутентификации. Ошибка ограничения скорости GitHub API или прав доступа даёт результат unknown с диагностикой и никогда не расценивается как успех только по OSV.

DepTrust никогда не хранит, не встраивает, не кэширует, не регистрирует в журналах, не телеметрирует и не выводит токены GitHub. Заголовки аутентификации отправляются только на https://api.github.com.

Использование CLI

Проверьте точную версию:

deptrust check npm lodash 4.17.20

Пример обычного ответа:

npm [email protected]: 2 known vulnerabilities found
recommendation: block
risk_score: 80

Проверьте последнюю версию:

deptrust check pypi requests latest

Выведите JSON:

deptrust check --json cargo serde latest

Проверьте Go-модуль:

deptrust check go golang.org/x/crypto latest

Проверьте RubyGems, NuGet или Maven:

deptrust check rubygems rails latest
deptrust check nuget Newtonsoft.Json latest
deptrust check maven org.apache.logging.log4j:log4j-core latest

Проверьте Packagist, pub.dev, CocoaPods, Hex.pm, Hackage или GitHub Actions:

deptrust check packagist monolog/monolog latest
deptrust check pub http latest
deptrust check cocoapods AFNetworking latest
deptrust check hex plug latest
deptrust check hackage aeson latest
deptrust check github-actions actions/checkout v7.0.0
deptrust check github-actions actions/checkout main

Для GitHub Actions полные SHA коммитов считаются зафиксированными (pinned). Полные semver-теги, такие как v4.2.2, принимаются без дополнительного сигнала фиксации. Теги только с мажорной версией, такие как v4, и ссылки на ветки, такие как main, являются допустимыми ссылками, но deptrust добавляет сигнал review, поскольку они могут перемещаться.

Пример JSON-ответа:

Категории