Skip to content

chore: pin GitHub Actions to commit SHAs - #345

Open
YoungJinJung wants to merge 1 commit into
mainfrom
chore/344-pin-github-actions
Open

chore: pin GitHub Actions to commit SHAs#345
YoungJinJung wants to merge 1 commit into
mainfrom
chore/344-pin-github-actions

Conversation

@YoungJinJung

@YoungJinJung YoungJinJung commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Issue #344's scanner triage identified eight mutable GitHub Action references across the CI, build, release, and issue-bot workflows. Pin them to the current commits behind their existing major-version tags, verified in the official upstream repositories, and retain version comments. Document pin maintenance in the README and development guide.

Workflow triggers, permissions, inputs, scripts, and runtime dependency selection remain unchanged.

Related Issues

Refs #344. This addresses the confirmed GITHUB_ACTION_UNPINNED findings only; the issue remains open for scanner CI and the existing upstream listing submission's remaining follow-up.

Validation

  • make test passed.
  • make build passed for both unic and unic-mcp.
  • All four workflow YAML files parsed successfully.
  • Verified all eight references against the four official upstream tag/commit mappings; restoring their prior refs produces workflow files byte-identical to origin/main.
  • git diff --check passed; complete diff review found no actionable concerns.
  • The full catalog scanner was not rerun for this bounded pinning change.

Checklist

  • Scope is focused
  • Branch name follows docs/branch-naming-harness.md
  • Documentation harness reviewed (docs/documentation-harness.md)
  • README updated if user-facing behavior changed
  • Relevant docs/ pages updated if architecture, auth, config, or workflow changed
  • Tests/validation included
  • Breaking changes documented (none)

Summary by CodeRabbit

  • Security

    • Automated workflows now use fixed, verified action versions instead of mutable version tags, improving build and release consistency.
  • Documentation

    • Added guidance explaining the workflow version-pinning standard.
    • Expanded development documentation with instructions for safely updating workflow actions and validating changes before submitting updates.

- Pin all eight action references to verified upstream commits.
- Document how to maintain action pins and their version comments.

Refs #344
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 3357e574-0fa8-4ea4-92aa-de014cc280e5

📥 Commits

Reviewing files that changed from the base of the PR and between 40edb78 and f85d040.

📒 Files selected for processing (6)
  • .github/workflows/bot.yml
  • .github/workflows/build.yml
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • README.md
  • docs/development.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout. (1)
  • GitHub Check: test
🧰 Additional context used
📓 Path-based instructions (5)
Verify that README changes match actual CLI/TUI behavior and that Currently Implemented Features, TUI Key Bindings, Usage, and Configuration content stay aligned with code changes.

⚙️ CodeRabbit configuration file

Files:

  • README.md
Documentation must match implemented behavior.

⚙️ CodeRabbit configuration file

Files:

  • docs/development.md
**피쳐를 추가, 수정, 삭제할 때 반드시 `README.md`를 함께 업데이트한다.**

📄 CodeRabbit inference engine (CLAUDE.md)

Files:

  • README.md
Update `docs/development.md` when the change affects

📄 CodeRabbit inference engine (docs/documentation-harness.md)

Files:

  • docs/development.md
update `README.md`

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • README.md
🪛 LanguageTool
docs/development.md

[uncategorized] ~19-~19: The official name of this software platform is spelled with a capital “H”.
Context: ...Actions Pin external GitHub Actions in .github/workflows/ to full commit SHAs and kee...

(GITHUB)

🪛 zizmor (1.29.0)
.github/workflows/build.yml

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

(artipacked)


[warning] 1-18: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)


[warning] 9-18: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)

.github/workflows/ci.yml

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

(artipacked)


[warning] 1-17: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)


[warning] 9-17: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)

.github/workflows/bot.yml

[warning] 1-51: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block

(excessive-permissions)

.github/workflows/release.yml

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

(artipacked)


[error] 21-21: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): enables caching by default

(cache-poisoning)

🔇 Additional comments (6)
.github/workflows/bot.yml (1)

15-15: LGTM!

.github/workflows/build.yml (1)

13-14: LGTM!

.github/workflows/ci.yml (1)

12-13: LGTM!

.github/workflows/release.yml (1)

16-16: LGTM!

Also applies to: 21-21, 26-26

README.md (1)

658-659: LGTM!

docs/development.md (1)

17-20: LGTM!


Walkthrough

GitHub Actions in four workflows now use immutable commit SHA pins with version comments. The README and development guide document the pinning and maintenance process.

Changes

GitHub Actions pinning

Layer / File(s) Summary
Pin workflow actions
.github/workflows/bot.yml, .github/workflows/build.yml, .github/workflows/ci.yml, .github/workflows/release.yml
Workflow action references now use full commit SHAs with comments that identify the corresponding major versions.
Document pin maintenance
README.md, docs/development.md
Documentation describes SHA verification, synchronized updates, version comments, and required make test and make build checks.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to f85d0

Workflow actions now use immutable commit pins without changing workflow behavior, and the accompanying maintenance guidance documents how to keep pins synchronized. No merge-blocking current-head risk is evident.

Suggested reviewers: nathanhuh

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title uses the required conventional chore: prefix and clearly describes pinning GitHub Actions to commit SHAs.
Description check ✅ Passed The description includes all required sections, explains the change and issue reference, documents validation results, and completes the checklist.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/344-pin-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.

@amazon-q-developer amazon-q-developer Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This PR successfully implements security hardening by pinning all GitHub Actions to immutable commit SHAs, addressing the GITHUB_ACTION_UNPINNED findings from issue #344.

The implementation correctly pins eight action references across four workflow files while retaining version comments for maintainability. The documentation updates in README.md and docs/development.md provide clear maintenance guidance for future action updates.

All workflow files remain syntactically valid, and the PR description confirms validation through make test and make build. The approach follows GitHub Actions security best practices for supply chain protection.

Ready to merge.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

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.

2 participants