Skip to content

build(deps): bump the actions-deps group across 1 directory with 5 updates - #75

Merged
github-actions[bot] merged 1 commit into
mainfrom
dependabot/github_actions/actions-deps-287f0b2e32
Jul 30, 2026
Merged

build(deps): bump the actions-deps group across 1 directory with 5 updates#75
github-actions[bot] merged 1 commit into
mainfrom
dependabot/github_actions/actions-deps-287f0b2e32

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 30, 2026

Copy link
Copy Markdown
Contributor

Bumps the actions-deps group with 5 updates in the / directory:

Package From To
actions/checkout 7.0.0 7.0.1
github/codeql-action/init 4.37.3 4.37.4
github/codeql-action/analyze 4.37.3 4.37.4
pypa/gh-action-pypi-publish 1.14.1 1.14.2
github/codeql-action/upload-sarif 4.37.3 4.37.4

Updates actions/checkout from 7.0.0 to 7.0.1

Release notes

Sourced from actions/checkout's releases.

v7.0.1

What's Changed

Full Changelog: actions/checkout@v7...v7.0.1

Changelog

Sourced from actions/checkout's changelog.

Changelog

v7.0.1

v7.0.0

v6.0.3

v6.0.2

v6.0.1

v6.0.0

v5.0.1

v5.0.0

v4.3.1

v4.3.0

v4.2.2

v4.2.1

... (truncated)

Commits

Updates github/codeql-action/init from 4.37.3 to 4.37.4

Release notes

Sourced from github/codeql-action/init's releases.

v4.37.4

  • This version of the CodeQL Action adds support for the tools input for the codeql-action/init step to be specified using a github-codeql-tools repository property. This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to toolcache to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for tools in the workflow definition always takes precedence unless the value of the repository property starts with !. #4037
  • Update default CodeQL bundle version to 2.26.2. #4051
Changelog

Sourced from github/codeql-action/init's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

[UNRELEASED]

No user facing changes.

4.37.4 - 29 Jul 2026

  • This version of the CodeQL Action adds support for the tools input for the codeql-action/init step to be specified using a github-codeql-tools repository property. This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to toolcache to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for tools in the workflow definition always takes precedence unless the value of the repository property starts with !. #4037
  • Update default CodeQL bundle version to 2.26.2. #4051

4.37.3 - 22 Jul 2026

No user facing changes.

4.37.2 - 21 Jul 2026

  • The new address format for the config-file input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the remote= prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. #4023
  • The CodeQL Action can now make use of configured private registries in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. #4007

4.37.1 - 16 Jul 2026

  • Upcoming breaking change: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. #3956
  • Update default CodeQL bundle version to 2.26.1. #4019

4.37.0 - 08 Jul 2026

  • Update default CodeQL bundle version to 2.26.0. #3995
  • In addition to the existing input format, the config-file input for the codeql-action/init step will soon support a new [owner/]repo[@ref][:path] format. All components except the repository name are optional. If omitted, owner defaults to the same owner as the repository the analysis is running for, ref to main, and path to .github/codeql-action.yaml. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. #3973

4.36.3 - 01 Jul 2026

No user facing changes.

4.36.2 - 04 Jun 2026

  • Cache CodeQL CLI version information across Actions steps. #3943
  • Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. #3937
  • Update default CodeQL bundle version to 2.25.6. #3948

4.36.1 - 02 Jun 2026

No user facing changes.

4.36.0 - 22 May 2026

  • Breaking change: Bump the minimum required CodeQL bundle version to 2.19.4. #3894
  • Add support for SHA-256 Git object IDs. #3893

... (truncated)

Commits
  • f205ea1 Merge pull request #4053 from github/update-v4.37.4-9130ce0f7
  • e40d079 Update changelog for v4.37.4
  • 9130ce0 Merge pull request #4051 from github/update-bundle/codeql-bundle-v2.26.2
  • c62d824 Add changelog note
  • da0c190 Update default bundle to codeql-bundle-v2.26.2
  • 18420e3 Merge pull request #4043 from github/mbg/ts/changelog
  • 7e8d897 Merge pull request #4046 from github/mbg/repo-prop/code-quality
  • 2d4c474 Log !analysisKindSupported case
  • 98c05a1 Fix argument validation in rollback-changelog.ts
  • 8289a49 Ignore repository property for unsupported analysis kinds
  • Additional commits viewable in compare view

Updates github/codeql-action/analyze from 4.37.3 to 4.37.4

Release notes

Sourced from github/codeql-action/analyze's releases.

v4.37.4

  • This version of the CodeQL Action adds support for the tools input for the codeql-action/init step to be specified using a github-codeql-tools repository property. This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to toolcache to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for tools in the workflow definition always takes precedence unless the value of the repository property starts with !. #4037
  • Update default CodeQL bundle version to 2.26.2. #4051
Changelog

Sourced from github/codeql-action/analyze's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

[UNRELEASED]

No user facing changes.

4.37.4 - 29 Jul 2026

  • This version of the CodeQL Action adds support for the tools input for the codeql-action/init step to be specified using a github-codeql-tools repository property. This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to toolcache to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for tools in the workflow definition always takes precedence unless the value of the repository property starts with !. #4037
  • Update default CodeQL bundle version to 2.26.2. #4051

4.37.3 - 22 Jul 2026

No user facing changes.

4.37.2 - 21 Jul 2026

  • The new address format for the config-file input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the remote= prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. #4023
  • The CodeQL Action can now make use of configured private registries in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. #4007

4.37.1 - 16 Jul 2026

  • Upcoming breaking change: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. #3956
  • Update default CodeQL bundle version to 2.26.1. #4019

4.37.0 - 08 Jul 2026

  • Update default CodeQL bundle version to 2.26.0. #3995
  • In addition to the existing input format, the config-file input for the codeql-action/init step will soon support a new [owner/]repo[@ref][:path] format. All components except the repository name are optional. If omitted, owner defaults to the same owner as the repository the analysis is running for, ref to main, and path to .github/codeql-action.yaml. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. #3973

4.36.3 - 01 Jul 2026

No user facing changes.

4.36.2 - 04 Jun 2026

  • Cache CodeQL CLI version information across Actions steps. #3943
  • Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. #3937
  • Update default CodeQL bundle version to 2.25.6. #3948

4.36.1 - 02 Jun 2026

No user facing changes.

4.36.0 - 22 May 2026

  • Breaking change: Bump the minimum required CodeQL bundle version to 2.19.4. #3894
  • Add support for SHA-256 Git object IDs. #3893

... (truncated)

Commits
  • f205ea1 Merge pull request #4053 from github/update-v4.37.4-9130ce0f7
  • e40d079 Update changelog for v4.37.4
  • 9130ce0 Merge pull request #4051 from github/update-bundle/codeql-bundle-v2.26.2
  • c62d824 Add changelog note
  • da0c190 Update default bundle to codeql-bundle-v2.26.2
  • 18420e3 Merge pull request #4043 from github/mbg/ts/changelog
  • 7e8d897 Merge pull request #4046 from github/mbg/repo-prop/code-quality
  • 2d4c474 Log !analysisKindSupported case
  • 98c05a1 Fix argument validation in rollback-changelog.ts
  • 8289a49 Ignore repository property for unsupported analysis kinds
  • Additional commits viewable in compare view

Updates pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2

Release notes

Sourced from pypa/gh-action-pypi-publish's releases.

v1.14.2

🛠️ Urgh… Another release!? Again? Explain yourself!

Looking at the diff, you'll only witness updates across the dependency tree. That's it! It's not a security fix or anything like that even, no. But you'll want this update.

[!tip] So what most people will find useful is @​takluyver💰's update of Twine to v7 that we use internally (#416). This version will let them upload their sdists and wheels containing core packaging metadata v2.5 to (Test)PyPI.

🧐 Tell me why..

TL;DR non-pure-python projects with C-extensions tend to have dozens (sometimes hundreds) wheels to upload to PyPI per release. They are often quite big and take time to transfer over the network. People started noticing problems and coming up with DIY sharding workarounds like aio-libs/aiohttp#13226 around July 23. On this date, projects with a good amount of bytes to publish would start getting timeouts 5 minutes after the PyPI publishing job begun. The same job that worked just fine before.

I had to start pinging upstream library and ecosystem people, on GitHub and privately, to start making sense of what was happening. Eventually, we collectively concluded that GitHub must've shortened the lifetime of their OIDC identity — it seems to have used to be 10 minutes long (at some point in the past) and is now 5 minutes, apparently. It's not documented clearly, and we have not been able to get any clarity by attempting to contact GitHub through private channels, using personal connections.

Over the course of investigation, @​facutuesca💰 found and fixed a related underlying cache invalidation bug in sigstore/sigstore-python#1838, which he then coordinated propagation through the dependency chain updates in sigstore-python, pypi-attestations, gh-action-pypi-publish and gh-action-sigstore-python.

Mike's also discovered that Sigstore's Rekor slowdown seems to have become the main contributing cause of the last week's incident. He's collected some data to support this claim: https://publishing-five-minute-timeout.tiiny.site.

🫶 New Contributors

🪞 Full Diff: pypa/gh-action-pypi-publish@v1.14.1...v1.14.2

🧔‍♂️ Release Manager: @​webknjaz 🇺🇦

🙏 Special Thanks to @​davidbrochart💰 and @​Dreamsorcerer💰 for turning my attention (in #415 and in private) to the newly surfaced corner case in GitHub's behavior that only affected a narrow category of projects while many others remained blissfully unaware. @​bdraco💰 came up with a DIY sharding workaround for aiohttp that served as a demo for other projects. @​miketheman💰 confirmed the Warehouse-side details. Also, @​jku💰 and @​woodruffw💰 helped work through, review and release the Sigstore ecosystem upstream libs.

💬 Discuss on Bluesky 🦋, on Mastodon 🐘 and [on GitHub][release discussion].

[![GH Sponsors badge]][GH Sponsors URL]

... (truncated)

Commits

Updates github/codeql-action/upload-sarif from 4.37.3 to 4.37.4

Release notes

Sourced from github/codeql-action/upload-sarif's releases.

v4.37.4

  • This version of the CodeQL Action adds support for the tools input for the codeql-action/init step to be specified using a github-codeql-tools repository property. This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to toolcache to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for tools in the workflow definition always takes precedence unless the value of the repository property starts with !. #4037
  • Update default CodeQL bundle version to 2.26.2. #4051
Changelog

Sourced from github/codeql-action/upload-sarif's changelog.

CodeQL Action Changelog

See the releases page for the relevant changes to the CodeQL CLI and language packs.

[UNRELEASED]

No user facing changes.

4.37.4 - 29 Jul 2026

  • This version of the CodeQL Action adds support for the tools input for the codeql-action/init step to be specified using a github-codeql-tools repository property. This feature will gradually be rolled out following the release of this version. Once rolled out, this allows for the CodeQL CLI version that is used in GitHub-managed workflows, such as Default Setup, to be set to a custom value. For example, customers who run into issues with rate limits when a new CodeQL CLI version is released can set the value to toolcache to always use the CodeQL CLI version that is available in the runner toolcache. For Advanced Setup workflows, the value provided for tools in the workflow definition always takes precedence unless the value of the repository property starts with !. #4037
  • Update default CodeQL bundle version to 2.26.2. #4051

4.37.3 - 22 Jul 2026

No user facing changes.

4.37.2 - 21 Jul 2026

  • The new address format for the config-file input that was introduced in CodeQL Action 4.37.0 is now enabled by default. In addition to the format described there, the remote= prefix can now be used to explicitly indicate that the input refers to a remote file. All previous input formats continue to be accepted as well. #4023
  • The CodeQL Action can now make use of configured private registries in Default Setup to retrieve CodeQL configuration files from remote repositories that require authentication. This will allow customers to store their CodeQL configuration in a single repository that can then be referenced by Default Setup workflows in other repositories. We expect to roll this and other, related changes out to everyone in July. #4007

4.37.1 - 16 Jul 2026

  • Upcoming breaking change: Add a deprecation warning for customers using CodeQL version 2.20.6 and earlier. These versions of CodeQL were discontinued on 1 July 2026 alongside GitHub Enterprise Server 3.16, and will be unsupported by the next minor release of the CodeQL Action. #3956
  • Update default CodeQL bundle version to 2.26.1. #4019

4.37.0 - 08 Jul 2026

  • Update default CodeQL bundle version to 2.26.0. #3995
  • In addition to the existing input format, the config-file input for the codeql-action/init step will soon support a new [owner/]repo[@ref][:path] format. All components except the repository name are optional. If omitted, owner defaults to the same owner as the repository the analysis is running for, ref to main, and path to .github/codeql-action.yaml. Support for this format ships in this version of the CodeQL Action, but will only be enabled over the coming weeks. #3973

4.36.3 - 01 Jul 2026

No user facing changes.

4.36.2 - 04 Jun 2026

  • Cache CodeQL CLI version information across Actions steps. #3943
  • Reduce requests while waiting for analysis processing by using exponential backoff when polling SARIF processing status. #3937
  • Update default CodeQL bundle version to 2.25.6. #3948

4.36.1 - 02 Jun 2026

No user facing changes.

4.36.0 - 22 May 2026

  • Breaking change: Bump the minimum required CodeQL bundle version to 2.19.4. #3894
  • Add support for SHA-256 Git object IDs. #3893

... (truncated)

Commits
  • f205ea1 Merge pull request #4053 from github/update-v4.37.4-9130ce0f7
  • e40d079 Update changelog for v4.37.4
  • 9130ce0 Merge pull request #4051 from github/update-bundle/codeql-bundle-v2.26.2
  • c62d824 Add changelog note
  • da0c190 Update default bundle to codeql-bundle-v2.26.2
  • 18420e3 Merge pull request #4043 from github/mbg/ts/changelog
  • 7e8d897 Merge pull request #4046 from github/mbg/repo-prop/code-quality
  • 2d4c474 Log !analysisKindSupported case
  • 98c05a1 Fix argument validation in rollback-changelog.ts
  • 8289a49 Ignore repository property for unsupported analysis kinds
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

…dates

Bumps the actions-deps group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `7.0.0` | `7.0.1` |
| [github/codeql-action/init](https://github.com/github/codeql-action) | `4.37.3` | `4.37.4` |
| [github/codeql-action/analyze](https://github.com/github/codeql-action) | `4.37.3` | `4.37.4` |
| [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) | `1.14.1` | `1.14.2` |
| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.37.3` | `4.37.4` |



Updates `actions/checkout` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v7...3d3c42e)

Updates `github/codeql-action/init` from 4.37.3 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@e4fba86...f205ea1)

Updates `github/codeql-action/analyze` from 4.37.3 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@e4fba86...f205ea1)

Updates `pypa/gh-action-pypi-publish` from 1.14.1 to 1.14.2
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](pypa/gh-action-pypi-publish@ba38be9...dc37677)

Updates `github/codeql-action/upload-sarif` from 4.37.3 to 4.37.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@e4fba86...f205ea1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: github/codeql-action/init
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: github/codeql-action/analyze
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: pypa/gh-action-pypi-publish
  dependency-version: 1.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jul 30, 2026
@dependabot
dependabot Bot requested a review from wshallwshall as a code owner July 30, 2026 16:56
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jul 30, 2026
@github-actions
github-actions Bot enabled auto-merge (squash) July 30, 2026 16:56
@github-actions
github-actions Bot merged commit 9c9cfdc into main Jul 30, 2026
33 checks passed
@dependabot
dependabot Bot deleted the dependabot/github_actions/actions-deps-287f0b2e32 branch July 30, 2026 17:19
wshallwshall added a commit that referenced this pull request Aug 5, 2026
#193)

* fix(ci): dependabot auto-merge decided by exclusion — invert #3 to an allow-set (BACKLOG #336)

Guardrail #3 was a 16-name Python deny-list with no ecosystem qualifier: anything not named
auto-merged if it was a patch, on every ecosystem. Inverted to HOLD-UNLESS-NAMED. Only `actions/`,
`github/` and `dependabot/` are eligible, and only on github-actions; the uv, pip and npm rows ship
EMPTY, an unrecognised ecosystem token holds, and the fail-safe whole-group denial is preserved.
Measured against the live PR #75, not recalled: its body carries five `Updates` entries — four
on the allow row (actions/checkout and three github/codeql-action/*) and pypa/gh-action-pypi-publish,
which is not — so that batch would HOLD as a whole. Expect auto-merge to fire RARELY; that is the
intent of hold-unless-named, not a regression.

Hardening, not an incident. There is no evidence of exploitation, the attacker must already own an
upstream publisher account, and merging to main is not publication (PyPI release is gated on an
owner tag push). MessageFoundry is a not-deployed beta with zero production instances, so this is
stated as what the shipped code WOULD allow on first deployment, never as a present exposure.

§4 RELEASE AGE, with an honest account of its reach. A new `id: age` step holds a SECURITY-track PR
whose candidate version was published under MIN_RELEASE_AGE_HOURS (24), failing closed on an API
error, an absent or unparseable upload timestamp, an unexpected name or version shape, or an
ecosystem with no publish-date source wired. It is INERT with respect to the merge decision as
shipped: age_ok=true is reachable only for uv/pip, eligible=true only for github-actions, and the
merge `if` requires both — disjoint sets. Confirmed by executing the shipped allow-set body over
exactly the ecosystems the age gate can pass (uv and pip both return eligible=false; only
github_actions returns true). The
header and the BACKLOG banner now say exactly that instead of presenting it as an operating
control; recording an unreachable control as operative is the false-premise class
docs/Secure_Development_Standards.md §3 forbids. The step is gated on
`steps.allowset.outputs.eligible == 'true'`, which changes no merge outcome — the merge `if`
already requires that conjunct — but removes an unauthenticated outbound GET made from a job
holding `contents: write` for a PR that was going to be held anyway.

§5 the header's backstop claim, corrected without over-claiming in the other direction. Dropped:
"the only gate that inspects a dependency's shipped bytes at all is security.yml's trivy step".
security.yml:265 marks trivy `continue-on-error: true` and :271 restricts it to schedule/dispatch,
so it is advisory AND never runs on a Dependabot PR. The replacement is the weaker true form: no
REQUIRED check reads a dependency's shipped bytes. The sentence describes what semgrep cannot SEE
rather than where it looks, so the unmerged plan-semgrep-scope widening (BACKLOG #334) cannot
falsify it.

Provenance made honest. The header cited DEPENDENCY-POSTURE-REVIEW.md as the numbered source for
guardrails it does not carry: #3 is INVERTED from the deny-list that document describes, and #4 is
introduced here. The block is retitled AUTO-MERGE GUARDRAILS, #3 is moved out from under the
security-track framing (it gates every PR), and the test docstring carries the same correction.
Amending the vault copy stays the owner's separate obligation — the repo simply stops asserting it
has already happened.

Restated facts removed. The header repeated three cooldown values that live in
.github/dependabot.yml; only two had a test bound, and that file records github-actions' window as
approximate because it ages off the tag's commit date. The header now points at the source instead
(CLAUDE.md §11 — state a load-bearing fact once and link to it).

.github/dependabot.yml comments corrected. The uv block told a maintainer "routine patches
auto-merge AFTER aging; security patches auto-merge now" — both halves false once uv's allow row
ships empty. The github-actions block's "an advisory fix is unaffected" now says it opens as a PR
unaffected but reaches main by human review, because the advisory gate is pip-keyed and never
confirms an action.

docs/testing/master-test-plan/01-environments-data-and-tooling.md:350 still advertised the deleted
auth/token/crypto deny-list as a live control of this workflow. No test pinned that doc, so it
drifted silently; the row now describes what ships.

TESTS
- The behavioural harness runs the shipped bodies under `bash -e`, which is what Actions applies by
  default on Linux (no `shell:` is declared anywhere). Plain bash keeps going where CI aborts the
  step, and `assert proc.returncode == 0` was exactly the assertion that would mask that class. No
  shipped row changes its decision: ten rows were compared head-to-head under plain bash and under
  `bash -e` and agreed on both exit code and emitted output, and the full 20-row parametrised set
  passes under `-e`. So this is a fidelity fix, not a behaviour change — but `_run_step_body` now
  RETURNS the returncode rather than asserting it, so an abort path can be expressed as an expected
  outcome instead of being indistinguishable from a harness bug.
  test_no_step_overrides_the_default_shell is the tripwire for a future `shell:` silently
  invalidating the premise that `bash -e` is what CI runs.
- _load_dependabot's skip is deleted. It skipped on the premise that .github/dependabot.yml is
  "private-only, deny-listed on the OSS mirror". .gitignore names that file under DELIBERATELY NOT
  LISTED as content meant to ship; `git ls-files --error-unmatch` resolves it and `git check-ignore`
  exits 1. The refactor had routed THREE tests through that skip, including the cooldown test whose
  entire reason for existing is that a missing cooldown was invisible to CI. It now asserts presence.
- The jq skip reason claimed the test "runs on the ubuntu CI leg and skips locally". The
  windows-2022 and windows-2025 images ship jq and Git Bash, and both are REQUIRED contexts in
  .github/required-contexts.txt, so it runs there too. The reason now says so — a maintainer reading
  it after a Windows-only red should not be told to expect ubuntu.

ADR 0034 CONSEQUENCE, recorded because leaving it unrecorded is what that ADR warns against: this
file grew 190 -> 403 lines and the `Why pull_request` anchor moved from line 42 to 76. Under the
ADR's convergence rule, dismissed alert #87 re-fires as a new alert number and needs re-dismissing
after merge.

VERIFICATION
- ruff check .           -> All checks passed!
- ruff format --check .  -> 1042 files already formatted
- mypy messagefoundry    -> 21 errors, ALL PRE-EXISTING and NOT from this change: absent
  [fhir]/[dicom]/[webauthn] extras (fhirpathpy, fhir, pynetdicom, pydicom and webauthn are all
  ABSENT from this venv; 12 import-not-found plus their 7 no-any-return / 2 unused-ignore
  consequences). This change touches no file under messagefoundry/, so mypy's inputs are
  byte-identical to HEAD. CI installs the extras and is the authority. The quartet is NOT green
  locally and this commit does not claim it is.
- pytest -q              -> 10291 passed, 841 skipped, 22 warnings in 1282.01s (0:21:22). The
  pre-change baseline measured on this tree was 10289 passed / 841 skipped, so the delta is exactly
  the two tests added here. Run on a byte-frozen tree (sha256 of all five changed files recorded
  before the run and unchanged after), because two comment edits had landed after an earlier run
  started and six tests read docs/BACKLOG.md.
- Falsification: 18 mutations of the workflow and dependabot.yml, plus deleting dependabot.yml
  outright, each confirmed to turn the matching test RED and then restored byte-identically (sha256
  checked after every case). Among them: the allow-set admitting `pypa/`, losing its trailing slash,
  matching by substring, treating an empty name list as eligible, and failing open on an
  unrecognised ecosystem; the age step failing open on an undatable ecosystem, hard-coding a PASS on
  the version-track exit, re-deriving the security track, and losing its allow-set gate; a step
  declaring `shell:`; the merge `if` dropping either the age_ok or the allow-set conjunct; and each
  cooldown being removed or shortened. The four jq-gated rows were falsified separately (threshold
  deleted, missing-timestamp failing open, curl error failing open, and the discriminating PASS
  removed) against a purpose-built jq stand-in implementing the two shipped filters, because this
  box has no jq at all; execution against real jq happens on CI.

* docs(backlog): flip #336 to SHIPPED and supersede one clause of its 2026-08-03 amendment

Banner lines of item #336 ONLY.

VERIFIED BY NUMBER, not by banner text — a byte-identical banner pasted under the wrong item
survives every well-formedness check. `git diff -U0 -- docs/BACKLOG.md` is two hunks, @@ -3353
+3353 @@ and @@ -3358,0 +3359,2 @@; the enclosing `## ` heading computed backwards from each of
the three changed lines (3353, 3359, 3360) is `## 336. Dependabot auto-merge shields review with a
deny-list` in all three cases. The ranked table and the four census distribution lines are
untouched.

THE CENSUS WAS NOT RECOMPUTED. This commit flips one item's banner and deliberately does not touch
the distribution lines.

The banner records guardrail #4 as a FORWARD guard that is inert with respect to the merge decision
as shipped, rather than as an operating control: age_ok=true is reachable only for uv/pip,
eligible=true only for github-actions, and the merge `if` requires both. Recording an unreachable
control as operative is the false-premise class docs/Secure_Development_Standards.md §3 forbids.

The added blockquote uses the glyph-free `**AMENDED 2026-08-04 — ...**` convention. It supersedes
ONE clause of the dated 2026-08-03 note — "The deny-list itself is untouched, so the rest of the
item stands ... §§1, 3, 4, 5 and 6 are unaffected" — which was accurate when measured and is
deliberately left as written rather than rewritten. The deny-list no longer exists, so §6 is
discharged by deletion rather than annotation, and the 16 names survive only as a PROPERTY under
test (`_DENY_PACKAGES` asserts none of them reaches any allow row).

scripts/docs/backlog_status_check.py exits 0 ("290 backlog items, each declaring exactly one
status") — reported as corroboration only. That gate validates that one banner is present and
self-consistent, never that it belongs to this item, so it cannot see the corruption class this
commit had to avoid. The by-number check above is the evidence; the green gate is not.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants