Skip to content

chore: pin all GitHub Actions to commit SHAs#137

Merged
KooshaPari merged 1 commit into
mainfrom
chore/pin-github-actions-20260430
May 1, 2026
Merged

chore: pin all GitHub Actions to commit SHAs#137
KooshaPari merged 1 commit into
mainfrom
chore/pin-github-actions-20260430

Conversation

@KooshaPari
Copy link
Copy Markdown
Owner

@KooshaPari KooshaPari commented May 1, 2026

User description

Summary

Pins all GitHub Actions to specific commit SHAs for security and reproducibility.

Changes

  • Pin to immutable SHA references
  • Pin , , , and other actions
  • Prevents supply chain attacks via action version hijacking

Actions Pinned

  • And other actions as needed per repo

Testing

All workflows validated - CI should pass with pinned SHAs.

Note

Low Risk
Low risk: changes are limited to CI workflow definitions, primarily swapping version tags for pinned commit SHAs; the main risk is breakage if a pinned SHA is incorrect or incompatible.

Overview
Pins GitHub Actions across the workflow suite to immutable commit SHAs (e.g., actions/checkout, actions/upload-artifact, actions/setup-python, actions/setup-node, actions/setup-java, actions/configure-pages, actions/deploy-pages, actions/download-artifact, actions/cache, actions/github-script).

This hardens CI/CD, security scanning, release, and docs deployment pipelines against upstream action tag changes and improves run reproducibility without changing the underlying job logic.

Reviewed by Cursor Bugbot for commit 4eca096. Bugbot is set up for automated code reviews on this repo. Configure here.


CodeAnt-AI Description

Pin GitHub Actions to fixed revisions across CI, release, and deployment workflows

What Changed

  • Workflow runs now use fixed Action revisions instead of moving version tags across build, test, security, docs, and release jobs
  • Artifact upload/download, Python, Node, Java, and Pages deployment steps are all locked to specific revisions
  • CI and release pipelines now produce the same results more consistently from run to run

Impact

✅ More consistent CI runs
✅ Fewer workflow breaks from upstream Action changes
✅ Lower supply-chain risk in build and release pipelines

🔄 Retrigger CodeAnt AI Review

Details

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

- Pin actions/checkout to specific versions
- Pin actions/setup-python, upload-artifact, github-script, etc.
- Ensures reproducible and secure CI runs
Copilot AI review requested due to automatic review settings May 1, 2026 04:54
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 1, 2026

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

Warning

Rate limit exceeded

@KooshaPari has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 55 minutes and 56 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 502d8a68-896f-4e78-8168-6a3742bc78cc

📥 Commits

Reviewing files that changed from the base of the PR and between 0568450 and 4eca096.

📒 Files selected for processing (21)
  • .github/workflows/audit.yml
  • .github/workflows/benchmark.yml
  • .github/workflows/cargo-deny.yml
  • .github/workflows/changelog.yml
  • .github/workflows/ci.yml
  • .github/workflows/deploy.yml
  • .github/workflows/evidence-capture.yml
  • .github/workflows/gate-check.yml
  • .github/workflows/policy-gate.yml
  • .github/workflows/publish.yml
  • .github/workflows/release.yml
  • .github/workflows/rust-release.yml
  • .github/workflows/sbom.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/security-guard.yml
  • .github/workflows/security.yml
  • .github/workflows/snyk-scan.yml
  • .github/workflows/sonarcloud.yml
  • .github/workflows/spec-validation.yml
  • .github/workflows/sync-canary.yml
  • .github/workflows/traceability-gate.yml

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
unknown escape sequence in ".coderabbit.yaml" (41:11)

 38 |       - "async_await_patterns"
 39 |     patterns_to_watch:
 40 |       - "^unsafe "
 41 |       - "\.unwrap\(\)"
----------------^
 42 |       - "\.expect\("
 43 |       - "std::panic"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/pin-github-actions-20260430
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch chore/pin-github-actions-20260430

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
Review rate limit: 0/1 reviews remaining, refill in 55 minutes and 56 seconds.

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

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

Legacy Tooling Scan Report

Total violations: 100

Severity Count
critical 0
high 0
medium 100
low 0

Top findings:

  • MEDIUM LT-GEN-005: src/thegent/planning/remediation_planner.py:1
  • MEDIUM LT-GEN-005: tests/test_phench_runtime.py:1
  • MEDIUM LT-GEN-005: tests/bdd/main.rs:1
  • MEDIUM LT-GEN-005: python/src/agileplus_mcp/grpc_client.py:1
  • MEDIUM LT-GEN-005: python/src/agileplus_proto/gen/agileplus/v1/integrations_pb2_grpc.py:1

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 1, 2026

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

🔒 Snyk Security Scan Results

Snyk vulnerability scan completed. View results in GitHub Code Scanning dashboard.

1 similar comment
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 1, 2026

🔒 Snyk Security Scan Results

Snyk vulnerability scan completed. View results in GitHub Code Scanning dashboard.

@codeant-ai codeant-ai Bot added the size:M This PR changes 30-99 lines, ignoring generated files label May 1, 2026
@KooshaPari KooshaPari merged commit 908a625 into main May 1, 2026
88 of 155 checks passed
@KooshaPari KooshaPari deleted the chore/pin-github-actions-20260430 branch May 1, 2026 04:56
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 1, 2026

CodeAnt AI finished reviewing your PR.

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 7 potential issues.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.


- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins setup-node to v6 instead of v4

High Severity

The SHA 48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e corresponds to actions/setup-node v6.4.0, but the original version tag was @v4. This silently upgrades the action by two major versions. v5 enabled caching by default and upgraded to Node 24, and v6 removed the always-auth input and changed automatic caching behavior — both are breaking changes that could cause unexpected workflow failures in the Snyk security scan.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.


- name: Setup Pages
uses: actions/configure-pages@v5
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins configure-pages to v6 instead of v5

High Severity

The SHA 45bfe0192ca1faeb007ade9deae92b16b8254a0d corresponds to actions/configure-pages v6.0.0, but the original version tag was @v5. This silently upgrades the action by one major version. v6 upgrades to Node 24 and may contain breaking changes that could cause the GitHub Pages deployment workflow to fail.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.

- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
- name: Set up JDK 17
uses: actions/setup-java@v4
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins setup-java to v5 instead of v4

Medium Severity

The SHA be666c2fcd27ec809703dec50e508c2fdc7f6654 corresponds to actions/setup-java v5.2.0, but the original version tag was @v4. This silently upgrades the action by one major version. The SonarCloud workflow could fail if v5 introduces breaking changes to the setup behavior or required runner version.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.


- name: Cache Cargo registry and build
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins actions/cache to v5 instead of v4

Medium Severity

The SHA 27d5ce7f107fe9357f9df03efb73ab90386fccae corresponds to actions/cache v5.0.5, but the original version tag was @v4. v5 requires Node.js 24 runtime and a minimum Actions Runner version of 2.327.1, which could cause the evidence-capture workflow to fail on runners that don't meet these requirements.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.


- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins setup-python and github-script to wrong major versions

Medium Severity

Two version mismatches in this file: actions/setup-python@v4 is pinned to SHA a26af69be9... which is v5.6.0, and actions/github-script@v6 is pinned to SHA f28e40c7f3... which corresponds to a commit in the v7 line (post-v7.0.1). Both are silent major version upgrades that could break the spec validation workflow.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins deploy-pages to v5 instead of v4

High Severity

The SHA cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 corresponds to actions/deploy-pages v5.0.0, but the original version tag was @v4. This silently upgrades the deploy step of the GitHub Pages workflow by one major version. Combined with the configure-pages v5→v6 mismatch in the same file, the entire deployment pipeline is shifted to incompatible major versions, risking deployment failures.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.


- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v4
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SHA pins upload-pages-artifact to v5 instead of v4

High Severity

The SHA fc324d3547104276b827a68afc52ff2a11cc49c9 corresponds to an actions/upload-pages-artifact commit associated with the v5 release line (updating to upload-artifact v7 and adding include-hidden-files input), but the original version tag was @v4. This is a silent major version upgrade in the pages build pipeline that could cause artifact upload failures.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 4eca096. Configure here.

@KooshaPari KooshaPari review requested due to automatic review settings May 1, 2026 05:17
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:M This PR changes 30-99 lines, ignoring generated files and removed size:M This PR changes 30-99 lines, ignoring generated files labels May 9, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

Sequence Diagram

This PR updates all GitHub Actions workflows to use pinned commit SHAs instead of version tags, hardening CI, release, docs, and security pipelines without changing their logical behavior.

sequenceDiagram
    participant Developer
    participant GitHub
    participant CIWorkflow
    participant PinnedActions
    participant ArtifactStorage

    Developer->>GitHub: Push commit or open pull request
    GitHub->>CIWorkflow: Trigger CI and security workflows
    CIWorkflow->>PinnedActions: Run checkout, tool setup, and scanners
    PinnedActions-->>CIWorkflow: Provide code, tools, and scan results
    CIWorkflow->>ArtifactStorage: Upload build and scan artifacts
    CIWorkflow-->>GitHub: Report workflow status and results
Loading

Generated by CodeAnt AI

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:M This PR changes 30-99 lines, ignoring generated files and removed size:M This PR changes 30-99 lines, ignoring generated files labels May 9, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

Sequence Diagram

This PR updates CI, security, release, and docs workflows to run all GitHub Actions by fixed commit SHAs, improving security and reproducibility without changing overall job logic.

sequenceDiagram
    participant Developer
    participant GitHub
    participant CIWorkflow
    participant PinnedActions
    participant Project

    Developer->>GitHub: Push code or open pull request
    GitHub->>CIWorkflow: Trigger CI, security, and release workflows
    CIWorkflow->>PinnedActions: Run checkout and setup steps with pinned SHAs
    PinnedActions-->>CIWorkflow: Provide repository code and tool environments
    CIWorkflow->>Project: Build, test, audit, and package project
    CIWorkflow->>PinnedActions: Upload artifacts and perform deployments using pinned actions
    PinnedActions-->>GitHub: Store artifacts and update releases or pages
Loading

Generated by CodeAnt AI

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 9, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 10, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:M This PR changes 30-99 lines, ignoring generated files and removed size:M This PR changes 30-99 lines, ignoring generated files labels May 10, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 10, 2026

Sequence Diagram

This PR pins all GitHub Actions in the release pipeline (checkout, artifact upload/download, and related helpers) to specific commit SHAs, hardening the release process without changing its core behavior.

sequenceDiagram
    participant Developer
    participant CI
    participant BuildJob
    participant ReleaseJob
    participant GitHubRelease

    Developer->>CI: Push tagged commit
    CI->>BuildJob: Run build job with pinned actions
    BuildJob->>BuildJob: Compile binaries and upload artifacts
    CI->>ReleaseJob: Run release job with pinned actions
    ReleaseJob->>GitHubRelease: Create release and attach binaries
    GitHubRelease-->>Developer: Release available with built artifacts
Loading

Generated by CodeAnt AI

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 10, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 10, 2026

CodeAnt AI is running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added size:M This PR changes 30-99 lines, ignoring generated files and removed size:M This PR changes 30-99 lines, ignoring generated files labels May 10, 2026
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 10, 2026

Sequence Diagram

This PR hardens the CI and release pipelines by switching all workflow steps to use pinned GitHub Action commit SHAs, preserving the existing job logic while improving security and reproducibility.

sequenceDiagram
    participant Developer
    participant GitHub
    participant CIWorkflows
    participant PinnedActions
    participant ExternalTools

    Developer->>GitHub: Push code or open pull request
    GitHub->>CIWorkflows: Trigger build, test, security, and release jobs
    CIWorkflows->>PinnedActions: Run checkout and tool setup with fixed revisions
    CIWorkflows->>PinnedActions: Execute build, test, audit, and scan steps with fixed revisions
    PinnedActions->>ExternalTools: Invoke compilers, linters, scanners, and artifact handlers
    CIWorkflows-->>Developer: Report stable and reproducible CI results
Loading

Generated by CodeAnt AI

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 10, 2026

CodeAnt AI finished running the review.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant