The Debian runner image marks its Python as externally managed, so `pip3 install` fails with error: externally-managed-environment, breaking the test/lint/security workflows at the install step (unrelated to the code under test). Add --break-system-packages; the runner is ephemeral so a system-wide install is fine. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
27 lines
595 B
YAML
27 lines
595 B
YAML
name: Security
|
|
|
|
on:
|
|
push:
|
|
branches: ["**"]
|
|
pull_request:
|
|
branches: ["**"]
|
|
schedule:
|
|
- cron: '0 6 * * 1'
|
|
|
|
jobs:
|
|
bandit:
|
|
name: Python Security (bandit)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install bandit
|
|
run: |
|
|
apt-get update -qq
|
|
apt-get install -y -qq python3 python3-pip
|
|
# Debian's Python is externally managed (PEP 668); the runner is ephemeral.
|
|
pip3 install --break-system-packages bandit
|
|
|
|
- name: Run bandit
|
|
run: bandit -r . --exclude .git,__pycache__ -ll
|