
GitHub Action для Heisenberg SSC
Легковесный предохранитель для обновлений зависимостей в PR.
Он сканирует только новые или измененные зависимости (из вашего lock-файла/манифеста), получает показатели здоровья и риска (deps.dev + эвристика), отмечает свежие публикации, добавляет отчёт в комментарий к PR, опционально помечает его для проверки безопасности и может завершить задание при нарушении политики.
Поддерживаемые экосистемы: PyPI (poetry.lock, requirements.txt, uv.lock), npm/yarn (package-lock.json, yarn.lock), Go (go.mod).
security review и работает в режиме WARNING (CI остаётся зелёным, чтобы снизить уровень раздражения).Неблокирующий по умолчанию: Это не жёсткая блокировка, а лишь предупреждение, чтобы вы были оповещены, если обнаружено что-то подозрительное. Ваш CI не упадёт, но риски зависимостей будут отображены в комментарии. Вы можете оставить комментарий
accept-riskв PR, чтобы подавить будущие уведомления о помеченных пакетах до следующего коммита в манифест.
Минимальный workflow для репозитория, использующего 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 ReviewЕсли вы не хотите, чтобы действие добавляло метку Security Review к PR с помеченными зависимостями, установите add_security_label в "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"