Skip to content

Commit a2dcb31

Browse files
committed
fix(ci): pin third-party actions to full commit SHAs
The account's Actions policy requires a full-length SHA ref. A tag or branch ref is refused at startup — `startup_failure`, no jobs, "this workflow graph cannot be shown" — so these workflows could not run at all. This resolves each ref to the commit it currently points at and records the ref in a trailing comment, e.g. `actions/checkout@<sha> # v4`. `dtolnay/rust-toolchain` takes its toolchain from the ref itself, so those steps also gained an explicit `with: toolchain:` input; without it, a SHA ref would silently lose the channel. No behaviour is intended to change beyond the pins.
1 parent 7d68575 commit a2dcb31

10 files changed

Lines changed: 36 additions & 36 deletions

‎.github/workflows/boj-build.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
runs-on: ubuntu-latest
1919
steps:
2020
- name: Checkout
21-
uses: actions/checkout@v7.0.1
21+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2222
- name: Trigger BoJ Server (Casket/ssg-mcp)
2323
env:
2424
BOJ_URL: ${{ secrets.BOJ_SERVER_URL || vars.BOJ_SERVER_URL }}

‎.github/workflows/casket-pages.yml‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,22 @@ jobs:
2323
runs-on: ubuntu-latest
2424
steps:
2525
- name: Checkout
26-
uses: actions/checkout@v7.0.1
26+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2727

2828
- name: Checkout casket-ssg
29-
uses: actions/checkout@v7.0.1
29+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3030
with:
3131
repository: hyperpolymath/casket-ssg
3232
path: .casket-ssg
3333

3434
- name: Setup GHCup
35-
uses: haskell-actions/setup@v2.12.0
35+
uses: haskell-actions/setup@6037f33647c3f17758a2356c80fc4a53d7e0685d # v2.12.0
3636
with:
3737
ghc-version: '9.8.2'
3838
cabal-version: '3.10'
3939

4040
- name: Cache Cabal
41-
uses: actions/cache@v6.1.0
41+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
4242
with:
4343
path: |
4444
~/.cabal/packages
@@ -100,10 +100,10 @@ jobs:
100100
touch ../_site/.nojekyll
101101
102102
- name: Setup Pages
103-
uses: actions/configure-pages@v6.0.0
103+
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
104104

105105
- name: Upload artifact
106-
uses: actions/upload-pages-artifact@v5.0.0
106+
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
107107
with:
108108
path: '_site'
109109

@@ -116,4 +116,4 @@ jobs:
116116
steps:
117117
- name: Deploy to GitHub Pages
118118
id: deployment
119-
uses: actions/deploy-pages@v5.0.1
119+
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1

‎.github/workflows/codeql.yml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ jobs:
3838
build-mode: none
3939
steps:
4040
- name: Checkout
41-
uses: actions/checkout@v7.0.1
41+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
4242

4343
- name: Initialize CodeQL
44-
uses: github/codeql-action/init@v4.38.0
44+
uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
4545
with:
4646
languages: ${{ matrix.language }}
4747
build-mode: ${{ matrix.build-mode }}
4848

4949
- name: Perform CodeQL Analysis
50-
uses: github/codeql-action/analyze@v4.38.0
50+
uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0
5151
with:
5252
category: "/language:${{ matrix.language }}"

‎.github/workflows/dependabot-automerge.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
steps:
5858
- name: Fetch Dependabot metadata
5959
id: meta
60-
uses: dependabot/fetch-metadata@v3.1.0
60+
uses: dependabot/fetch-metadata@25dd0e34f4fe68f24cc83900b1fe3fe149efef98 # v3.1.0
6161
with:
6262
github-token: ${{ secrets.GITHUB_TOKEN }}
6363

‎.github/workflows/dogfood-gate.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
steps:
3030
- name: Checkout repository
31-
uses: actions/checkout@v7.0.1
31+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3232

3333
- name: Check for A2ML files
3434
id: detect
@@ -68,7 +68,7 @@ jobs:
6868

6969
steps:
7070
- name: Checkout repository
71-
uses: actions/checkout@v7.0.1
71+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
7272

7373
- name: Check for K9 files
7474
id: detect
@@ -113,7 +113,7 @@ jobs:
113113

114114
steps:
115115
- name: Checkout repository
116-
uses: actions/checkout@v7.0.1
116+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
117117

118118
- name: Scan for invisible characters
119119
id: lint
@@ -177,7 +177,7 @@ jobs:
177177

178178
steps:
179179
- name: Checkout repository
180-
uses: actions/checkout@v7.0.1
180+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
181181

182182
- name: Check for Groove manifest
183183
id: groove
@@ -237,7 +237,7 @@ jobs:
237237

238238
steps:
239239
- name: Checkout repository
240-
uses: actions/checkout@v7.0.1
240+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
241241

242242
- name: Generate dogfooding scorecard
243243
run: |

‎.github/workflows/instant-sync.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
runs-on: ubuntu-latest
2020
steps:
2121
- name: Trigger Propagation
22-
uses: peter-evans/repository-dispatch@v4.0.1
22+
uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1
2323
with:
2424
token: ${{ secrets.FARM_DISPATCH_TOKEN }}
2525
repository: hyperpolymath/.git-private-farm

‎.github/workflows/push-email-notify.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
timeout-minutes: 5
4141
steps:
4242
- name: Send push notification email
43-
uses: hyperpolymath/smtp-notify-action@v0.3.0 # NOSONAR — pin authority is actions.lock (sha1-ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7)
43+
uses: hyperpolymath/smtp-notify-action@22e7bdb322c430c1d0dac6b3bb307f4bb139d0be # NOSONAR — pin authority is actions.lock (sha1-ede1191ef6ff3ac02c4f4d9efdf837ee517e11d7)
4444
with:
4545
server_address: ${{ secrets.SMTP_HOST }}
4646
server_port: ${{ secrets.SMTP_PORT }}

‎.github/workflows/release.yml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
permissions:
2525
contents: read
2626
steps:
27-
- uses: actions/checkout@v7.0.1
27+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2828

2929
- name: Detect project type and build
3030
id: build
@@ -87,7 +87,7 @@ jobs:
8787
changelog: ${{ steps.cliff.outputs.content }}
8888
version: ${{ steps.version.outputs.version }}
8989
steps:
90-
- uses: actions/checkout@v7.0.1
90+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
9191
with:
9292
fetch-depth: 0
9393

@@ -117,7 +117,7 @@ jobs:
117117
git cliff --output CHANGELOG.md
118118
119119
- name: Upload updated CHANGELOG.md
120-
uses: actions/upload-artifact@v7.0.1
120+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
121121
with:
122122
name: changelog
123123
path: CHANGELOG.md
@@ -130,7 +130,7 @@ jobs:
130130
permissions:
131131
contents: write
132132
steps:
133-
- uses: actions/checkout@v7.0.1
133+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
134134

135135
# TODO: Download build artifacts if uploading to the release
136136
# - uses: actions/download-artifact@v4
@@ -139,7 +139,7 @@ jobs:
139139
# path: artifacts/
140140

141141
- name: Create GitHub Release
142-
uses: softprops/action-gh-release@v3.0.3
142+
uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3
143143
with:
144144
body: ${{ needs.changelog.outputs.changelog }}
145145
draft: false

‎.github/workflows/rhodibot.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
timeout-minutes: 15
3535
steps:
3636
- name: Checkout
37-
uses: actions/checkout@v7.0.1
37+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3838
with:
3939
fetch-depth: 1
4040
- name: Rhodibot — detect drift (no mutations)

‎.github/workflows/static-analysis-gate.yml‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525

2626
steps:
2727
- name: Checkout repository
28-
uses: actions/checkout@v7.0.1
28+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2929
with:
3030
fetch-depth: 0
3131

@@ -128,7 +128,7 @@ jobs:
128128
echo "Skipped: panic-attack not available in this environment." >> "$GITHUB_STEP_SUMMARY"
129129
130130
- name: Upload panic-attack findings
131-
uses: actions/upload-artifact@v7.0.1
131+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
132132
with:
133133
name: panic-attack-findings
134134
path: panic-attack-findings.json
@@ -149,14 +149,14 @@ jobs:
149149

150150
steps:
151151
- name: Checkout repository
152-
uses: actions/checkout@v7.0.1
152+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
153153
with:
154154
fetch-depth: 0
155155

156156
- name: Setup Elixir for Hypatia scanner
157157
id: beam
158158
continue-on-error: true
159-
uses: erlef/setup-beam@v1.24.1
159+
uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1.24.1
160160
with:
161161
elixir-version: '1.19.4'
162162
otp-version: '28.3'
@@ -262,7 +262,7 @@ jobs:
262262
echo "Skipped: Hypatia scanner not available in this environment." >> "$GITHUB_STEP_SUMMARY"
263263
264264
- name: Upload hypatia findings
265-
uses: actions/upload-artifact@v7.0.1
265+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
266266
with:
267267
name: hypatia-findings
268268
path: hypatia-findings.json
@@ -283,7 +283,7 @@ jobs:
283283

284284
steps:
285285
- name: Checkout repository
286-
uses: actions/checkout@v7.0.1
286+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
287287
with:
288288
fetch-depth: 0
289289

@@ -350,7 +350,7 @@ jobs:
350350
echo "Skipped: panic-attack not available in this environment." >> "$GITHUB_STEP_SUMMARY"
351351
352352
- name: Upload bridge report
353-
uses: actions/upload-artifact@v7.0.1
353+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
354354
with:
355355
name: bridge-report
356356
path: bridge-report.json
@@ -374,19 +374,19 @@ jobs:
374374

375375
steps:
376376
- name: Download panic-attack findings
377-
uses: actions/download-artifact@v8.0.1
377+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
378378
with:
379379
name: panic-attack-findings
380380
path: findings/
381381

382382
- name: Download hypatia findings
383-
uses: actions/download-artifact@v8.0.1
383+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
384384
with:
385385
name: hypatia-findings
386386
path: findings/
387387

388388
- name: Download bridge report
389-
uses: actions/download-artifact@v8.0.1
389+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
390390
with:
391391
name: bridge-report
392392
path: findings/
@@ -448,7 +448,7 @@ jobs:
448448
echo "low=$LOW" >> "$GITHUB_OUTPUT"
449449
450450
- name: Upload unified findings (fleet scanner picks these up)
451-
uses: actions/upload-artifact@v7.0.1
451+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
452452
with:
453453
name: unified-findings
454454
path: findings/unified-findings.json

0 commit comments

Comments
 (0)