
GitHub Action per Heisenberg SSC
Un leggero guardrail per le PR per gli aggiornamenti delle dipendenze.
Scansiona solo le dipendenze nuove o modificate (dal tuo lock/manifest), recupera segnali di salute e rischio (deps.dev + euristiche), segnala pubblicazioni fresche, commenta un report sulla PR, opzionalmente la etichetta per la revisione di sicurezza, e può far fallire il job in caso di violazioni delle policy.
Ecosistemi supportati: PyPI (poetry.lock, requirements.txt, uv.lock), npm/yarn (package-lock.json, yarn.lock), Go (go.mod).
security review e viene eseguita in MODALITÀ AVVISO (CI rimane verde per mantenere un basso livello di fastidio).Non bloccante per impostazione predefinita: Non è un blocco rigido ma solo un rallentamento in modo da essere avvisati se viene rilevato qualcosa di sospetto. La tua pipeline CI non fallirà, ma i rischi delle dipendenze verranno mostrati nel commento. Puoi commentare
accept-risksulla PR per sopprimere notifiche future per i pacchetti segnalati finché non farai un altro commit al manifest.
Workflow minimale per un repository che utilizza 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 # PR comment
issues: write # create label (only needed if add_security_label is true)
jobs:
deps-health:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Detect changed manifest
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 ReviewSe non vuoi che l'azione aggiunga l'etichetta Security Review alle PR con dipendenze segnalate, imposta add_security_label su "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"