TaskBounty runs automated dependency vulnerability scanning in CI so maintainers are notified when vulnerable packages appear in the frontend (npm/pnpm) or contract (Cargo) dependency trees.
| Criterion | How it is met |
|---|---|
| Scanner configured | pnpm audit (frontend) and cargo audit (contract) in CI; Dependabot for ongoing updates |
| Runs in CI | .github/workflows/dependency-scan.yml |
| Reports generated | JSON + text artifacts uploaded on every run; job summaries on the Actions page |
| Documentation updated | This guide + links from FRONTEND_CI_GUIDE.md and CONTRIBUTING.md |
File: .github/workflows/dependency-scan.yml
- Pull requests targeting
main - Pushes to
main - Weekly schedule (Monday 08:00 UTC)
- Manual
workflow_dispatch
-
Frontend Dependency Scan
- Installs frontend deps with
pnpm install --frozen-lockfile - Runs
pnpm audit(human-readable) andpnpm audit --json - Uploads artifact:
frontend-dependency-scan-reports - Writes a GitHub Actions job summary for maintainers
- Installs frontend deps with
-
Contract Dependency Scan
- Installs
cargo-audit - Runs
cargo auditandcargo audit --jsonagainstcontract/Cargo.lock - Uploads artifact:
contract-dependency-scan-reports - Writes a GitHub Actions job summary for maintainers
- Installs
Advisory findings are reported, not used as a hard merge blocker by default. Existing transitive advisories must not fail unrelated PRs. The workflow does fail if the scanner cannot produce report files (scanner/tooling breakage).
Maintainers should review:
- The Actions job summary on each run
- Downloaded artifacts under Actions → run → Artifacts
- Dependabot PRs labeled
dependencies/security
File: .github/dependabot.yml
Weekly update PRs for:
npmecosystem in/frontendcargoecosystem in/contractgithub-actionsat the repository root
This is the primary ongoing notification channel for maintainers when vulnerable or outdated packages need upgrades.
# Requires: pnpm (frontend), cargo-audit (contract)
# cargo install cargo-audit --locked
# # or: cargo binstall cargo-audit
chmod +x scripts/run-dependency-scan.sh
./scripts/run-dependency-scan.shReports are written to reports/dependency-scan/:
frontend-pnpm-audit.json/frontend-pnpm-audit.txtcontract-cargo-audit.json/contract-cargo-audit.txt
Validate report generation (integration check used in the self-correction loop):
./scripts/test-dependency-scan.sh- Frontend build/lint:
.github/workflows/frontend-ci.yml— seeFRONTEND_CI_GUIDE.md - Contract fmt/build/test/clippy:
.github/workflows/contract-ci.yml