Skip to content

Commit 6a61a3d

Browse files
karlkeppner1claude
andcommitted
ci: pin third-party GitHub Actions to commit SHAs
Pins 11 action reference(s) from mutable tags to the commit SHA they currently resolve to, keeping the tag as a trailing comment: uses: actions/checkout@v4 uses: actions/checkout@11d5960 # v4 A git tag is mutable -- whoever controls the action repo can repoint v4 at any commit, and every workflow picks it up on the next run with no change on our side. Actions run with GITHUB_TOKEN and access to repo secrets, so this is the same supply-chain exposure as an unpinned npm dependency, which is what prompted this sweep. GitHub's own hardening guide recommends SHA pinning for third-party actions. Every SHA was verified to be the commit the declared tag currently points at before committing. First-party realiotech/* reusable workflows are deliberately left on their branch: they are inside the trust boundary, and pinning them would require a PR in every consuming repo for each shared-workflow change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 591dc13 commit 6a61a3d

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

.github/workflows/golangci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ jobs:
1515
name: lint
1616
runs-on: ubuntu-latest
1717
steps:
18-
- uses: actions/setup-go@v5
18+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
1919
with:
2020
go-version: '1.22.2'
21-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
2222
- name: golangci-lint
23-
uses: golangci/golangci-lint-action@v3.7.0
23+
uses: golangci/golangci-lint-action@3a919529898de77ec3da873e3063ca4b10e7f5cc # v3.7.0
2424
with:
2525
version: v1.60.2
2626
args: --timeout 10m

.github/workflows/test.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ jobs:
1212
split-test-files:
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
1616
- name: Create a file with all the pkgs
1717
run: go list ./... | grep -v e2e > pkgs.txt
1818
- name: Split pkgs into 2 files
1919
run: split -d -n l/2 pkgs.txt pkgs.txt.part.
2020
# cache multiple
21-
- uses: actions/upload-artifact@v4
21+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
2222
with:
2323
name: '${{ github.sha }}-00'
2424
path: ./pkgs.txt.part.00
25-
- uses: actions/upload-artifact@v4
25+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
2626
with:
2727
name: '${{ github.sha }}-01'
2828
path: ./pkgs.txt.part.01
@@ -35,25 +35,25 @@ jobs:
3535
matrix:
3636
part: ['00', '01']
3737
steps:
38-
- uses: actions/checkout@v4
39-
- uses: actions/setup-go@v5
38+
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
39+
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
4040
with:
4141
go-version: '1.22.2'
42-
- uses: technote-space/get-diff-action@v6.1.2
42+
- uses: technote-space/get-diff-action@f27caffdd0fb9b13f4fc191c016bb4e0632844af # v6.1.2
4343
with:
4444
PATTERNS: |
4545
**/**.go
4646
go.mod
4747
go.sum
48-
- uses: actions/download-artifact@v4
48+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
4949
with:
5050
name: '${{ github.sha }}-${{ matrix.part }}'
5151
if: env.GIT_DIFF
5252
- name: test & coverage report creation
5353
run: |
5454
cat pkgs.txt.part.${{ matrix.part }} | xargs go test -mod=readonly -timeout 30m -coverprofile=${{ matrix.part }}profile.out -covermode=atomic -tags='ledger test_ledger_mock test'
5555
if: env.GIT_DIFF
56-
- uses: actions/upload-artifact@v4
56+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
5757
with:
5858
name: '${{ github.sha }}-${{ matrix.part }}-coverage'
5959
path: ./${{ matrix.part }}profile.out

0 commit comments

Comments
 (0)