| 1 | name: OSV-Scanner |
| 2 | |
| 3 | # Scheduled OSV-Scanner workflow for vulnerability drift detection. |
| 4 | # Scans the repository lockfiles (uv.lock, mcp/go.sum) on a weekly schedule |
| 5 | # and uploads results to GitHub code scanning, so newly disclosed CVEs in |
| 6 | # the dependency tree are visible even between PRs. |
| 7 | # |
| 8 | # Advisory-first: fail-on-vuln is false until maintainers confirm a clean |
| 9 | # baseline, matching the pattern in security.yml. |
| 10 | # |
| 11 | # Separate from the pip-audit job in security.yml (which runs on every PR |
| 12 | # and push) and from the dependency-review gate (which blocks on new |
| 13 | # vulnerable deps at PR time). This workflow fills the scheduled-drift gap. |
| 14 | |
| 15 | on: |
| 16 | schedule: |
| 17 | # Weekly, Mondays at 12:30 UTC. |
| 18 | - cron: "30 12 * * 1" |
| 19 | workflow_dispatch: |
| 20 | |
| 21 | permissions: {} |
| 22 | |
| 23 | jobs: |
| 24 | scan-scheduled: |
| 25 | uses: google/osv-scanner-action/.github/workflows/osv-scanner-reusable.yml@6e4298ebc4db23e847df9b2e2de2939d6f066c67 # v2.5.1 |
| 26 | permissions: |
| 27 | actions: read # Required by the pinned reusable workflow for SARIF upload. |
| 28 | contents: read |
| 29 | security-events: write |
| 30 | with: |
| 31 | # Advisory-first: surface results in code scanning without blocking. |
| 32 | fail-on-vuln: false |
| 33 |