Skip to content

chore(deps)!: Update GitHub Actions (major)#19

Merged
williaby merged 2 commits into
mainfrom
renovate/major-github-actions
May 21, 2026
Merged

chore(deps)!: Update GitHub Actions (major)#19
williaby merged 2 commits into
mainfrom
renovate/major-github-actions

Conversation

@williaby

@williaby williaby commented May 8, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

Summary

Multi-major version sweep of 10 GitHub Actions used across CI, security,
and release workflows. All actions are SHA-pinned with # vX.Y.Z comments
per repo convention.

Two follow-up fixes applied on top of Renovate's commit (see review thread):

  • actions/dependency-review-action pinned by SHA (was using the mutable
    @v4 tag, inconsistent with the rest of the repo).
  • fsfe/reuse Docker image pinned to 6.2.0@sha256:... digest (was using
    the mutable :latest tag).

Why

This is NOT a patch update. The PR performs multiple major version
upgrades
, including:

  • actions/checkout v4.3.1 → v6.0.2 (skips v5; runtime now requires Node 24)
  • actions/upload-artifact v4.6.2 → v7.0.1 (3 majors; artifact-naming and
    uniqueness behavior changed in v4 baseline)
  • actions/github-script v7.1.0 → v9.0.0 (2 majors; skips v8)
  • astral-sh/setup-uv v4.2.0 → v8.1.0 (4 majors)
  • actions/attest-build-provenance v1.5.2 → v4.1.0 (3 majors)
  • github/codeql-action v3.35.5 → v4.35.5 (1 major)
  • sigstore/cosign-installer v3.10.1 → v4.1.2 (1 major)
  • fsfe/reuse-action v4.0.0 → v6.0.0 (2 majors; skips v5)
  • lycheeverse/lychee-action v1.10.0 → v2.8.0 (1 major)
  • actions/setup-python v5.6.0 → v6.2.0 (1 major)

PR-time CI exercises most workflows and is green, but three workflows only
run on release or schedule events (release-sign.yml, slsa-provenance.yml
build job, cifuzzy.yml) and were not exercised by this PR's CI. Watch the
next release closely.

A separate chore(security): harden checkout calls with persist-credentials: false
follow-up PR is recommended (CodeRabbit/zizmor flagged 7 checkouts; pre-existing
omission, intentionally out of scope here).

Changes

This PR contains the following updates:

Package Type Update Change OpenSSF
actions/attest-build-provenance action major v1.5.2v4.1.0 OpenSSF Scorecard
actions/checkout action major v4.3.1v6.0.2 OpenSSF Scorecard
actions/github-script action major v7.1.0v9.0.0 OpenSSF Scorecard
actions/setup-python action major v5.6.0v6.2.0 OpenSSF Scorecard
actions/upload-artifact action major v4.6.2v7.0.1 OpenSSF Scorecard
astral-sh/setup-uv action major v4.2.0v8.1.0 OpenSSF Scorecard
fsfe/reuse-action action major v4.0.0v6.0.0 OpenSSF Scorecard
github/codeql-action action major v3.35.5v4.35.5 OpenSSF Scorecard
lycheeverse/lychee-action action major v1.10.0v2.8.0 OpenSSF Scorecard
sigstore/cosign-installer action major v3.10.1v4.1.2 OpenSSF Scorecard

Warnings (1)

Please correct - or verify that you can safely ignore - these warnings before you merge this PR.

  • actions/attest-build-provenance: Could not determine new digest for update (github-tags package actions/attest-build-provenance)


Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

Impact

  • ✅ Patch update: bug fixes and security patches only
  • ✅ No breaking changes

Acceptance Criteria

  • All CI checks pass

Testing

  • CI gates pass (tests, lint, type checking, security scan)

Notes


Release Notes

actions/attest-build-provenance (actions/attest-build-provenance)

v4.1.0

Compare Source

[!NOTE]
As of version 4, actions/attest-build-provenance is simply a wrapper on top of actions/attest.

Existing applications may continue to use the attest-build-provenance action, but new implementations should use actions/attest instead.

What's Changed

Full Changelog: actions/attest-build-provenance@v4.0.0...v4.1.0

v4.0.0

Compare Source

[!NOTE]
As of version 4, actions/attest-build-provenance is simply a wrapper on top of actions/attest.

Existing applications may continue to use the attest-build-provenance action, but new implementations should use actions/attest instead.

What's Changed

Full Changelog: actions/attest-build-provenance@v3.2.0...v4.0.0

v3.2.0

Compare Source

What's Changed

Full Changelog: actions/attest-build-provenance@v3.1.0...v3.2.0

v3.1.0

Compare Source

What's Changed

New Contributors

Full Changelog: actions/attest-build-provenance@v3...v3.1.0

v3.0.0

Compare Source

What's Changed

⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

Full Changelog: actions/attest-build-provenance@v2.4.0...v3.0.0

v2.4.0

Compare Source

What's Changed

  • Bump undici from 5.28.5 to 5.29.0 by @​dependabot in #​633
  • Bump actions/attest from 2.3.0 to 2.4.0 by @​bdehamer in #​654
    • Includes support for the new well-known summary file which will accumulate paths to all attestations generated in a given workflow run

Full Changelog: actions/attest-build-provenance@v2.3.0...v2.4.0

v2.3.0

Compare Source

What's Changed

  • Bump actions/attest from 2.2.1 to 2.3.0 by @​bdehamer in #​615
    • Updates @sigstore/oci from 0.4.0 to 0.5.0

Full Changelog: actions/attest-build-provenance@v2.2.3...v2.3.0

v2.2.3

Compare Source

What's Changed

Full Changelog: actions/attest-build-provenance@v2.2.2...v2.2.3

v2.2.2

Compare Source

What's Changed

Full Changelog: actions/attest-build-provenance@v2.2.1...v2.2.2

v2.2.1

Compare Source

What's Changed

Full Changelog: actions/attest-build-provenance@v2.2.0...v2.2.1

v2.2.0

Compare Source

What's Changed

  • Bump actions/attest from v2.1.0 to v2.2.0 by @​bdehamer in #​449
    • Includes support for now subject-checksums input parameter

Full Changelog: actions/attest-build-provenance@v2.1.0...v2.2.0

v2.1.0

Compare Source

What's Changed

Full Changelog: actions/attest-build-provenance@v2.0.1...v2.1.0

v2.0.1

Compare Source

What's Changed

  • Bump actions/attest from 2.0.0 to 2.0.1 by @​bdehamer in #​406
    • Deduplicate subjects before adding to in-toto statement

Full Changelog: actions/attest-build-provenance@v2.0.0...v2.0.1

actions/checkout (actions/checkout)

v6.0.2

Compare Source

v6.0.1

Compare Source

v6.0.0

Compare Source

v5.0.1

Compare Source

v5.0.0

Compare Source

actions/github-script (actions/github-script)

v9.0.0

Compare Source

New features:

  • getOctokit factory function — Available directly in the script context. Create additional authenticated Octokit clients with different tokens for multi-token workflows, GitHub App tokens, and cross-org access. See Creating additional clients with getOctokit for details and examples.
  • Orchestration ID in user-agent — The ACTIONS_ORCHESTRATION_ID environment variable is automatically appended to the user-agent string for request tracing.

Breaking changes:

  • require('@​actions/github') no longer works in scripts. The upgrade to @actions/github v9 (ESM-only) means require('@​actions/github') will fail at runtime. If you previously used patterns like const { getOctokit } = require('@​actions/github') to create secondary clients, use the new injected getOctokit function instead — it's available directly in the script context with no imports needed.
  • getOctokit is now an injected function parameter. Scripts that declare const getOctokit = ... or let getOctokit = ... will get a SyntaxError because JavaScript does not allow const/let redeclaration of function parameters. Use the injected getOctokit directly, or use var getOctokit = ... if you need to redeclare it.
  • If your script accesses other @actions/github internals beyond the standard github/octokit client, you may need to update those references for v9 compatibility.

What's Changed

New Contributors

Full Changelog: actions/github-script@v8.0.0...v9.0.0

v8.0.0

Compare Source

actions/setup-python (actions/setup-python)

v6.2.0

Compare Source

What's Changed
Dependency Upgrades

Full Changelog: actions/setup-python@v6...v6.2.0

v6.1.0

Compare Source

What's Changed
Enhancements:
Dependency and Documentation updates:
New Contributors

Full Changelog: actions/setup-python@v6...v6.1.0

v6.0.0

Compare Source

What's Changed
Breaking Changes

Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See Release Notes

Enhancements:
Bug fixes:
Dependency updates:
New Contributors

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

actions/upload-artifact (actions/upload-artifact)

v7.0.1

Compare Source

What's Changed

Full Changelog: actions/upload-artifact@v7...v7.0.1

v7.0.0

Compare Source

v7 What's new

Direct Uploads

Adds support for uploading single files directly (unzipped). Callers can set the new archive parameter to false to skip zipping the file during upload. Right now, we only support single files. The action will fail if the glob passed resolves to multiple files. The name parameter is also ignored with this setting. Instead, the name of the artifact will be the name of the uploaded file.

ESM

To support new versions of the @actions/* packages, we've upgraded the package to ESM.

What's Changed

New Contributors

Full Changelog: actions/upload-artifact@v6...v7.0.0

v6.0.0

Compare Source

v6 - What's new

[!IMPORTANT]
actions/upload-artifact@​v6 now runs on Node.js 24 (runs.using: node24) and requires a minimum Actions Runner version of 2.327.1. If you are using self-hosted runners, ensure they are updated before upgrading.

Node.js 24

This release updates the runtime to Node.js 24. v5 had preliminary support for Node.js 24, however this action was by default still running on Node.js 20. Now this action by default will run on Node.js 24.

What's Changed

Full Changelog: actions/upload-artifact@v5.0.0...v6.0.0

v5.0.0

Compare Source

What's Changed

BREAKING CHANGE: this update supports Node v24.x. This is not a breaking change per-se but we're treating it as such.

New Contributors

Full Changelog: actions/upload-artifact@v4...v5.0.0

astral-sh/setup-uv (astral-sh/setup-uv)

v8.1.0: 🌈 New input no-project

Compare Source

Changes

This add the a new boolean input no-project.
It only makes sense to use in combination with activate-environment: true and will append --no project to the uv venv call. This is for example useful if you have a pyproject.toml file with parts unparseable by uv

🚀 Enhancements

🧰 Maintenance

📚 Documentation

⬆️ Dependency updates

v8.0.0: 🌈 Immutable releases and secure tags

Compare Source

This is the first immutable release of setup-uv 🥳

All future releases are also immutable, if you want to know more about what this means checkout the docs.

This release also has two breaking changes

New format for manifest-file

The previously deprecated way of defining a custom version manifest to control which uv versions are available and where to download them from got removed. The functionality is still there but you have to use the new format.

No more major and minor tags

To increase security even more we will stop publishing minor tags. You won't be able to use @v8 or @v8.0 any longer. We do this because pinning to major releases opens up users to supply chain attacks like what happened to tj-actions.

[!TIP]
Use the immutable tag as a version astral-sh/setup-uv@v8.0.0
Or even better the githash astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57

🚨 Breaking changes

🧰 Maintenance

v7.6.0: 🌈 Fetch uv from Astral's mirror by default

Compare Source

Changes

We now default to download uv from releases.astral.sh.
This means by default we don't hit the GitHub API at all and shouldn't see any rate limits and timeouts any more.

🚀 Enhancements
🧰 Maintenance
⬆️ Dependency updates

v7.5.0: 🌈 Use `astral-sh/versions` as version provider

Compare Source

No more rate-limits

This release addresses a long-standing source of timeouts and rate-limit failures in setup-uv.

Previously, the action resolved version identifiers like 0.5.x by iterating over available uv releases via the GitHub API to find the best match. In contrast, latest and exact versions such as 0.5.0 skipped version resolution entirely and downloaded uv directly.

The manifest-file input was an earlier attempt to improve this. It allows providing an url to a file that lists available versions, checksums, and even custom download URLs. The action also shipped with such a manifest.
However, because that bundled file could become outdated whenever new uv releases were published, the action still had to fall back to the GitHub API in many cases.

This release solves the problem by sourcing version data from Astral’s versions repository via the raw content endpoint:

https://raw.githubusercontent.com/astral-sh/versions/refs/heads/main/v1/uv.ndjson

By using the raw endpoint instead of the GitHub API, version resolution no longer depends on API authentication and is much less likely to run into rate limits or timeouts.


[!TIP]
The next section is only interesting for users of the manifest-file input

The manifest-file input lets you override that source with your own URL, for example to test custom uv builds or alternate download locations.

The manifest file must be in NDJSON format, where each line is a JSON object representing a version and its artifacts. For example:

{"version":"0.10.7","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}
{"version":"0.10.6","artifacts":[{"platform":"x86_64-unknown-linux-gnu","variant":"default","url":"https://example.com/uv-x86_64-unknown-linux-gnu.tar.gz","archive_format":"tar.gz","sha256":"..."}]}

[!WARNING]
The old format still works but is deprecated. A warning will be logged when you use it.

Changes
🚀 Enhancements
📚 Documentation

v7.4.0: 🌈 Add riscv64 architecture support to platform detection

Compare Source

Changes

Thank you @​luhenry for adding support for riscv64 arch

🚀 Enhancements
🧰 Maintenance
⬆️ Dependency updates

v7.3.1: 🌈 fall back to VERSION_CODENAME when VERSION_ID is not available

Compare Source

Changes

This release adds support for running in containers like debian:testing or debian:unstable

🐛 Bug fixes
🧰 Maintenance
⬆️ Dependency updates

v7.3.0: 🌈 New features and bug fixes for activate-environment

Compare Source

Changes

This release contains a few bug fixes and a new feature for the activate-environment functionality.

🐛 Bug fixes
🚀 Enhancements
🧰 Maintenance
📚 Documentation
⬆️ Dependency updates

v7.2.1: 🌈 update known checksums up to 0.9.28

Compare Source

Changes
🧰 Maintenance
📚 Documentation
⬆️ Dependency updates

v7.2.0: 🌈 add outputs python-version and python-cache-hit

Compare Source

Changes

Among some minor typo fixes and quality of life features for developers of actions the m


Configuration

📅 Schedule: Branch creation - "after 10pm every weekday,before 5am every weekday,every weekend" in timezone America/New_York, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown

Walkthrough

Eight GitHub Actions workflow files receive pinned version updates for their constituent actions (checkout, setup tools, code quality/artifact handlers, and signing tools) while maintaining all existing workflow logic, job configurations, and step inputs.

Changes

GitHub Actions Dependency Updates

Layer / File(s) Summary
Workflow action version updates
.github/workflows/cifuzzy.yml, .github/workflows/codeql.yml, .github/workflows/dependency-review.yml, .github/workflows/fips-compatibility.yml, .github/workflows/performance-regression.yml, .github/workflows/pr-validation.yml, .github/workflows/release-sign.yml, .github/workflows/reuse.yml, .github/workflows/slsa-provenance.yml
All eight CI/CD workflows receive GitHub Actions version pin upgrades: actions/checkout (v4 → v6), actions/setup-python (v5 → v6), astral-sh/setup-uv (v4 → v8), actions/upload-artifact (v4 → v7), github/codeql-action (v3 → v4), sigstore/cosign-installer (v3 → v4), fsfe/reuse-action (v4 → v6), lycheeverse/lychee-action (v2.x), actions/github-script, and actions/attest-build-provenance (v1 → v4). All step logic, inputs, permissions, and scheduling remain unchanged.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related issues

  • Dependency Dashboard llc-manager#12: Updates pinned GitHub Action versions across dependency-review.yml, codeql.yml, and other .github/workflows/ files matching this PR's Renovate-driven dependency upgrades.
  • Dependency Dashboard cookiecutter-python-template#35: Updates pinned GitHub Actions versions across multiple .github/workflows/ files in a Renovate-driven dependency refresh.
  • Dependency Dashboard gleif#23: Dependency Dashboard Renovate updates target the same workflow files and action version bumps reflected in this PR.
  • ByronWilliamsCPA/template-sample#4: Updates GitHub Actions version pins in workflow files, including slsa-provenance and actions/attest-build-provenance bumps.
  • ByronWilliamsCPA/cookiecutter-template-sample#3: Updates pinned GitHub Action versions in .github/workflows/slsa-provenance.yml and related action upgrades matching Renovate dependency changes.
  • ByronWilliamsCPA/taxdome#7: Updates pinned GitHub Action versions in .github/workflows/reuse.yml and pr-validation.yml with overlapping dependency changes.
  • ByronWilliamsCPA/maester-tests#14: Updates the same GitHub Actions workflow pins (e.g., actions/checkout → v6.0.2) across workflows.
  • Dependency Dashboard family-office-portal#6: Updates pinned GitHub Action versions across .github/workflows/ files matching Renovate dependency updates.
  • Dependency Dashboard reference-library#10: Modifies the same GitHub Actions workflow pins for actions/checkout, github/codeql-action, and other actions.
  • Dependency Dashboard DeQA-Doc#16: Updates pinned GitHub Action versions (e.g., actions/checkout → v6.0.2, github/codeql-action, fsfe/reuse-action) matching Renovate Dependency Dashboard updates.

Suggested labels

ci

Poem

🐰 In workflows bright, the versions dance,
From v4 to v6, a stepping stance,
Each action pinned, each tool made new,
CI/CD flows now fresh and true!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'chore(deps)!: Update GitHub Actions (major)' accurately and specifically describes the main change—updating GitHub Actions across 10 workflows to new major versions with breaking change implications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch renovate/major-github-actions

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@williaby williaby force-pushed the renovate/major-github-actions branch 2 times, most recently from 257585c to 0e55c65 Compare May 10, 2026 02:34
Copilot AI review requested due to automatic review settings May 10, 2026 17:26
@williaby williaby force-pushed the renovate/major-github-actions branch from 0e55c65 to 0a64017 Compare May 10, 2026 17:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates pinned versions (commit SHAs) of several GitHub Actions used across the repository’s CI/security workflows, aligning them with newer major releases.

Changes:

  • Bump core CI actions (checkout, setup-python, upload-artifact) to newer major versions across multiple workflows.
  • Upgrade security/scanning actions (SonarSource scan action, CodeQL action, GitHub Script, SLSA provenance attestation, cosign installer, lychee, REUSE).
  • Refresh UV setup action in workflows that use astral-sh/setup-uv.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/workflows/sonarcloud.yml Updates checkout/setup-python/Sonar scan/upload-artifact action pins for SonarCloud analysis.
.github/workflows/slsa-provenance.yml Updates action pins used during build + provenance attestation generation.
.github/workflows/reuse.yml Updates checkout/REUSE/upload-artifact action pins for license compliance checks.
.github/workflows/release-sign.yml Updates checkout + cosign-installer pins for signing release artifacts.
.github/workflows/pr-validation.yml Updates checkout/setup-python/setup-uv/lychee pins for PR validation checks.
.github/workflows/fips-compatibility.yml Updates checkout/setup-uv/upload-artifact/github-script pins for FIPS checks and PR commenting.
.github/workflows/dependency-review.yml Updates checkout pin in dependency review workflow.
.github/workflows/codeql.yml Updates checkout/setup-python/setup-uv/CodeQL pins for CodeQL scanning.
.github/workflows/cifuzzy.yml Updates checkout/CodeQL upload-sarif/upload-artifact pins for fuzzing workflow.
Comments suppressed due to low confidence (2)

.github/workflows/sonarcloud.yml:114

  • SonarSource/sonarqube-scan-action v8 changes the default for signature verification (skipSignatureVerification now defaults to false per the upstream release notes). Since this workflow doesn’t set that input explicitly, the upgrade changes behavior and may cause unexpected failures if signature verification can’t run in the runner environment. Consider setting skipSignatureVerification explicitly (true/false) to make the intended behavior stable across upgrades.
      - name: SonarCloud Scan
        uses: SonarSource/sonarqube-scan-action@59db25f34e16620e48ab4bb9e4a5dce155cb5432 # v8.0.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}  # Needed for PR decoration
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}      # SonarCloud authentication
        with:
          args: >

.github/workflows/dependency-review.yml:28

  • This workflow pins actions/checkout by commit SHA, but actions/dependency-review-action is still referenced by the mutable tag @v4. For supply-chain safety and consistency with the rest of these workflow updates, pin dependency-review-action to a specific commit SHA (and keep the version in a comment) to prevent unintended changes from a tag move.
      - name: Checkout repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

      - name: Dependency Review
        uses: actions/dependency-review-action@v4
        with:

Comment thread .github/workflows/sonarcloud.yml Outdated
Comment on lines 65 to 68
steps:
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
Comment on lines 34 to 38
@@ -38,7 +38,7 @@ jobs:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in commit ae82201: fsfe/reuse:latest replaced with fsfe/reuse:6.2.0@sha256:85462a75c0f8efda09ddd190b92816b70e7662577c8427429e11e1b9f25a992e (tag+digest immutable form). The 6.2.0 digest currently matches what :latest resolved to, so this preserves semantics while making the image pull reproducible.

@williaby williaby force-pushed the renovate/major-github-actions branch from 0a64017 to e3d3a57 Compare May 11, 2026 23:21
@github-actions

github-actions Bot commented May 11, 2026

Copy link
Copy Markdown

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd 🟢 5.7
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained⚠️ 01 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Packaging⚠️ -1packaging workflow not detected
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
SAST🟢 8SAST tool detected but not run on all commits
actions/actions/attest-build-provenance a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 UnknownUnknown
actions/actions/checkout de0fac2e4500dabe0009e67214ff5f5447ce83dd 🟢 5.7
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained⚠️ 01 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Packaging⚠️ -1packaging workflow not detected
Pinned-Dependencies🟢 3dependency not pinned by hash detected -- score normalized to 3
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection🟢 5branch protection is not maximal on development and all release branches
SAST🟢 8SAST tool detected but not run on all commits
actions/actions/setup-python a309ff8b426b58ec0e2a45f0f869d46889d02405 🟢 5.1
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained⚠️ 12 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Packaging⚠️ -1packaging workflow not detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
License🟢 10license file detected
Fuzzing⚠️ 0project is not fuzzed
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 9SAST tool is not run on all commits -- score normalized to 9
actions/actions/upload-artifact 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a 🟢 5.6
Details
CheckScoreReason
Maintained🟢 66 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 6
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 8Found 8/9 approved changesets -- score normalized to 8
Packaging⚠️ -1packaging workflow not detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 1dependency not pinned by hash detected -- score normalized to 1
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
SAST🟢 10SAST tool is run on all commits
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
actions/astral-sh/setup-uv 08807647e7069bb48b6ef5acd8ec9567f424441b UnknownUnknown

Scanned Files

  • .github/workflows/performance-regression.yml
  • .github/workflows/slsa-provenance.yml

@williaby williaby force-pushed the renovate/major-github-actions branch from e3d3a57 to ba8c7e6 Compare May 14, 2026 17:36
@github-actions

Copy link
Copy Markdown

✅ Performance Regression Check

Status: PERFORMANCE OK

Metric Baseline (main) PR Branch Change
p95_ms 2.42 2.45 +1.3%

Threshold: +/-10% allowed regression

✅ Performance is within acceptable range.

Additional Metrics

Metric Baseline PR Change
p50_ms 1.87 1.87 📈 0.1%
p95_ms 2.42 2.45 📈 1.3%
p99_ms 2.53 2.56 📈 1.0%
mean_ms 1.42 1.42 📈 0.5%
min_ms 0.06 0.06 ➡️ 0.0%
max_ms 2.62 2.56 📉 -2.1%
throughput_ops 706.89 703.45 📉 -0.5%
total_iterations 500.00 500.00 ➡️ 0.0%
avg_p95_all_benchmarks_ms 1.00 0.98 📉 -2.2%
avg_throughput_all_benchmarks_ops 1103246.44 1059042.53 📉 -4.0%
About Performance Regression Testing

This automated check compares p95_ms on this PR against the main branch baseline.

  • Regression Threshold: 10%
  • Warmup Iterations: 5
  • Benchmark Iterations: 50
  • Baseline Source: generated

To reproduce locally:

uv run python scripts/benchmark.py --iterations 1000 

@williaby williaby force-pushed the renovate/major-github-actions branch 2 times, most recently from 14ec59b to 6d47f0b Compare May 20, 2026 20:37
@github-actions

Copy link
Copy Markdown

✅ Performance Regression Check

Status: PERFORMANCE OK

Metric Baseline (main) PR Branch Change
p95_ms 2.55 2.65 +3.6%

Threshold: +/-10% allowed regression

✅ Performance is within acceptable range.

Additional Metrics

Metric Baseline PR Change
p50_ms 1.88 1.87 📉 -0.1%
p95_ms 2.55 2.65 📈 3.6%
p99_ms 2.69 2.83 📈 5.4%
mean_ms 1.45 1.49 📈 2.8%
min_ms 0.06 0.06 📈 3.6%
max_ms 2.94 2.85 📉 -2.8%
throughput_ops 688.15 669.92 📉 -2.6%
total_iterations 500.00 500.00 ➡️ 0.0%
avg_p95_all_benchmarks_ms 1.14 1.04 📉 -8.9%
avg_throughput_all_benchmarks_ops 888535.44 1063144.62 📈 19.7%
About Performance Regression Testing

This automated check compares p95_ms on this PR against the main branch baseline.

  • Regression Threshold: 10%
  • Warmup Iterations: 5
  • Benchmark Iterations: 50
  • Baseline Source: generated

To reproduce locally:

uv run --frozen  python scripts/benchmark.py --iterations 1000 

@williaby williaby force-pushed the renovate/major-github-actions branch from 6d47f0b to 575d536 Compare May 20, 2026 23:36
@github-actions

Copy link
Copy Markdown

✅ Performance Regression Check

Status: PERFORMANCE OK

Metric Baseline (main) PR Branch Change
p95_ms 2.54 2.53 -0.2%

Threshold: +/-10% allowed regression

✅ Performance is within acceptable range.

Additional Metrics

Metric Baseline PR Change
p50_ms 1.87 1.87 📉 -0.2%
p95_ms 2.54 2.53 📉 -0.2%
p99_ms 2.70 2.61 📉 -3.3%
mean_ms 1.45 1.44 📉 -0.8%
min_ms 0.06 0.06 ➡️ 0.0%
max_ms 2.97 2.62 📉 -12.0%
throughput_ops 688.50 693.76 📈 0.8%
total_iterations 500.00 500.00 ➡️ 0.0%
avg_p95_all_benchmarks_ms 1.05 1.01 📉 -3.2%
avg_throughput_all_benchmarks_ops 1056224.68 1055952.29 📉 -0.0%
About Performance Regression Testing

This automated check compares p95_ms on this PR against the main branch baseline.

  • Regression Threshold: 10%
  • Warmup Iterations: 5
  • Benchmark Iterations: 50
  • Baseline Source: generated

To reproduce locally:

uv run --frozen  python scripts/benchmark.py --iterations 1000 

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/cifuzzy.yml:
- Around line 42-43: The checkout step named "Checkout repository" uses
actions/checkout without disabling persisted credentials; update that step (the
one using actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) to include
persist-credentials: false so the runner does not leave Git credentials
persisted after checkout.

In @.github/workflows/dependency-review.yml:
- Around line 29-30: The checkout step using actions/checkout (uses:
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) persists the GitHub
token by default; add persist-credentials: false to that checkout step to
disable storing credentials in git config for this read-only PR analysis
workflow so no token is retained after checkout.

In @.github/workflows/fips-compatibility.yml:
- Around line 57-59: The checkout steps currently call
actions/checkout@de0fac2e4500... without disabling credential persistence;
update both Checkout repository steps (the one using
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd and the second
checkout in the fips-runtime-test job) to include persist-credentials: false so
the GitHub token is not written to the workspace and cannot be used by
downstream steps.

In @.github/workflows/performance-regression.yml:
- Around line 55-56: The checkout step uses actions/checkout@de0fac2e... without
disabling credential persistence; add the persist-credentials: false option to
the Checkout step (the actions/checkout usage) so credentials are not stored in
the runner after checkout, ensuring the workflow does not keep GitHub tokens in
the environment when no authenticated git operations occur.

In @.github/workflows/pr-validation.yml:
- Around line 55-57: The checkout action usages (uses:
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) currently omit
persist-credentials and must explicitly disable credential persistence; locate
each actions/checkout invocation in the workflow (the three occurrences of uses:
actions/checkout@...) and add persist-credentials: false under the step to
ensure repository credentials are not stored for subsequent steps or jobs.

In @.github/workflows/release-sign.yml:
- Around line 24-25: The checkout step uses actions/checkout@de0fac2e... but
currently leaves credentials persisted; update the Checkout step (the
actions/checkout invocation) to set persist-credentials: false so the checkout
action does not inject or persist the workflow token (GH_TOKEN) into the
workspace for the signing job; this change should be applied to the existing
Checkout step in the release-sign workflow where actions/checkout is used.

In @.github/workflows/reuse.yml:
- Around line 28-29: Update both Checkout steps that use actions/checkout (the
step named "Checkout repository" and the other checkout step later) to include
the security flag persist-credentials: false under the step to prevent automatic
credential persistence; locate the steps that reference uses:
actions/checkout@de0fac2e4500d... and the second actions/checkout occurrence and
add persist-credentials: false as a top-level key in each step.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 71aca43e-ac08-45da-88f4-f916d965bbbc

📥 Commits

Reviewing files that changed from the base of the PR and between ca8cb77 and 575d536.

📒 Files selected for processing (9)
  • .github/workflows/cifuzzy.yml
  • .github/workflows/codeql.yml
  • .github/workflows/dependency-review.yml
  • .github/workflows/fips-compatibility.yml
  • .github/workflows/performance-regression.yml
  • .github/workflows/pr-validation.yml
  • .github/workflows/release-sign.yml
  • .github/workflows/reuse.yml
  • .github/workflows/slsa-provenance.yml

Comment on lines 42 to +43
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

# Find and examine the cifuzzy.yml workflow file
find . -name "cifuzzy.yml" -type f

Repository: ByronWilliamsCPA/rag-processor

Length of output: 106


🏁 Script executed:

# Once found, examine the checkout section and surrounding context
cat -n .github/workflows/cifuzzy.yml | head -100

Repository: ByronWilliamsCPA/rag-processor

Length of output: 3987


Disable persisted Git credentials in checkout.

Line 43: actions/checkout leaves credentials persisted by default. Set persist-credentials: false since this workflow performs no authenticated git operations after checkout, reducing token exposure.

🔒 Suggested fix
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.25.2)

[warning] 42-43: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/cifuzzy.yml around lines 42 - 43, The checkout step named
"Checkout repository" uses actions/checkout without disabling persisted
credentials; update that step (the one using
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) to include
persist-credentials: false so the runner does not leave Git credentials
persisted after checkout.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby, understood — the omission is clearly pre-existing and out of scope for a version-bump-only PR. The scoping rationale is sound.

Would you like me to open a GitHub issue to track the follow-up hardening work? I can create it with a reference back to this PR and list the seven workflow files that still need persist-credentials: false added to their checkout steps, so nothing gets lost before the dedicated chore(security): harden checkout calls PR lands.

Comment on lines 29 to +30
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/dependency-review.yml

Repository: ByronWilliamsCPA/rag-processor

Length of output: 1854


🏁 Script executed:

# Check if there are other checkout steps in the repository's workflows to see patterns
rg "actions/checkout" .github/workflows/ -A 2 -B 1

Repository: ByronWilliamsCPA/rag-processor

Length of output: 3904


Disable credential persistence in checkout step.

Line 30 should set persist-credentials: false to prevent the GitHub token from being stored in git config. This workflow is a read-only PR analysis job that doesn't require authenticated git operations and shouldn't retain credentials.

🔒 Suggested fix
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.25.2)

[warning] 29-30: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/dependency-review.yml around lines 29 - 30, The checkout
step using actions/checkout (uses:
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd) persists the GitHub
token by default; add persist-credentials: false to that checkout step to
disable storing credentials in git config for this read-only PR analysis
workflow so no token is retained after checkout.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby, that's a reasonable scoping call — keeping the Renovate PR focused purely on version bumps is cleaner. The finding is noted, and it's helpful to know codeql.yml already has the flag set while 7 others still need it.

Would you like me to open a GitHub issue to track the chore(security): harden checkout calls follow-up? I can pre-populate it with the list of workflows that still need persist-credentials: false so nothing slips through.


✏️ Learnings added
Learnt from: williaby
Repo: ByronWilliamsCPA/rag-processor PR: 19
File: .github/workflows/dependency-review.yml:29-30
Timestamp: 2026-05-21T04:02:02.792Z
Learning: In the ByronWilliamsCPA/rag-processor repository, `codeql.yml` already sets `persist-credentials: false` on its `actions/checkout` step, but 7 other workflow files (cifuzzy.yml, dependency-review.yml, fips-compatibility.yml, performance-regression.yml, pr-validation.yml, release-sign.yml, reuse.yml, slsa-provenance.yml) are missing this flag. A follow-up `chore(security): harden checkout calls` PR is planned to address all remaining checkout invocations.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines 57 to 59
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

fd -t f "fips-compatibility.yml" .github/workflows/

Repository: ByronWilliamsCPA/rag-processor

Length of output: 115


🏁 Script executed:

cat -n .github/workflows/fips-compatibility.yml

Repository: ByronWilliamsCPA/rag-processor

Length of output: 9979


🏁 Script executed:

# Verify that actions/checkout supports persist-credentials parameter
web_search "actions/checkout persist-credentials false security best practice"

Repository: ByronWilliamsCPA/rag-processor

Length of output: 125


🌐 Web query:

actions/checkout persist-credentials false github actions security

💡 Result:

The persist-credentials input for the actions/checkout GitHub Action controls whether the repository's authentication token (typically the GITHUB_TOKEN) is persisted in the local Git configuration (.git/config) after the checkout step [1][2]. By default, persist-credentials is true [1][2]. When enabled, this allows subsequent steps in the same job to execute authenticated Git commands (e.g., git fetch, git push) without needing to manually re-authenticate [1][2]. Security Implications: - Potential for Exposure: Because the token is stored in the Git configuration, any subsequent step or script running within the same job—including potentially compromised third-party actions—can access the token [3][4]. - Artifact Leaks: If a workflow creates and uploads artifacts of the repository (e.g., using actions/upload-artifact), the credential stored in .git/config may be inadvertently included in the uploaded artifact, potentially exposing the token if the artifact is public or accessible to unauthorized users [5]. Recent Security Improvements: GitHub has updated actions/checkout to improve how these credentials are handled. Instead of storing them directly in .git/config, the action now persists credentials in a separate, temporary file located under $RUNNER_TEMP [1][2][6]. It uses Git's includeIf mechanism to conditionally apply these credentials only when performing Git operations within that specific workspace [6]. Recommendation: To follow the principle of least privilege, you should set persist-credentials: false in any workflow that does not explicitly require authenticated Git operations (such as pushing changes) [4]. This reduces the attack surface by ensuring that even if a workflow step is compromised, the GITHUB_TOKEN is not readily available in the local configuration [4]. Example: - uses: actions/checkout@v4 with: persist-credentials: false

Citations:


Disable persisted credentials in both checkout steps.

Lines 58 and 204 should set persist-credentials: false to reduce token exposure in downstream steps. Since neither job performs authenticated Git operations (only checkout, running Python scripts, and uploading artifacts), the credential is unnecessary and should not be persisted per security best practices.

Suggested fix
      - name: Checkout repository
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+       with:
+         persist-credentials: false

Apply the same change at line 204 in the fips-runtime-test job.

Also applies to: 203-205

🧰 Tools
🪛 zizmor (1.25.2)

[warning] 57-58: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/fips-compatibility.yml around lines 57 - 59, The checkout
steps currently call actions/checkout@de0fac2e4500... without disabling
credential persistence; update both Checkout repository steps (the one using
actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd and the second
checkout in the fips-runtime-test job) to include persist-credentials: false so
the GitHub token is not written to the workspace and cannot be used by
downstream steps.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby — that's a fair and well-reasoned scoping decision. The finding is valid security hardening, but since it predates this PR and is being tracked for a dedicated follow-up, it shouldn't block these version bumps.

Would you like me to open a GitHub issue to track the chore(security): harden checkout calls work? I can pre-populate it with the list of affected workflow files (the 7 remaining without persist-credentials: false) and backlink it to this PR.


✏️ Learnings added
Learnt from: williaby
Repo: ByronWilliamsCPA/rag-processor PR: 19
File: .github/workflows/fips-compatibility.yml:57-59
Timestamp: 2026-05-21T04:02:05.271Z
Learning: In the ByronWilliamsCPA/rag-processor repository, `persist-credentials: false` is intentionally absent from most `actions/checkout` steps across `.github/workflows/` — it is pre-existing technical debt, not introduced by individual PRs. Only `codeql.yml` currently sets this flag. A dedicated follow-up PR (`chore(security): harden checkout calls`) is planned to add it to the remaining 7 workflow files: cifuzzy.yml, dependency-review.yml, fips-compatibility.yml, performance-regression.yml, pr-validation.yml, release-sign.yml, reuse.yml, and slsa-provenance.yml.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines 55 to +56
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/performance-regression.yml | head -70

Repository: ByronWilliamsCPA/rag-processor

Length of output: 2880


🏁 Script executed:

rg "persist-credentials" .github/workflows/

Repository: ByronWilliamsCPA/rag-processor

Length of output: 140


🌐 Web query:

GitHub Actions checkout action persist-credentials security best practice

💡 Result:

Best practice: set persist-credentials: false on every actions/checkout step unless you specifically need authenticated git credentials (e.g., for pushing back) in later steps. GitHub’s actions/checkout docs describe that the token/credential is persisted in the local git config by default and removed during post-job cleanup, and recommend using persist-credentials: false to opt out [1][2]. Example (hardened checkout): uses: actions/checkout@v4 with: persist-credentials: false Why: - Persisting credentials means the auth token/credential can be present in the checked-out workspace’s git configuration and therefore is more exposed to any process running after checkout in the same job. The actions/checkout project explicitly documents that behavior and the opt-out flag [1][2]. - Security guidance and community recommendations commonly call out using persist-credentials: false to reduce credential exposure risk if the workflow or environment is compromised [3]. Notes / tradeoffs: - If you truly need to run authenticated git commands later (push, create tags/releases, etc.), you may need credentials. In that case, prefer minimizing scope and permissions (e.g., least-privilege GITHUB_TOKEN permissions), and consider reconfiguring credentials only for the step that needs them (some workflows re-set the remote URL after using persist-credentials: false) [4]. Summary recommendation: - Default to persist-credentials: false for checkout steps; only opt in when a later step must perform authenticated git operations, and then constrain permissions as tightly as possible. [1][2][3]

Citations:


Harden checkout by disabling credential persistence.

Line 56 should explicitly set persist-credentials: false. The workflow performs no authenticated git operations after checkout, and GitHub's documentation recommends this setting to minimize credential exposure.

🔒 Suggested fix
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.25.2)

[warning] 55-56: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/performance-regression.yml around lines 55 - 56, The
checkout step uses actions/checkout@de0fac2e... without disabling credential
persistence; add the persist-credentials: false option to the Checkout step (the
actions/checkout usage) so credentials are not stored in the runner after
checkout, ensuring the workflow does not keep GitHub tokens in the environment
when no authenticated git operations occur.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby, understood — the finding is valid but genuinely pre-existing, and keeping Renovate bump PRs narrowly scoped is the right call. The planned chore(security): harden checkout calls PR sounds like the correct place to address all 7 remaining checkout invocations at once.

Would you like me to open a GitHub issue to track that follow-up hardening work? I can link back to this PR and comment for context.


✏️ Learnings added
Learnt from: williaby
Repo: ByronWilliamsCPA/rag-processor PR: 19
File: .github/workflows/performance-regression.yml:55-56
Timestamp: 2026-05-21T04:02:05.948Z
Learning: In the ByronWilliamsCPA/rag-processor repository, `persist-credentials: false` is already set on the `actions/checkout` step in `.github/workflows/codeql.yml`, but is missing from 7 other workflow files: `cifuzzy.yml`, `dependency-review.yml`, `fips-compatibility.yml`, `performance-regression.yml`, `pr-validation.yml`, `release-sign.yml`, and `reuse.yml`. A follow-up PR titled `chore(security): harden checkout calls` is planned to address all remaining checkout steps missing this flag.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines 55 to 57
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/pr-validation.yml | sed -n '50,135p'

Repository: ByronWilliamsCPA/rag-processor

Length of output: 3629


Disable checkout credential persistence across all jobs.

Lines 56, 97, and 129 should all set persist-credentials: false to minimize credential exposure in workflows where repository credentials are unnecessary.

🔒 Suggested fix
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
...
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
...
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false

Also applies to: 97–98, 129–130

🧰 Tools
🪛 zizmor (1.25.2)

[warning] 55-56: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/pr-validation.yml around lines 55 - 57, The checkout
action usages (uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd)
currently omit persist-credentials and must explicitly disable credential
persistence; locate each actions/checkout invocation in the workflow (the three
occurrences of uses: actions/checkout@...) and add persist-credentials: false
under the step to ensure repository credentials are not stored for subsequent
steps or jobs.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby, understood — the gap is pre-existing and out of scope for a Renovate version-bump PR. Keeping the change set focused is the right call.

Would you like me to open a GitHub issue to track the follow-up chore(security): harden checkout calls work? I can capture the 7 affected workflow files (excluding codeql.yml which already has the flag) and link back to this PR for context.


✏️ Learnings added
Learnt from: williaby
Repo: ByronWilliamsCPA/rag-processor PR: 19
File: .github/workflows/pr-validation.yml:55-57
Timestamp: 2026-05-21T04:02:06.311Z
Learning: In the ByronWilliamsCPA/rag-processor repository, `persist-credentials: false` is missing from `actions/checkout` steps in 7 workflow files (all except `.github/workflows/codeql.yml`, which already has it). This is a pre-existing gap, not introduced by any specific PR. A dedicated follow-up PR (`chore(security): harden checkout calls`) is planned to address all remaining occurrences.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines 24 to +25
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

find .github/workflows -name "release-sign.yml" -type f

Repository: ByronWilliamsCPA/rag-processor

Length of output: 109


🏁 Script executed:

cat -n .github/workflows/release-sign.yml

Repository: ByronWilliamsCPA/rag-processor

Length of output: 3549


Disable checkout credential persistence in the signing job.

Line 25 should set persist-credentials: false, especially with write-scoped token permissions in this job. The workflow uses explicit GH_TOKEN from secrets in downstream steps, so checkout credentials do not need to persist.

🔒 Suggested fix
       - name: Checkout
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd  # v6.0.2
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.25.2)

[warning] 24-25: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/release-sign.yml around lines 24 - 25, The checkout step
uses actions/checkout@de0fac2e... but currently leaves credentials persisted;
update the Checkout step (the actions/checkout invocation) to set
persist-credentials: false so the checkout action does not inject or persist the
workflow token (GH_TOKEN) into the workspace for the signing job; this change
should be applied to the existing Checkout step in the release-sign workflow
where actions/checkout is used.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby, understood — the finding predates this PR and keeping the Renovate bump scoped is the right call. Would you like me to open a GitHub issue to track the chore(security): harden checkout calls work? I can file it now with a reference back to this PR and list the seven workflow files that still need persist-credentials: false.


✏️ Learnings added
Learnt from: williaby
Repo: ByronWilliamsCPA/rag-processor PR: 19
File: .github/workflows/release-sign.yml:24-25
Timestamp: 2026-05-21T04:02:09.835Z
Learning: In the ByronWilliamsCPA/rag-processor repository, `persist-credentials: false` is already set on the `actions/checkout` step in `.github/workflows/codeql.yml`. The following workflow files are missing it and are tracked for a follow-up hardening PR (`chore(security): harden checkout calls`): `cifuzzy.yml`, `dependency-review.yml`, `fips-compatibility.yml`, `performance-regression.yml`, `pr-validation.yml`, `release-sign.yml`, `reuse.yml`, and `slsa-provenance.yml`.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

Comment on lines 28 to +29
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

@coderabbitai coderabbitai Bot May 20, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/reuse.yml | sed -n '20,60p'

Repository: ByronWilliamsCPA/rag-processor

Length of output: 1591


Add persist-credentials: false to both checkout actions.

Both lines 29 and 52 are missing the credential persistence hardening flag required for secure secret handling in GitHub Actions workflows.

Suggested fix
       - name: Checkout repository
         uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Checkout repository
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.25.2)

[warning] 28-29: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/reuse.yml around lines 28 - 29, Update both Checkout steps
that use actions/checkout (the step named "Checkout repository" and the other
checkout step later) to include the security flag persist-credentials: false
under the step to prevent automatic credential persistence; locate the steps
that reference uses: actions/checkout@de0fac2e4500d... and the second
actions/checkout occurrence and add persist-credentials: false as a top-level
key in each step.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Deferred to a follow-up PR. The finding is valid hardening guidance, but the omission of persist-credentials: false is pre-existing — it was absent on the prior v4.3.1 checkout pin too, not introduced by this Renovate version-bump PR. Keeping this PR scoped to the action version bumps and SHA pinning of dependency-review-action + fsfe/reuse image. A separate chore(security): harden checkout calls PR will address all checkout invocations missing the flag (codeql.yml already has it; 7 others remain across this list of files). Not blocking this PR's merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@williaby, understood — the finding is pre-existing and keeping this PR scoped to the version bumps is the right call. Thanks for the clear context on codeql.yml already being hardened.

Would you like me to open a GitHub issue to track the follow-up chore(security): harden checkout calls work? I can include the list of the 7 affected workflow files and a backlink to this PR so nothing gets lost.


✏️ Learnings added
Learnt from: williaby
Repo: ByronWilliamsCPA/rag-processor PR: 19
File: .github/workflows/reuse.yml:28-29
Timestamp: 2026-05-21T04:02:10.387Z
Learning: In the ByronWilliamsCPA/rag-processor repository, `persist-credentials: false` is already set in `.github/workflows/codeql.yml` checkout steps but is missing from 7 other workflow files: `cifuzzy.yml`, `dependency-review.yml`, `fips-compatibility.yml`, `performance-regression.yml`, `pr-validation.yml`, `release-sign.yml`, and `reuse.yml`. A dedicated follow-up PR (`chore(security): harden checkout calls`) is planned to address all remaining checkout invocations missing the flag. Do not flag this as a new issue in PRs that are purely version-bump changes; it is pre-existing.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@williaby

Copy link
Copy Markdown
Contributor Author

PR Review

CI is green and every action is SHA-pinned with a version comment. No Critical findings. A small number of Important items below are worth addressing before merge; one Suggested item is intentionally deferred to a follow-up.

Important (should fix)

  • PR body says "scheduled patch update / no API changes" — but this is a multi-major sweep. The diff bumps 10 actions across major versions, including actions/checkout v4.3.1 → v6.0.2 (skips v5, now requires Node 24), actions/upload-artifact v4.6.2 → v7.0.1 (+3 majors), actions/github-script v7 → v9 (skips v8), astral-sh/setup-uv v4 → v8 (+4 majors), and actions/attest-build-provenance v1.5.2 → v4.1.0 (+3 majors). Update the description so audit/incident readers aren't misled about scope. (Copilot raised this too.)

  • dependency-review.yml:30: actions/dependency-review-action is still referenced by mutable tag @v4, while every other action in the repo is SHA-pinned. Pin to a specific commit SHA for supply-chain consistency.

  • reuse.yml:38 (Generate REUSE SPDX step): the step pulls fsfe/reuse:latest (mutable Docker tag), creating a supply-chain and reproducibility risk. Pin to a specific tag or digest.

Suggested (defer to follow-up PR)

  • persist-credentials: false is missing on 7 actions/checkout invocations (cifuzzy, dependency-review, fips-compatibility, performance-regression, pr-validation, release-sign, reuse). CodeRabbit + zizmor flagged these, but the omissions are pre-existing (they were absent on the old v4.3.1 pins too); not introduced by this Renovate bump. Recommend a separate chore(security): harden checkout calls PR rather than expanding this PR's scope. codeql.yml already sets the flag correctly.

Operational notes

  • Branch is behind main — rebase before merge so the green CI signal reflects current main + this PR rather than an older base.
  • Three workflows (release-sign.yml, slsa-provenance.yml build job, cifuzzy.yml) only run on release/schedule events. PR-time CI did not exercise them; their new action versions are unproven until the next release. Worth watching the next release closely.

Copilot ruleset review and CodeRabbit have already posted inline comments; the SonarCloud quality gate passed.

🤖 Generated with Claude Code

williaby and others added 2 commits May 20, 2026 20:55
Address PR review feedback from Copilot on PR #19:

- actions/dependency-review-action: replace mutable @v4 tag with
  SHA pin 2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 to
  match the repo's SHA-pinning convention used by every other
  action in the workflows.

- fsfe/reuse Docker image: replace mutable :latest tag with
  6.2.0@sha256:85462a75c0f8efda09ddd190b92816b70e7662577c8427429e11e1b9f25a992e
  for reproducibility and supply-chain safety. The 6.2.0 tag
  digest currently matches the :latest digest, so this preserves
  semantics while making the pull immutable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@williaby williaby force-pushed the renovate/major-github-actions branch from 575d536 to ae82201 Compare May 21, 2026 04:00
@github-actions

Copy link
Copy Markdown

✅ Performance Regression Check

Status: PERFORMANCE OK

Metric Baseline (main) PR Branch Change
p95_ms 2.50 2.52 +1.0%

Threshold: +/-10% allowed regression

✅ Performance is within acceptable range.

Additional Metrics

Metric Baseline PR Change
p50_ms 1.87 1.90 📈 1.7%
p95_ms 2.50 2.52 📈 1.0%
p99_ms 2.54 2.66 📈 5.1%
mean_ms 1.41 1.44 📈 2.2%
min_ms 0.06 0.06 ➡️ 0.0%
max_ms 2.54 2.68 📈 5.5%
throughput_ops 708.28 692.91 📉 -2.2%
total_iterations 500.00 500.00 ➡️ 0.0%
avg_p95_all_benchmarks_ms 1.01 1.00 📉 -0.9%
avg_throughput_all_benchmarks_ops 955271.50 1002978.70 📈 5.0%
About Performance Regression Testing

This automated check compares p95_ms on this PR against the main branch baseline.

  • Regression Threshold: 10%
  • Warmup Iterations: 5
  • Benchmark Iterations: 50
  • Baseline Source: generated

To reproduce locally:

uv run --frozen  python scripts/benchmark.py --iterations 1000 

@sonarqubecloud

Copy link
Copy Markdown

@williaby

Copy link
Copy Markdown
Contributor Author

PR Fix Summary

Applied via /pr-fix workflow.

Changes pushed (force-push to renovate/major-github-actions):

  1. Rebased onto current main (was BEHIND by 2 commits: docs: enrich route OpenAPI metadata + fix(ci): install dev extras for compat matrix #28 + ci(mutation): run mutation testing weekly only, drop PR trigger #35). The PR's commit was replayed as 205ca78 on top of e284418. No conflicts (file sets were disjoint).

  2. fix(ci): pin dependency-review-action and fsfe/reuse to immutable refs (ae82201) — 2 files, +4/-2 lines:

    • .github/workflows/dependency-review.yml: actions/dependency-review-action@v4@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0 (matches repo SHA-pinning convention; staying on v4 line, v5 bump deferred to a separate PR).
    • .github/workflows/reuse.yml: fsfe/reuse:latestfsfe/reuse:6.2.0@sha256:85462a75c0f8efda09ddd190b92816b70e7662577c8427429e11e1b9f25a992e (tag+digest immutable form).

PR description updated: ## Summary and ## Why now accurately describe this as a multi-major sweep (Copilot finding on sonarcloud.yml, line: null, addressed at the PR-body level since it was a file-scope review comment).

Pre-commit verification: All hooks passed locally, including Validate GitHub Workflows (JSON-schema check against the official GitHub Actions schema). YAML parsing verified for both edited files.

Deferred to a separate follow-up PR (chore(security): harden checkout calls):

  • persist-credentials: false on 7 actions/checkout invocations flagged by CodeRabbit/zizmor (cifuzzy, dependency-review, fips-compatibility, performance-regression, pr-validation × 3 jobs, release-sign, reuse × 2). All omissions are pre-existing; codeql.yml already has the flag set correctly. Replies posted on each thread.

Operational notes:

  • Three workflows (release-sign.yml, slsa-provenance.yml build job, cifuzzy.yml) only run on release/schedule events. PR-time CI did not exercise them; their new action versions are unproven until the next release fires.
  • The push triggered a pull_request: synchronize event; CI re-running now.
  • The GitHub vulnerability advisory mentioned at push time (15 vulns on default branch) is a Dependabot scan on main, separate from this PR.

🤖 Generated with Claude Code

@williaby williaby merged commit 63e1727 into main May 21, 2026
35 checks passed
@williaby williaby deleted the renovate/major-github-actions branch May 21, 2026 04:05
@coderabbitai coderabbitai Bot mentioned this pull request May 28, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants