diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml index c72c0b292..3eca93172 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -18,8 +18,15 @@ name: NuGet dependency submission # # Runs on push to main so the graph tracks the default branch, which is what # dependency-review diffs a PR against. +# +# Also runs daily (#1291): Dependabot matched a new advisory against the +# submitted graph only when the next snapshot arrived. MessagePack's +# GHSA-qhrr-8q5h-9q3h was published 2026-10-15 18:35 UTC and alerted +# 2026-10-16 17:24 UTC, when a dependency push to main resubmitted. on: + schedule: + - cron: "30 5 * * *" push: branches: - main diff --git a/docs/decisions/146-ci-security-gates.md b/docs/decisions/146-ci-security-gates.md index 463641529..985cc02eb 100644 --- a/docs/decisions/146-ci-security-gates.md +++ b/docs/decisions/146-ci-security-gates.md @@ -45,8 +45,10 @@ entirely. The tree-scoped `dotnet list package --vulnerable covers those at PR time. All of this leaves dependency-review blind to a transitively-introduced vulnerable package. `.github/workflows/dependency-submission.yml` closes that: on a push to `main` -touching the dependency set, Microsoft's component-detection reads the restore -output and submits the resolved graph via the Dependency Submission API. npm needs +touching the dependency set, and daily, Microsoft's component-detection reads the restore +output and submits the resolved graph via the Dependency Submission API. The +daily run exists because Dependabot matched a new advisory against the submitted +graph only when the next snapshot arrived (#1291). npm needs none of this — the graph reads `web/package-lock.json` and already has the full tree. ### Dependabot NuGet PRs: automatic lock-file healing