ci: attach SBOM (SPDX + CycloneDX) to every release (#18) #56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright (c) 2026 Santander Group | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # | |
| # Dependency vulnerability scan with pip-audit. | |
| name: Dependency scan | |
| on: | |
| push: | |
| branches: [main, development] | |
| pull_request: | |
| schedule: | |
| - cron: "37 4 * * *" # daily 04:37 UTC | |
| permissions: | |
| contents: read | |
| jobs: | |
| pip-audit: | |
| name: pip-audit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| - name: Set up Python | |
| uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| - name: Install project | |
| run: | | |
| # Upgrade pip + setuptools (PYSEC-2025-49 fixed in setuptools 78.1.1). | |
| python -m pip install --upgrade pip "setuptools>=78.1.1" | |
| # CPU-only torch build (pulled transitively via pgmpy): avoids | |
| # pulling NVIDIA CUDA wheels. | |
| pip install torch --index-url https://download.pytorch.org/whl/cpu | |
| pip install -e "." | |
| - name: Run pip-audit | |
| uses: pypa/gh-action-pip-audit@1220774d901786e6f652ae159f7b6bc8fea6d266 # v1.1.0 | |
| with: | |
| local: true | |
| vulnerability-service: osv | |
| # PYSEC-2025-194: torch.jit.script memory corruption. No fixed | |
| # version published upstream, and this library never calls | |
| # torch.jit.script (only pgmpy-driven Bayesian-network training). | |
| # PYSEC-2025-49: setuptools PackageIndex.download path traversal. | |
| # setuptools is a build-time tool, not a runtime dependency, and the | |
| # vulnerable download path is never invoked by this library. | |
| ignore-vulns: | | |
| PYSEC-2025-194 | |
| PYSEC-2025-49 |