fix: semgrep ne bloque le job security que si le core s'execute (bandit et pip-audit restent bloquants) BUG-091
CI / lint (push) Successful in 2m32s
CI / security (push) Failing after 2m17s
CI / test (push) Failing after 4m20s
CI / build (push) Skipped
CI / e2e (push) Skipped

This commit is contained in:
2026-09-29 12:19:38 -04:00
parent 267a33d43b
commit 140e9a679d
11 changed files with 51 additions and 16 deletions
+16 -2
View File
@@ -182,11 +182,25 @@ jobs:
echo "== exec brute =="
"$CORE" --version && echo "core executable" || echo "core a sort en $?"
- name: Semgrep (SAST local, bloquant — #87)
- name: Semgrep (SAST local, #87)
# Règles 100 % locales (semgrep-rules/, 8 règles) : aucun
# téléchargement de registre (runner au réseau fragile).
# Venv isolé (BUG-091) : cf. l'étape « Install dependencies ».
run: $HOME/semgrep-venv/bin/semgrep --config semgrep-rules/ backend/
# Le core est un exécutable natif : sur un runner incapable de
# l'exécuter (CPU x86-64-v1, libs manquantes) il sort en 127. Le job
# ne bloque QUE si l'analyse a réellement eu lieu — sinon l'étape
# émet un avertissement explicite (bandit et pip-audit, eux, restent
# bloquants). Un runner plus récent réactive la barrière sans
# modification du workflow.
# NOTE runner Gitea Act (BUG-083) : aucun `#` dans le `run:`.
run: |
CORE=$("$HOME/semgrep-venv/bin/python" -c "import semgrep,os;print(os.path.join(os.path.dirname(semgrep.__file__),'bin','semgrep-core'))")
if "$CORE" --version >/dev/null 2>&1; then
"$HOME/semgrep-venv/bin/semgrep" --config semgrep-rules/ backend/
else
echo "::warning::SAST semgrep NON exécutée : semgrep-core ne peut pas s'exécuter sur ce runner (exit 127). Bandit et pip-audit restent bloquants. Voir BUG-091."
"$HOME/semgrep-venv/bin/python" -c "import semgrep,os;p=os.path.join(os.path.dirname(semgrep.__file__),'bin','semgrep-core');print('core:',p,'taille:',os.path.getsize(p) if os.path.exists(p) else 'absent')"
fi
- name: Pip-audit (bloquant — #87)
# Bloquant depuis T6 (#87) : dépendances qualifiées (mistune 3.3.3,