#!/usr/bin/env bash set -euo pipefail echo "[security-audit] démarrage" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")"/../.. && pwd)" cd "$ROOT_DIR" rc=0 # 1) Audit npm (si package.json présent) if [ -f package.json ]; then echo "[security-audit] npm audit --audit-level=moderate" if ! npm audit --audit-level=moderate; then rc=1; fi || true else echo "[security-audit] pas de package.json (ok)" fi # 2) Audit Rust (si Cargo.toml présent) if command -v cargo >/dev/null 2>&1 && [ -f Cargo.toml ] || find . -maxdepth 2 -name Cargo.toml | grep -q . ; then echo "[security-audit] cargo audit" if ! cargo audit --deny warnings; then rc=1; fi || true else echo "[security-audit] pas de projet Rust (ok)" fi # 3) Recherche de secrets grossiers echo "[security-audit] scan secrets" if grep -RIE "(?i)(api[_-]?key|secret|password|private[_-]?key)" --exclude-dir .git --exclude-dir node_modules --exclude-dir target --exclude "*.md" . >/dev/null 2>&1; then echo "[security-audit] secrets potentiels détectés"; rc=1 else echo "[security-audit] aucun secret évident" fi echo "[security-audit] terminé rc=$rc" exit $rc