Skip to content

build(deps): bump actions/setup-python from 7.0.0 to 7.1.0 - #6719

Merged
NF0T merged 1 commit into
mainfrom
dependabot/github_actions/actions/setup-python-7.1.0
Oct 24, 2026
Merged

NF0T merged 1 commit into
mainfrom
dependabot/github_actions/actions/setup-python-7.1.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 24, 2026

Copy link
Copy Markdown
Contributor

Bumps actions/setup-python from 7.0.0 to 7.1.0.

Release notes

Sourced from actions/setup-python's releases.

v7.1.0

What's Changed

Enhancements

Dependency Upgrade

New Contributors

Full Changelog: actions/setup-python@v7.0.0...v7.1.0

Commits
  • 6d4fd22 Cache upgrade to 6.3.0 (#1370)
  • ec52d0a Bump @​typescript-eslint/eslint-plugin from 8.62.0 to 8.71.1 (#1369)
  • ff73b24 Bump prettier from 3.8.4 to 3.9.9 and package.json from 7.0.0 to 7.1.0 (#1363)
  • 0e40890 Bump brace-expansion from 5.0.9 to 5.0.12 (#1365)
  • 3892123 Bump ts-jest from 29.4.11 to 29.4.14 (#1361)
  • 6609657 Bump undici from 6.28.0 to 6.29.0 (#1364)
  • e1be392 Bump @​types/semver from 7.7.1 to 7.8.0 (#1359)
  • 06da627 Bump @​vercel/ncc from 0.44.0 to 0.45.0 (#1357)
  • af9bcc7 Bump eslint-plugin-jest from 29.15.2 to 29.16.6 (#1342)
  • 7aeabeb Bump @​typescript-eslint/parser from 8.62.0 to 8.70.0 (#1343)
  • Additional commits viewable in compare view

Dependabot compatibility score

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 this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@5fda3b9...6d4fd22)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from a team as a code owner October 24, 2026 10:33
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Oct 24, 2026

@aethersdr-agent aethersdr-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Issue fit

No linked issue, and none is wanted: .github/dependabot.yml is the standing authorization for exactly this change (package-ecosystem: "github-actions", weekly). GOVERNANCE.md asks for an RFC for architectural change and an issue for bug fixes with a root cause — a scheduled dependency bump is neither. The PR also follows the convention written into that config:

Convention: pin actions to a full commit SHA with NO trailing # vX version comment — Dependabot bumps the SHA but doesn't keep such comments in sync, so they drift and mislead (see #3864).

.github/workflows/static-checks.yml:176 is a bare SHA with no trailing comment. Compliant.

I verified the title's claim rather than taking it: both SHAs resolve against the live actions/setup-python API to the tag objects they claim. 5fda3b95a4ea91299a34e894583c3862153e4b97 is v7.0.0; 6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 is v7.1.0.

Scope

File What it changes Claimed by the title? Verdict
.github/workflows/static-checks.yml:176 actions/setup-python pin SHA, v7.0.0 → v7.1.0 Yes In scope

One line, one pin, nothing else. grep -rn "setup-python@" .github/workflows/ returns exactly this one call site, so there is no sibling pin left on the old SHA. Everything in the diff is explained by the title.

Blockers

None.

Nits

None. Both severities' worth of CodeGuard output refuted below rather than carried.

CodeGuard findings — all 15 refuted

Confirmed by the security-audit subagent (CodeGuard) and independently by me; none survives, and none touches the changed line.

  • CS-VLN-CMDI-BACKTICK ×11 (lines 14, 36, 81, 172, 317, 340, 348, 363, 407, 422, 477) — every one is a backtick inside a YAML # comment, e.g. static-checks.yml:477: # silently pass an empty base to \git worktree add`.` No shell parses these. This is the known lexical behaviour of the rule.
  • CS-VLN-CMDI-BACKTICK at static-checks.yml:544 — the only flagged backtick in an executed run: body:
    This PR touches \`src/gui/\` files with **${{ steps.a11y.outputs.findings }}** accessibility issue(s).
    
    The backticks are backslash-escaped, so bash emits literals and performs no substitution, and the heredoc is written to /tmp/a11y_comment.md — never executed. Lines 549–552 use the identical escaped form and were not flagged, which locates the inconsistency in the detector.
  • CS-VLN-CMDI-ENVVAR at static-checks.yml:483 and :498 — ${BASE_REF} comes from BASE_REF: ${{ github.base_ref }} in the env: block (lines 481, 496). Routing through env: instead of interpolating ${{ }} into the script text is the mitigation this rule class asks for, the variable is double-quoted at both uses, and github.base_ref is the PR's target branch — an existing ref in this repo, which a fork author cannot create.
  • CS-VLN-CMDI-ENVVAR at static-checks.yml:547 — ${SUMMARY} is the allow-list grep -E "(Files scanned|Files with findings|Total findings)" of our own tools/check_a11y.py output, expanding into file content, not a command position.

What I tried to break

  • "It's really v7.1.0." Resolved both pins against the upstream tag refs (live API, not inferred from the title) — they match exactly. compare 5fda3b9...6d4fd22 is 16 ahead, 0 behind, so this is a strict forward move, not a lateral ref or a revert dressed as a bump.
  • A silent behaviour change in the action's contract. Diffed action.yml across the two SHAs: the only additions are mirror and mirror-token. Our step passes python-version: "3.12" and nothing else, so the new surface is unexercised, and the mirror default (https://raw.githubusercontent.com/actions/python-versions/main) reconstructs the exact v7.0.0 manifest URL. No runs: change, so the Node runtime is unchanged.
  • A regression in the token path. Read src/install-python.ts: v7.0.0 passed AUTH to tc.downloadTool(downloadUrl, ...) unconditionally; v7.1.0 routes it through authForUrl(), which sends the token only to GitHub-owned hosts. That is a hardening, not a regression. Manifest fetch order (GitHub API → raw URL fallback) is preserved at the default mirror, since the default parses as repo coords.
  • The @actions/cache 6.3.0 upgrade riding along in the bump. Inert for us — our step sets no cache: input, so the cache distributor never runs.
  • Whether a bumped action could escalate anything here. The workflow is pull_request, not pull_request_target or workflow_run; permissions: is explicitly contents: read / pull-requests: write; the only secret in the file is GITHUB_TOKEN at line 537, and fork PRs get a read-only one. There is no privilege for a compromised action version to reach.
  • Verified at runtime, not reasoned: Static checks — the job that actually consumes this pin — is green on head aaa9906, alongside build, check-windows, check-macos and Sanitizer option configures. The new SHA resolved and the action ran. Everything else above is reasoned from the diff and from upstream sources I read, not reproduced locally.
  • Honest boundary: I cannot verify that upstream's dist/setup/index.js (±54k lines in this delta) was built from the src/ I reviewed. That is the standard supply-chain gap for any bundled JS action, unchanged by this PR, and mitigated here by pinning to a tag commit on a GitHub-owned repository.

Recommendation

Approve. The single claim this PR makes is verified against upstream, the delta is a strict forward move whose only new surface is opt-in and unused by our call site, and the one behavioural change at default settings narrows where the token is sent. All 15 CodeGuard findings are pre-existing lexical false positives on untouched lines. Next step is simply to merge; no changes requested.

(Review event is COMMENT by policy — a human maintainer still makes the merge call.)


🤖 aethersdr-agent · cost: $5.6990 · model: claude-opus-5

@aethersdr-agent

Copy link
Copy Markdown
Contributor

Cisco CodeGuard — static analysis of this PR (15 finding(s))

  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:14
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:36
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:81
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:172
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:317
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:340
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:348
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:363
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:407
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:422
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:477
  • [CRITICAL] CS-VLN-CMDI-BACKTICK — Vulnerability: CS-VLN-CMDI-BACKTICK in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:544
  • [MEDIUM] CS-VLN-CMDI-ENVVAR — Vulnerability: CS-VLN-CMDI-ENVVAR in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:483
  • [MEDIUM] CS-VLN-CMDI-ENVVAR — Vulnerability: CS-VLN-CMDI-ENVVAR in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:498
  • [MEDIUM] CS-VLN-CMDI-ENVVAR — Vulnerability: CS-VLN-CMDI-ENVVAR in .github/workflows/static-checks.yml /tmp/aetherclaude/pr-6719/.github/workflows/static-checks.yml:547

Automated static scan by Cisco DefenseClaw CodeGuard on the changed files. Advisory — some may be false positives; the review above verifies them.


🤖 aethersdr-agent · cost: $5.7870 · model: claude-opus-5

@NF0T NF0T left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. This is a clean single-pin Dependabot bump, and I checked each claim against upstream myself instead of carrying over the agent review above. My conclusions match it.

Scope

File Change Claimed by title? Verdict
.github/workflows/static-checks.yml:176 actions/setup-python pin 5fda3b9 → 6d4fd22 Yes In scope

One line. git grep "setup-python@" on main finds only this call site, so no sibling pin is left on the old SHA. The pin is a bare SHA with no trailing # vX comment, which is the convention in .github/dependabot.yml (#3864). This is a dependency bump, not a change to existing behaviour, so the preference-vs-fix question doesn't apply. .github/dependabot.yml is the standing authorization, so no issue link is needed.

What I checked

  • The pins are the versions the title says. git/ref/tags/v7.0.0 resolves to 5fda3b95… and v7.1.0 to 6d4fd22b…, both lightweight tags on GitHub's own repo. compare 5fda3b9...6d4fd22 is 16 ahead, 0 behind, so it is a strict forward move and not a lateral or reverted ref.
  • The action's contract. I diffed action.yml between the two SHAs. The only additions are the optional mirror / mirror-token inputs plus a description tweak on token. Our step passes only python-version: "3.12", and the mirror default is the same raw.githubusercontent.com/actions/python-versions/main source as before. runs.using is node24 on both sides, so the runtime is unchanged.
  • The token path. In v7.0.0 src/install-python.ts passes AUTH to tc.downloadTool unconditionally (line 294). In v7.1.0 the token goes through authForUrl() for both the manifest and the download (lines 390, 444). That narrows where the token is sent, which is a hardening and not a regression.
  • Blast radius. The workflow triggers on pull_request only, not pull_request_target or workflow_run, and permissions: is contents: read / pull-requests: write. A bumped action has no extra privilege to reach.
  • Runtime, not just reasoning. The Static checks job log on head aaa9906 (event pull_request, so this is the merge result) shows Download action repository 'actions/setup-python@6d4fd22…' and Successfully set up CPython (3.12.15). The job is green, and so are build, check-windows, check-macos and Sanitizer option configures.
  • The CodeGuard findings all fall on lines this PR doesn't touch (YAML comments, escaped backticks in a heredoc, env:-routed refs). I agree with the agent review that they are pre-existing false positives, and none is attributable to this diff.

What I couldn't verify: whether the bundled dist/ was built from the src/ I read. That is the usual gap for any bundled JS action, and pinning to a tag commit on a GitHub-owned repo is the mitigation we already rely on.

Process

The commit is signed (verified, valid). No Constitution principle is engaged. Earlier Dependabot squashes on main (#6343, #6342, #5955) carry the bare Dependabot subject, and I'm keeping that precedent. Tier 2 (.github/workflows/ → @aethersdr/infrastructure).

Merging as-is.

73,
Ryan NF0T


👨🏼‍💻 Co-authored by Claude Opus 5.5

@NF0T
NF0T merged commit e068ebe into main Oct 24, 2026
5 checks passed
@NF0T
NF0T deleted the dependabot/github_actions/actions/setup-python-7.1.0 branch October 24, 2026 14:55
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.

1 participant