Перейти до вмісту

CLI-перевірки

CLI-перевірки потребують встановлених програм. Якщо інструменту немає — статус skip, не помилка. Встановлюйте лише те, що потрібно вашому стеку.


Semgrep — SAST

semgrep scan --config auto — вразливості, OWASP Top 10, антипатерни у 30+ мовах.

Встановлення:

Terminal window
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 тощо.

Встановлення:

Terminal window
winget install AquaSecurity.Trivy

Налаштування:

"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 тощо.

Встановлення:

Terminal window
npm i -D eslint eslint-plugin-security

Налаштування:

"devManager.quality.builtin.eslintSecurity.enabled": true

Додаткова конфігурація не обов’язкова — розширення знаходить ESLint само.


Bandit — безпека Python

Статичний аналіз: паролі в коді, SQL injection, небезпечна десеріалізація, subprocess тощо.

Встановлення:

Terminal window
pip install bandit

Налаштування:

"devManager.quality.builtin.bandit.enabled": true,
"devManager.quality.builtin.bandit.path": "bandit"

Без Python-файлів у проєкті — skip.


Bearer — потоки чутливих даних

SAST: як рухаються PII, credentials, токени; витоки, небезпечне зберігання, compliance.

Встановлення (macOS/Linux):

Terminal window
brew install bearer/tap/bearer
# Linux
curl -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+ мовах.

Terminal window
npm i -D jscpd
"devManager.quality.builtin.jscpd.enabled": true,
"devManager.quality.builtin.jscpd.threshold": 5,
"devManager.quality.builtin.jscpd.minLines": 5

threshold — відсоток дублювання для попередження.


Knip — мертвий код

Невикористані експорти, файли, залежності в JS/TS.

Через npx — ручне встановлення не обов’язкове.

"devManager.quality.builtin.knip.enabled": true

dependency-cruiser — циклічні імпорти

Цикли імпортів у JS/TS; підтримує .dependency-cruiser.js.

Через npx.

"devManager.quality.builtin.dependencyCruiser.enabled": true

Package Audit — CVE через менеджери пакетів

МоваКоманда
Node.jsnpm audit / pnpm audit / yarn audit
Pythonpip-audit
Rustcargo audit
Rubybundle audit
Gogovulncheck
PHPcomposer 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": true

Hadolint — Dockerfile

Terminal window
winget install hadolint
"devManager.quality.builtin.hadolint.enabled": true

Усі Dockerfile та Dockerfile.* у дереві проєкту.


ShellCheck — shell-скрипти

Terminal window
winget install koalaman.shellcheck
"devManager.quality.builtin.shellcheck.enabled": true

golangci-lint — Go

Лише якщо є go.mod.

Terminal window
brew install golangci-lint
"devManager.quality.builtin.golangciLint.enabled": true,
"devManager.quality.builtin.golangciLint.warnAt": 5,
"devManager.quality.builtin.golangciLint.failAt": 20

Stryker — мутаційне тестування

JS/TS. За замовчуванням вимкнено — може бути повільно.

Terminal window
npm i -D @stryker-mutator/core @stryker-mutator/jest-runner
"devManager.quality.builtin.stryker.enabled": false