CLI-перевірки
CLI-перевірки потребують встановлених програм. Якщо інструменту немає — статус skip, не помилка. Встановлюйте лише те, що потрібно вашому стеку.
Semgrep — SAST
semgrep scan --config auto — вразливості, OWASP Top 10, антипатерни у 30+ мовах.
Встановлення:
pip install semgrepНалаштування:
"devManager.quality.semgrep.enabled": true,"devManager.quality.semgrep.config": "auto"config: "auto" | "p/security-audit" | шлях до власних правил.
Trivy — CVE
Скан залежностей, Dockerfile, IaC, секретів. npm, pip, cargo, go.mod, composer, gem тощо.
Встановлення:
winget install AquaSecurity.Trivybrew install trivycurl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/binНалаштування:
"devManager.quality.builtin.trivy.enabled": true,"devManager.quality.builtin.trivy.failOnSeverity": "HIGH","devManager.quality.builtin.trivy.warnOnSeverity": "MEDIUM"ESLint Security — JS/TS
ESLint з eslint-plugin-security — прототипне забруднення, ReDoS, небезпечні regex, eval тощо.
Встановлення:
npm i -D eslint eslint-plugin-securityНалаштування:
"devManager.quality.builtin.eslintSecurity.enabled": trueДодаткова конфігурація не обов’язкова — розширення знаходить ESLint само.
Bandit — безпека Python
Статичний аналіз: паролі в коді, SQL injection, небезпечна десеріалізація, subprocess тощо.
Встановлення:
pip install banditНалаштування:
"devManager.quality.builtin.bandit.enabled": true,"devManager.quality.builtin.bandit.path": "bandit"Без Python-файлів у проєкті — skip.
Bearer — потоки чутливих даних
SAST: як рухаються PII, credentials, токени; витоки, небезпечне зберігання, compliance.
Встановлення (macOS/Linux):
brew install bearer/tap/bearer# Linuxcurl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | shНалаштування:
"devManager.quality.builtin.bearer.enabled": true,"devManager.quality.builtin.bearer.path": "bearer"Windows (WSL2):
"devManager.quality.builtin.bearer.path": "wsl bearer"jscpd — копіпаста
Дублікати коду у 50+ мовах.
npm i -D jscpd"devManager.quality.builtin.jscpd.enabled": true,"devManager.quality.builtin.jscpd.threshold": 5,"devManager.quality.builtin.jscpd.minLines": 5threshold — відсоток дублювання для попередження.
Knip — мертвий код
Невикористані експорти, файли, залежності в JS/TS.
Через npx — ручне встановлення не обов’язкове.
"devManager.quality.builtin.knip.enabled": truedependency-cruiser — циклічні імпорти
Цикли імпортів у JS/TS; підтримує .dependency-cruiser.js.
Через npx.
"devManager.quality.builtin.dependencyCruiser.enabled": truePackage Audit — CVE через менеджери пакетів
| Мова | Команда |
|---|---|
| Node.js | npm audit / pnpm audit / yarn audit |
| Python | pip-audit |
| Rust | cargo audit |
| Ruby | bundle audit |
| Go | govulncheck |
| PHP | composer audit |
"devManager.quality.builtin.pkgAudit.enabled": trueІнструмент визначається за lockfile.
Застарілі залежності
"devManager.quality.builtin.outdatedDeps.enabled": trueЛіцензії — license-checker
Список ліцензій залежностей; попередження для GPL, AGPL, LGPL, unknown.
Через npx.
"devManager.quality.builtin.licenseCheck.enabled": trueHadolint — Dockerfile
winget install hadolintbrew install hadolintcurl -sL https://github.com/hadolint/hadolint/releases/latest/download/hadolint-Linux-x86_64 \ -o /usr/local/bin/hadolint && chmod +x /usr/local/bin/hadolint"devManager.quality.builtin.hadolint.enabled": trueУсі Dockerfile та Dockerfile.* у дереві проєкту.
ShellCheck — shell-скрипти
winget install koalaman.shellcheckbrew install shellchecksudo apt install shellcheck"devManager.quality.builtin.shellcheck.enabled": truegolangci-lint — Go
Лише якщо є go.mod.
brew install golangci-lintwinget install golangci-lintgo install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"devManager.quality.builtin.golangciLint.enabled": true,"devManager.quality.builtin.golangciLint.warnAt": 5,"devManager.quality.builtin.golangciLint.failAt": 20Stryker — мутаційне тестування
JS/TS. За замовчуванням вимкнено — може бути повільно.
npm i -D @stryker-mutator/core @stryker-mutator/jest-runner"devManager.quality.builtin.stryker.enabled": false