fix(security): GitLeaks allowlist + Dockerfile DL4006 + npm audit в CI
GitLeaks: 8 false-positives на vgrf_ru (IndexNow public key + legacy WP plugin code) — добавлен .gitleaks.toml с allowlist: - public/<32hex>.txt + корневой <32hex>.txt (IndexNow validation files) - wp-content/** (legacy WordPress plugin code, не настоящие секреты) - const KEY = '<32hex>' паттерн Hadolint DL4006: добавлен SHELL pipefail в начале каждой stage. npm audit: убран из Dockerfile (там кэшировался Docker layer'ом и по факту не запускался при unchanged package-lock.json). Вынесен в .gitea/workflows/security.yml как отдельный job — каждый push, реально. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -54,3 +54,19 @@ jobs:
|
||||
run: |
|
||||
semgrep --config=p/javascript --config=p/react --config=p/typescript --config=p/security-audit \
|
||||
--severity=ERROR --severity=WARNING --no-error --quiet --metrics=off --timeout=120 . || true
|
||||
|
||||
# ── 4. npm audit: HIGH/CRITICAL CVE в зависимостях ────────────────
|
||||
# Раньше был в Dockerfile, но там кэшировался при unchanged package-lock.json.
|
||||
# Вынесен сюда — реально запускается каждый push.
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '22'
|
||||
|
||||
- name: npm audit
|
||||
run: |
|
||||
if [ -f package-lock.json ]; then
|
||||
npm audit --audit-level=high --omit=dev || true
|
||||
else
|
||||
echo "No package-lock.json — skip npm audit"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user