Skip to content

fix(ci): pin claude-code-reusable.yml to SHA for action pinning compliance#101

Open
don-petry wants to merge 1 commit intomainfrom
claude/issue-86-20260414-1313
Open

fix(ci): pin claude-code-reusable.yml to SHA for action pinning compliance#101
don-petry wants to merge 1 commit intomainfrom
claude/issue-86-20260414-1313

Conversation

@don-petry
Copy link
Copy Markdown
Contributor

Summary

  • Pins petry-projects/.github/.github/workflows/claude-code-reusable.yml from @v1 to its exact commit SHA (208ec2d69b75227d375edf8745d84fbac05a76b2) with # v1 comment for readability
  • Resolves the unpinned-actions-claude.yml compliance finding from the weekly audit

Standard

ci-standards.md#action-pinning-policy

Closes #86

Generated with Claude Code

…iance

Pins the reusable workflow call to its exact commit SHA as required by
the action-pinning policy in ci-standards.md.

Closes #86

Co-authored-by: don-petry <don-petry@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 14, 2026 13:15
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 14, 2026

Warning

Rate limit exceeded

@don-petry has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 57 minutes and 51 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 57 minutes and 51 seconds.

⌛ 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f95de83f-d150-40ee-b4f3-12bb365a56e8

📥 Commits

Reviewing files that changed from the base of the PR and between 256f909 and 5b12164.

📒 Files selected for processing (1)
  • .github/workflows/claude.yml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/issue-86-20260414-1313

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.

@don-petry
Copy link
Copy Markdown
Contributor Author

@don-petry This PR is ready for your review. It pins the reusable workflow SHA to resolve the action-pinning compliance finding (#86).

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Pins the claude.yml reusable workflow reference to an immutable commit SHA to satisfy the repository’s action pinning compliance requirement and resolve issue #86.

Changes:

  • Updated the reusable workflow uses: reference from @v1 to a full commit SHA.
  • Added an inline # v1 comment to preserve human-readable version intent.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@don-petry
Copy link
Copy Markdown
Contributor Author

Automated review — APPROVED

Risk: LOW
Reviewed commit: 5b12164653d36de631e071a82fd01d9c9e5e6d98
Cascade: triage → deep (see triage: haiku 4.5 → deep: sonnet 4.6 + duck: gpt-5.4 → audit: opus 4.6 for models)

Summary

This PR pins the reusable workflow reference in .github/workflows/claude.yml from a mutable @v1 tag to an immutable SHA, resolving compliance finding #86. All CI checks pass (CodeQL, SonarCloud, AgentShield), the SHA was verified to correctly correspond to the v1 tag in petry-projects/.github, and the change is a net security improvement. One minor finding: the pinned SHA is the annotated tag object SHA rather than the underlying commit SHA, but GitHub Actions resolves this correctly.

Findings

Info

  • [info] .github/workflows/claude.yml:39 — The pinned SHA (208ec2d69b75227d375edf8745d84fbac05a76b2) is the annotated tag object SHA, not the underlying commit SHA (ae9709f4466dec60a5733c9e7487f69dcd004e05). GitHub Actions resolves annotated tag SHAs correctly, so this is functional, but tooling like Dependabot and security scanners prefer commit SHAs for true immutability pinning. Consider updating to the commit SHA in a follow-up.
  • [info] .github/workflows/claude.yml:40 — The workflow passes 'secrets: inherit' to the SHA-pinned reusable workflow. This was pre-existing before this PR. By pinning to a SHA, the risk from this pattern is now reduced — the secrets will only flow to the exact version of code at that commit, not a potentially-updated mutable tag.

CI status

All CI checks pass (CodeQL, SonarCloud, AgentShield) per the deep-review verdict.


Reviewed by the don-petry PR-review cascade (triage: haiku 4.5 → deep: sonnet 4.6 + duck: gpt-5.4 → audit: opus 4.6). Reply with @don-petry if you need a human.

@don-petry don-petry enabled auto-merge (squash) April 16, 2026 14:08
@github-actions
Copy link
Copy Markdown
Contributor

Auto-rebase blocked — the base branch contains .github/workflows/ changes that require the workflows permission to merge into this branch, but the auto-rebase workflow's token does not have that permission.

Please rebase this branch manually:

git fetch origin
git rebase origin/main
git push --force-with-lease

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Compliance: unpinned-actions-claude.yml

2 participants