Skip to content

Commit 2c605c9

Browse files
hesreallyhimclaude
andcommitted
chore(security): pin github actions to commit SHAs
Addresses OSSF Scorecard's Pinned-Dependencies check (currently 5/10). All third-party actions were pinned to floating major-version tags (actions/checkout@v5, googleapis/release-please-action@v4, etc), which means a compromised tag upstream would silently run in CI. Scorecard wants every `uses:` ref to pin to a 40-character commit SHA; the `# v<major>` comment preserves the intent and lets Dependabot propose updates. No major version upgrades performed - each SHA is whatever the existing major-tag currently points to on its upstream repo. The new references are: actions/checkout@93cb6ef # v5 actions/setup-node@a0853c2 # v5 amannn/action-semantic-pull-request@e32d7e6 # v5 googleapis/release-please-action@16a9c90 # v4 github/codeql-action@5c8a8a6 # v3.35.1 peter-evans/create-pull-request@22a9089 # v7 Touches seven workflows: ci.yml, conventional-pr-title.yml, production-hygiene.yml, publish-npm.yml, release-please.yml, scorecard.yml, upstream-pass-cli-watch.yml. scorecard.yml already had the first-party actions pinned; this completes it with the codeql upload-sarif step. Verified with the ossf-scorecard plugin's workflow-audit skill: pinned-dependencies domain now reports 0 findings. 🤖 Generated with Claude Code Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 34855a5 commit 2c605c9

File tree

7 files changed

+12
-12
lines changed

7 files changed

+12
-12
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- name: Checkout
20-
uses: actions/checkout@v5
20+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
2121

2222
- name: Setup Node.js 24
23-
uses: actions/setup-node@v5
23+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
2424
with:
2525
node-version: 24
2626
cache: npm

.github/workflows/conventional-pr-title.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
runs-on: ubuntu-latest
2222
steps:
2323
- name: Enforce Conventional Commits PR title
24-
uses: amannn/action-semantic-pull-request@v5
24+
uses: amannn/action-semantic-pull-request@e32d7e603df1aa1ba07e981f2a23455dee596825 # v5
2525
env:
2626
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2727
with:

.github/workflows/production-hygiene.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- name: Checkout
20-
uses: actions/checkout@v5
20+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
2121

2222
- name: Setup Node.js 24
23-
uses: actions/setup-node@v5
23+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
2424
with:
2525
node-version: 24
2626
cache: npm

.github/workflows/publish-npm.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ jobs:
2323
id-token: write
2424
steps:
2525
- name: Checkout release tag
26-
uses: actions/checkout@v5
26+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
2727
with:
2828
ref: ${{ github.event.release.tag_name }}
2929

3030
- name: Setup Node.js 24
31-
uses: actions/setup-node@v5
31+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
3232
with:
3333
node-version: 24
3434
cache: npm

.github/workflows/release-please.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ jobs:
2121
pull-requests: write
2222
steps:
2323
- name: Run Release Please
24-
uses: googleapis/release-please-action@v4
24+
uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4
2525
with:
2626
release-type: node

.github/workflows/scorecard.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,6 @@ jobs:
7373
# Upload the results to GitHub's code scanning dashboard (optional).
7474
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
7575
- name: "Upload to code-scanning"
76-
uses: github/codeql-action/upload-sarif@v3
76+
uses: github/codeql-action/upload-sarif@5c8a8a642e79153f5d047b10ec1cba1d1cc65699 # v3.35.1
7777
with:
7878
sarif_file: results.sarif

.github/workflows/upstream-pass-cli-watch.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ jobs:
2020
pull-requests: write
2121
steps:
2222
- name: Checkout
23-
uses: actions/checkout@v5
23+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
2424

2525
- name: Setup Node.js 24
26-
uses: actions/setup-node@v5
26+
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
2727
with:
2828
node-version: 24
2929

@@ -55,7 +55,7 @@ jobs:
5555

5656
- name: Open PR for metadata update
5757
if: steps.watch.outputs.changed == 'true'
58-
uses: peter-evans/create-pull-request@v7
58+
uses: peter-evans/create-pull-request@22a9089034f40e5a961c8808d113e2c98fb63676 # v7
5959
with:
6060
commit-message: "chore: track pass-cli v${{ steps.watch.outputs.version }}"
6161
title: "chore: track pass-cli v${{ steps.watch.outputs.version }}"

0 commit comments

Comments
 (0)