From 93f56784ba4252a6aec4e678fea622f9ed1de07a Mon Sep 17 00:00:00 2001 From: xscriptor Date: Sat, 24 Oct 2026 14:25:56 +0200 Subject: [PATCH 1/2] ci: add dependency security audit and Dependabot - Run pinned cargo-audit 0.22.2 with --deny warnings on push, PR and weekly - Add weekly Dependabot updates for cargo and GitHub Actions - Pin actions by commit SHA and avoid persisted credentials --- .github/dependabot.yml | 34 +++++++++++++++++++++++ .github/workflows/security-audit.yml | 40 ++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/security-audit.yml 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..9fdfdbc --- /dev/null +++ b/.github/workflows/security-audit.yml @@ -0,0 +1,40 @@ +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 + + # api does not commit a Cargo.lock, so generate one for scanning only. + - name: Generate lockfile + run: cargo generate-lockfile + + - name: Audit dependencies + run: cargo audit --deny warnings From f303b435cd44e623f1e8a9a2a0e298aa26dbeb72 Mon Sep 17 00:00:00 2001 From: xscriptor Date: Sat, 24 Oct 2026 14:29:44 +0200 Subject: [PATCH 2/2] docs: record the v1.0.1 security work in the changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bd07e58..e40bcf7 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. The workflow generates a temporary lockfile before auditing because the workspace does not version one. +- Added weekly Dependabot updates for Cargo dependencies and GitHub Actions (`open-pull-requests-limit: 5`, minor/patch grouped). +- Actions are pinned by commit SHA and checkouts do not persist credentials. No crate source or public API changed; a generated lockfile audits clean (16 crates, 0 vulnerabilities, 0 warnings). + ## 2026-09-12 - Added `xfetch-guest-api`: host-call bridge for WebAssembly core-module guests (`host_call`, `http_request`, `exec`, `log`, `protocol_version`) plus the `xfetch_alloc`/`xfetch_free` exports the host needs. - Added `wit/xfetch-runtime.wit`: the component-model contract with `plugin`, `effect` and `extension` worlds and the typed `fetch`/`exec`/`log`/`protocol-version` host interface.