
GitHub Action pour Heisenberg SSC
Une barrière de protection légère pour les PRs concernant les mises à jour de dépendances.
Elle analyse uniquement les dépendances nouvelles ou modifiées (à partir de votre fichier lock/manifest), récupère des signaux de santé et de risque (deps.dev + heuristiques), signale les publications récentes, publie un rapport sur la PR, étiquette éventuellement pour une révision de sécurité, et peut faire échouer le job en cas de non-respect de la politique.
Écosystèmes pris en charge : PyPI (poetry.lock, requirements.txt, uv.lock), npm/yarn (package-lock.json, yarn.lock), Go (go.mod).
security review et s'exécute en MODE AVERTISSEMENT (CI reste verte pour réduire le niveau de gêne).Non bloquant par défaut : il ne s'agit pas d'un blocage strict, mais simplement d'un ralentisseur pour vous alerter si quelque chose de suspect est détecté. Votre pipeline CI n'échouera pas, mais les risques liés aux dépendances seront signalés dans le commentaire. Vous pouvez commenter
accept-risksur la PR pour supprimer les futures notifications pour les paquets signalés jusqu'à ce que vous fassiez un autre commit dans le manifeste.
Workflow minimal pour un dépôt utilisant Poetry / npm / Yarn / Go :
name: Heisenberg Health Check
on:
pull_request:
paths:
- "**/poetry.lock"
- "**/uv.lock"
- "**/package-lock.json"
- "**/yarn.lock"
- "**/requirements.txt"
- "**/go.mod"
permissions:
contents: read
pull-requests: write # commentaire PR
issues: write # créer une étiquette (nécessaire uniquement si add_security_label est true)
jobs:
deps-health:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Détecter le manifeste modifié
id: detect
run: |
git fetch origin ${{ github.base_ref }} --depth=1
LOCK_PATH=$(git diff --name-only origin/${{ github.base_ref }} | \
grep -E 'poetry.lock$|uv.lock$|package-lock.json$|yarn.lock$|requirements.txt$|go.mod$' | head -n1 || true)
echo "lock_path=$LOCK_PATH" >> $GITHUB_OUTPUT
- name: Heisenberg Dependency Health Check
uses: AppOmni-Labs/heisenberg-ssc-gha@v1
with:
package_file: ${{ steps.detect.outputs.lock_path }}
Security ReviewSi vous ne souhaitez pas que l'action ajoute l'étiquette Security Review aux PRs dont les dépendances sont signalées, définissez add_security_label sur "false" :
- name: Heisenberg Dependency Health Check
uses: AppOmni-Labs/heisenberg-ssc-gha@v1
with:
package_file: ${{ steps.detect.outputs.lock_path }}
add_security_label: "false"