name: Security Audit
# Supply-chain gate (SEC-I1): cargo-deny scans the dependency tree for
# RUSTSEC advisories, disallowed licenses, banned crates, and untrusted
# sources, per the crate's `deny.toml`. cargo-deny's advisory check uses
# the same RUSTSEC database as cargo-audit but also honours the
# `[advisories] ignore` policy in deny.toml, so it is the single gate here.
on:
push:
branches:
- main
pull_request:
schedule:
# Weekly, Monday 02:00 UTC — catches advisories filed after merge.
- cron: '0 2 * * 1'
jobs:
cargo-deny:
name: cargo deny (advisories + licenses + bans + sources)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install cargo-deny
run: cargo install cargo-deny --locked
- name: Run cargo deny
run: cargo deny check