diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1a91d14 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,34 @@ +version: 2 +updates: + - package-ecosystem: "cargo" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "04:00" + timezone: "UTC" + open-pull-requests-limit: 5 + commit-message: + prefix: "chore(deps)" + groups: + cargo-minor-and-patch: + patterns: + - "*" + update-types: + - "minor" + - "patch" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "monday" + time: "04:00" + timezone: "UTC" + open-pull-requests-limit: 5 + commit-message: + prefix: "ci(deps)" + groups: + github-actions: + patterns: + - "*" diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml new file mode 100644 index 0000000..89b1c76 --- /dev/null +++ b/.github/workflows/security-audit.yml @@ -0,0 +1,36 @@ +name: Security audit + +on: + push: + pull_request: + schedule: + # Weekly, Mondays at 04:17 UTC + - cron: "17 4 * * 1" + +permissions: + contents: read + +concurrency: + group: security-audit-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + audit: + name: cargo audit + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 + with: + persist-credentials: false + + - name: Install stable Rust toolchain + uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec # stable + with: + toolchain: stable + + - name: Install cargo-audit + run: cargo install cargo-audit --version 0.22.2 --locked + + - name: Audit dependencies + run: cargo audit --deny warnings diff --git a/CHANGELOG.md b/CHANGELOG.md index 8388f70..13d03b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 2026-10-24 — Dependency security automation + +- Added `.github/workflows/security-audit.yml`: runs `cargo audit` 0.22.2 with `--deny warnings` on push, pull request and a weekly schedule, with actions pinned by commit SHA and no persisted checkout credentials. +- Added weekly Dependabot updates for Cargo dependencies and GitHub Actions (`open-pull-requests-limit: 5`, minor/patch grouped). +- No plugin code, manifests or presets changed. The current lockfile audits clean (68 crates, 0 vulnerabilities, 0 warnings). + ## 2026-09-12 — WebAssembly examples ### Wasm plugins