Skip to content

Pin GitHub Actions to commit SHAs - #2613

Merged
SteveSandersonMS merged 2 commits into
mainfrom
pinner/actions-sha-pins-2026-09-10
Sep 10, 2026
Merged

Pin GitHub Actions to commit SHAs#2613
SteveSandersonMS merged 2 commits into
mainfrom
pinner/actions-sha-pins-2026-09-10

Conversation

@github-security-bot

@github-security-bot github-security-bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Pins GitHub Actions uses: references in github/copilot-sdk to immutable commit SHAs.

Summary

Metric Count
Files changed 15
Files scanned 14
Refs found 109
Refs pinned 109
Skipped refs 0
Warnings 8
Errors 0

Why

Pinning actions to full commit SHAs prevents future tag or branch retargeting from changing workflow behavior without review.

Reviewer notes

  • Original refs are preserved in inline comments when possible.
  • Pin comments use the Dependabot-compatible original-ref style.
  • Branch refs were allowed and pinned to their current HEAD; review mutable-branch pins carefully.
  • No minimum action age was enforced for this run.

Pinned refs

Location Before After Resolved as
.github/workflows/codegen-check.yml:31 actions/checkout@v4 actions/checkout@11d5960a326750d5838078e36cf38b85af677262 tag
.github/workflows/codegen-check.yml:33 actions/setup-node@v4 actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 tag
.github/workflows/codegen-check.yml:37 actions/setup-go@v5 actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff tag
.github/workflows/codegen-check.yml:43 dtolnay/rust-toolchain@stable dtolnay/rust-toolchain@6bed0761d98439e5a578e2877258200ad565ba87 branch
.github/workflows/codegen-check.yml:54 dtolnay/rust-toolchain@master dtolnay/rust-toolchain@d1031067263f94b142dd6c0ce24c5eb9d02d52a0 branch
.github/workflows/collect-corrections.yml:29 actions/checkout@v4 actions/checkout@11d5960a326750d5838078e36cf38b85af677262 tag
.github/workflows/collect-corrections.yml:30 actions/github-script@v8 actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd tag
.github/workflows/copilot-setup-steps.yml:28 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/copilot-setup-steps.yml:32 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/copilot-setup-steps.yml:43 actions/setup-python@v6 actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 tag
.github/workflows/copilot-setup-steps.yml:49 astral-sh/setup-uv@v7 astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 tag
.github/workflows/copilot-setup-steps.yml:55 actions/setup-go@v6 actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 tag
.github/workflows/copilot-setup-steps.yml:61 actions/setup-dotnet@v5 actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 tag
.github/workflows/copilot-setup-steps.yml:67 actions/setup-java@v4 actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 tag
.github/workflows/copilot-setup-steps.yml:75 extractions/setup-just@v3 extractions/setup-just@f8a3cce218d9f83db3a2ecd90e41ac3de6cdfd9b tag
.github/workflows/corrections-tests.yml:21 actions/checkout@v4 actions/checkout@11d5960a326750d5838078e36cf38b85af677262 tag
.github/workflows/corrections-tests.yml:22 actions/setup-node@v4 actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 tag
.github/workflows/docs-validation.yml:29 actions/checkout@v6 actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 tag
.github/workflows/docs-validation.yml:31 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/docs-validation.yml:54 actions/checkout@v6 actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 tag
.github/workflows/docs-validation.yml:56 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/docs-validation.yml:60 actions/setup-python@v6 actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 tag
.github/workflows/docs-validation.yml:65 astral-sh/setup-uv@v7 astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 tag
.github/workflows/docs-validation.yml:87 actions/checkout@v6 actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 tag
.github/workflows/docs-validation.yml:89 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/docs-validation.yml:93 actions/setup-go@v6 actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 tag
.github/workflows/docs-validation.yml:111 actions/checkout@v6 actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 tag
.github/workflows/docs-validation.yml:113 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/docs-validation.yml:117 actions/setup-dotnet@v5 actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 tag
.github/workflows/docs-validation.yml:138 actions/checkout@v6 actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 tag
.github/workflows/docs-validation.yml:140 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/docs-validation.yml:144 actions/setup-java@v4 actions/setup-java@cf277c60eb25467037889841efdb72551f06f6c3 tag
.github/workflows/dotnet-sdk-tests.yml:21 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/dotnet-sdk-tests.yml:22 actions/setup-dotnet@v5 actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 tag
.github/workflows/dotnet-sdk-tests.yml:25 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/dotnet-sdk-tests.yml:195 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/dotnet-sdk-tests.yml:196 actions/setup-dotnet@v5 actions/setup-dotnet@26b0ec14cb23fa6904739307f278c14f94c95bf1 tag
.github/workflows/dotnet-sdk-tests.yml:199 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/dotnet-sdk-tests.yml:366 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/go-sdk-tests.yml:21 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/go-sdk-tests.yml:22 actions/setup-go@v6 actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 tag
.github/workflows/go-sdk-tests.yml:35 golangci/golangci-lint-action@v9 golangci/golangci-lint-action@ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a tag
.github/workflows/go-sdk-tests.yml:58 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/go-sdk-tests.yml:61 actions/setup-go@v6 actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 tag
.github/workflows/go-sdk-tests.yml:96 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/nodejs-sdk-tests.yml:24 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/nodejs-sdk-tests.yml:25 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/nodejs-sdk-tests.yml:67 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag
.github/workflows/nodejs-sdk-tests.yml:68 actions/setup-node@v6 actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 tag
.github/workflows/nodejs-sdk-tests.yml:112 actions/checkout@v6.0.2 actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd tag

...and 59 more omitted from this PR body.

Dependabot

  • Added a 7-day cooldown (cooldown: default-days: 7) to the existing github-actions Dependabot configuration.
  • The cooldown delays applying a newly published action release for 7 days, reducing exposure to a compromised or broken release while keeping you SHA-pinned.

Warnings

Location Ref Reason
.github/workflows/codegen-check.yml:43 dtolnay/rust-toolchain@stable pinned mutable branch ref 'stable' to 6bed0761d984; review carefully because the source branch can move
.github/workflows/codegen-check.yml:54 dtolnay/rust-toolchain@master pinned mutable branch ref 'master' to d1031067263f; review carefully because the source branch can move
.github/workflows/publish.yml:310 dtolnay/rust-toolchain@stable pinned mutable branch ref 'stable' to 6bed0761d984; review carefully because the source branch can move
.github/workflows/publish.yml:377 pypa/gh-action-pypi-publish@release/v1 pinned mutable branch ref 'release/v1' to dc37677b2e1c; review carefully because the source branch can move
.github/workflows/rust-sdk-tests.yml:36 dtolnay/rust-toolchain@stable pinned mutable branch ref 'stable' to 6bed0761d984; review carefully because the source branch can move
.github/workflows/rust-sdk-tests.yml:296 dtolnay/rust-toolchain@stable pinned mutable branch ref 'stable' to 6bed0761d984; review carefully because the source branch can move
.github/workflows/update-copilot-dependency.yml:48 dtolnay/rust-toolchain@stable pinned mutable branch ref 'stable' to 6bed0761d984; review carefully because the source branch can move
.github/workflows/update-copilot-dependency.yml:54 dtolnay/rust-toolchain@master pinned mutable branch ref 'master' to d1031067263f; review carefully because the source branch can move

Generated by pinner 0.1.0.

Copilot AI balanced review requested due to automatic review settings September 10, 2026 21:25
@github-security-bot
github-security-bot requested a review from a team as a code owner September 10, 2026 21:25

Copilot AI 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.

🟡 Changes recommended

The shared setup composite action still executes mutable actions/setup-node@v6 references.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Pins workflow action dependencies to immutable commit SHAs and adds a seven-day Dependabot cooldown.

Changes:

  • Pins external actions across 14 workflows.
  • Preserves release references in comments.
  • Adds the GitHub Actions update cooldown.
File summaries
File Description
.github/dependabot.yaml Adds cooldown.
.github/workflows/codegen-check.yml Pins codegen actions.
.github/workflows/collect-corrections.yml Pins collection actions.
.github/workflows/copilot-setup-steps.yml Pins setup actions.
.github/workflows/corrections-tests.yml Pins test actions.
.github/workflows/docs-validation.yml Pins documentation actions.
.github/workflows/dotnet-sdk-tests.yml Pins .NET test actions.
.github/workflows/go-sdk-tests.yml Pins Go test actions.
.github/workflows/nodejs-sdk-tests.yml Pins Node.js test actions.
.github/workflows/publish.yml Pins publishing actions.
.github/workflows/python-sdk-tests.yml Pins Python test actions.
.github/workflows/rust-sdk-tests.yml Pins Rust test actions.
.github/workflows/sdk-canary.yml Pins canary actions.
.github/workflows/update-copilot-dependency.yml Pins dependency-update actions.
.github/workflows/verify-compiled.yml Pins workflow verification checkout.
Review details
  • Files reviewed: 15/15 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/copilot-setup-steps.yml
…te action

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@SteveSandersonMS SteveSandersonMS 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.

Verified: pins all uses: refs to immutable commit SHAs across CI workflows, with correct SHA resolution spot-checked against the GitHub API, and preserves version comments for Dependabot compatibility. Also pinned the one gap the automated reviewer correctly flagged — .github/actions/setup-copilot/action.yml still had a mutable actions/setup-node@v6 ref in two places — using the same SHA already used elsewhere in this PR for v6. Confirmed no unpinned tag-style refs remain anywhere under .github/, and all 36 workflow/action YAML files still parse. CI-only change, no SDK product code affected.

@SteveSandersonMS
SteveSandersonMS added this pull request to the merge queue Sep 10, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 10, 2026
@SteveSandersonMS
SteveSandersonMS added this pull request to the merge queue Sep 10, 2026
Merged via the queue into main with commit bba92dd Sep 10, 2026
186 of 188 checks passed
@SteveSandersonMS
SteveSandersonMS deleted the pinner/actions-sha-pins-2026-09-10 branch September 10, 2026 23:06
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.

3 participants