Skip to content

Commit 88fafd5

Browse files
fix: pin all GitHub Actions to full-length commit SHAs (#27)
Pin all GitHub Actions to their full 40-character commit SHAs for enhanced security and reproducibility. This prevents potential supply chain attacks by ensuring actions cannot be updated to potentially malicious code through tag updates. Updated actions: - actions/checkout@v4 → 34e114876b0b11c390a56381ad16ebd13914f8d5 (v4.3.1) - actions/setup-node@v4 → 49933ea5288caeca8642d1e84afbd3f7d6820020 (v4.4.0) - actions/labeler@v5 → 8558fd74291d67161a8a78ce36a881fa63b766a9 (v5.0.0) - actions/dependency-review-action@v4 → 3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 (v4.8.2) - actions/upload-artifact@v4 → ea165f8d65b6e75b540449e92b4886f43607fa02 (v4.6.2) - dorny/paths-filter@v3 → de90cc6fb38fc0963ad72b210f1f284cd68cea36 (v3.0.2) - raven-actions/actionlint@v2 → 963d4779ef039e217e5d0e6fd73ce9ab7764e493 (v2.1.0) - codelytv/pr-size-labeler@v1 → 4ec67706cd878fbc1c8db0a5dcd28b6bb412e85a (v1.10.3) - googleapis/release-please-action@v4 → 16a9c90856f42705d54a6fda1823352bdc62cf38 (v4.4.0) - softprops/action-gh-release@v2 → a06a81a03ee405af7f2048a818ed3f03bbf83c7b (v2.5.0) - slsa-framework/slsa-github-generator@v2.0.0 → 5a775b367a56d5bd118a224a811bba288150a563 (v2.0.0) - github/codeql-action/*@v4 → 5d4e8d1aca955e8d8589aabd499c5cae939e33c7 (v4.31.9) - ossf/scorecard-action@v2.4.0 → 62b2cac7ed8198b15735ed49ab1e5cf35480ba46 (v2.4.0) Each action now includes a comment with the corresponding version tag for easy reference and maintenance. Co-authored-by: Claude <noreply@anthropic.com>
1 parent 17bb64f commit 88fafd5

9 files changed

Lines changed: 53 additions & 53 deletions

File tree

.github/workflows/actionlint.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ jobs:
2222
outputs:
2323
workflows: ${{ steps.filter.outputs.workflows }}
2424
steps:
25-
- uses: actions/checkout@v4
26-
- uses: dorny/paths-filter@v3
25+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
26+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
2727
id: filter
2828
with:
2929
filters: |
@@ -43,7 +43,7 @@ jobs:
4343

4444
- name: Run actionlint
4545
id: actionlint
46-
uses: raven-actions/actionlint@v2
46+
uses: raven-actions/actionlint@963d4779ef039e217e5d0e6fd73ce9ab7764e493 # v2.1.0
4747
with:
4848
matcher: true
4949
cache: true

.github/workflows/auto-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Checkout code
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
1818
with:
1919
fetch-depth: 0
2020

.github/workflows/dependency-review.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ jobs:
1717
outputs:
1818
dependencies: ${{ steps.filter.outputs.dependencies }}
1919
steps:
20-
- uses: actions/checkout@v4
21-
- uses: dorny/paths-filter@v3
20+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
21+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
2222
id: filter
2323
with:
2424
filters: |
@@ -38,10 +38,10 @@ jobs:
3838
runs-on: ubuntu-latest
3939
steps:
4040
- name: Checkout code
41-
uses: actions/checkout@v4
41+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
4242

4343
- name: Dependency Review
44-
uses: actions/dependency-review-action@v4
44+
uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2
4545
with:
4646
# Fail on critical and high vulnerabilities
4747
fail-on-severity: moderate

.github/workflows/fuzz.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ jobs:
2929
outputs:
3030
src: ${{ steps.filter.outputs.src }}
3131
steps:
32-
- uses: actions/checkout@v4
33-
- uses: dorny/paths-filter@v3
32+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
33+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
3434
id: filter
3535
with:
3636
filters: |
@@ -48,7 +48,7 @@ jobs:
4848
runs-on: ubuntu-latest
4949
steps:
5050
- name: Checkout code
51-
uses: actions/checkout@v4
51+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
5252

5353
- name: Create package-lock.json if missing
5454
run: |
@@ -58,7 +58,7 @@ jobs:
5858
fi
5959
6060
- name: Setup Node.js
61-
uses: actions/setup-node@v4
61+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
6262
with:
6363
node-version: 22
6464
cache: 'npm'
@@ -91,7 +91,7 @@ jobs:
9191
runs-on: ubuntu-latest
9292
steps:
9393
- name: Checkout code
94-
uses: actions/checkout@v4
94+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
9595

9696
- name: Create package-lock.json if missing
9797
run: |
@@ -101,7 +101,7 @@ jobs:
101101
fi
102102
103103
- name: Setup Node.js
104-
uses: actions/setup-node@v4
104+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
105105
with:
106106
node-version: 22
107107
cache: 'npm'
@@ -128,7 +128,7 @@ jobs:
128128
129129
- name: Upload fuzz report
130130
if: always()
131-
uses: actions/upload-artifact@v4
131+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
132132
with:
133133
name: fuzz-report-${{ github.run_number }}
134134
path: fuzz-report.md

.github/workflows/labeler.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ jobs:
1717
runs-on: ubuntu-latest
1818
steps:
1919
- name: Checkout code
20-
uses: actions/checkout@v4
20+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
2121

2222
- name: Label PR based on changed files
23-
uses: actions/labeler@v5
23+
uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
2424
with:
2525
repo-token: ${{ secrets.GITHUB_TOKEN }}
2626
configuration-path: .github/labeler.yml
@@ -31,7 +31,7 @@ jobs:
3131
runs-on: ubuntu-latest
3232
steps:
3333
- name: Label PR by size
34-
uses: codelytv/pr-size-labeler@v1
34+
uses: codelytv/pr-size-labeler@4ec67706cd878fbc1c8db0a5dcd28b6bb412e85a # v1.10.3
3535
with:
3636
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3737
xs_label: 'size/xs'

.github/workflows/release-please.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
steps:
2121
- name: Run Release Please
2222
id: release
23-
uses: googleapis/release-please-action@v4
23+
uses: googleapis/release-please-action@16a9c90856f42705d54a6fda1823352bdc62cf38 # v4.4.0
2424
with:
2525
release-type: node
2626
token: ${{ secrets.GITHUB_TOKEN }}
@@ -45,7 +45,7 @@ jobs:
4545
id-token: write
4646
steps:
4747
- name: Checkout code
48-
uses: actions/checkout@v4
48+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
4949

5050
- name: Create package-lock.json if missing
5151
run: |
@@ -55,7 +55,7 @@ jobs:
5555
fi
5656
5757
- name: Setup Node.js
58-
uses: actions/setup-node@v4
58+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
5959
with:
6060
node-version: 22
6161
registry-url: 'https://registry.npmjs.org'
@@ -82,14 +82,14 @@ jobs:
8282
run: npm pack
8383

8484
- name: Upload tarball to GitHub Release
85-
uses: softprops/action-gh-release@v2
85+
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
8686
with:
8787
tag_name: ${{ needs.release-please.outputs.tag_name }}
8888
files: |
8989
*.tgz
9090
9191
- name: Generate SLSA provenance
92-
uses: slsa-framework/slsa-github-generator@v2.0.0
92+
uses: slsa-framework/slsa-github-generator@5a775b367a56d5bd118a224a811bba288150a563 # v2.0.0
9393
with:
9494
artifact-path: ./dist
9595
provenance-name: provenance.intoto.jsonl

.github/workflows/security-main.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ jobs:
2121
outputs:
2222
security: ${{ steps.filter.outputs.security }}
2323
steps:
24-
- uses: actions/checkout@v4
25-
- uses: dorny/paths-filter@v3
24+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
25+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
2626
id: filter
2727
with:
2828
filters: |
@@ -41,7 +41,7 @@ jobs:
4141
runs-on: ubuntu-latest
4242
steps:
4343
- name: Checkout code
44-
uses: actions/checkout@v4
44+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
4545

4646
- name: Create package-lock.json if missing
4747
run: |
@@ -51,7 +51,7 @@ jobs:
5151
fi
5252
5353
- name: Setup Node.js
54-
uses: actions/setup-node@v4
54+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
5555
with:
5656
node-version: 22
5757
cache: 'npm'
@@ -72,7 +72,7 @@ jobs:
7272
runs-on: ubuntu-latest
7373
steps:
7474
- name: Checkout code
75-
uses: actions/checkout@v4
75+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
7676

7777
- name: Create package-lock.json if missing
7878
run: |
@@ -82,7 +82,7 @@ jobs:
8282
fi
8383
8484
- name: Setup Node.js
85-
uses: actions/setup-node@v4
85+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
8686
with:
8787
node-version: 22
8888
cache: 'npm'
@@ -94,7 +94,7 @@ jobs:
9494
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
9595

9696
- name: Upload SBOM
97-
uses: actions/upload-artifact@v4
97+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
9898
with:
9999
name: sbom-main
100100
path: sbom.json
@@ -112,19 +112,19 @@ jobs:
112112
contents: read
113113
steps:
114114
- name: Checkout code
115-
uses: actions/checkout@v4
115+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
116116

117117
- name: Initialize CodeQL
118-
uses: github/codeql-action/init@v4
118+
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
119119
with:
120120
languages: javascript-typescript
121121
queries: security-and-quality
122122

123123
- name: Autobuild
124-
uses: github/codeql-action/autobuild@v4
124+
uses: github/codeql-action/autobuild@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
125125

126126
- name: Perform CodeQL Analysis
127-
uses: github/codeql-action/analyze@v4
127+
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
128128
with:
129129
category: "/language:javascript-typescript"
130130

@@ -141,19 +141,19 @@ jobs:
141141
contents: read
142142
steps:
143143
- name: Checkout code
144-
uses: actions/checkout@v4
144+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
145145
with:
146146
persist-credentials: false
147147

148148
- name: Run OpenSSF Scorecard
149-
uses: ossf/scorecard-action@v2.4.0
149+
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
150150
with:
151151
results_file: results.sarif
152152
results_format: sarif
153153
publish_results: true
154154

155155
- name: Upload SARIF to GitHub Security
156-
uses: github/codeql-action/upload-sarif@v4
156+
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
157157
with:
158158
sarif_file: results.sarif
159159

@@ -166,7 +166,7 @@ jobs:
166166
runs-on: ubuntu-latest
167167
steps:
168168
- name: Checkout code
169-
uses: actions/checkout@v4
169+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
170170

171171
- name: Create package-lock.json if missing
172172
run: |
@@ -176,7 +176,7 @@ jobs:
176176
fi
177177
178178
- name: Setup Node.js
179-
uses: actions/setup-node@v4
179+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
180180
with:
181181
node-version: 22
182182
cache: 'npm'

.github/workflows/security-pr.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ jobs:
1818
outputs:
1919
security: ${{ steps.filter.outputs.security }}
2020
steps:
21-
- uses: actions/checkout@v4
22-
- uses: dorny/paths-filter@v3
21+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
22+
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
2323
id: filter
2424
with:
2525
filters: |
@@ -36,7 +36,7 @@ jobs:
3636
runs-on: ubuntu-latest
3737
steps:
3838
- name: Checkout code
39-
uses: actions/checkout@v4
39+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
4040

4141
- name: Create package-lock.json if missing
4242
run: |
@@ -46,7 +46,7 @@ jobs:
4646
fi
4747
4848
- name: Setup Node.js
49-
uses: actions/setup-node@v4
49+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
5050
with:
5151
node-version: 22
5252
cache: 'npm'
@@ -65,7 +65,7 @@ jobs:
6565
runs-on: ubuntu-latest
6666
steps:
6767
- name: Checkout code
68-
uses: actions/checkout@v4
68+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
6969

7070
- name: Create package-lock.json if missing
7171
run: |
@@ -75,7 +75,7 @@ jobs:
7575
fi
7676
7777
- name: Setup Node.js
78-
uses: actions/setup-node@v4
78+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
7979
with:
8080
node-version: 22
8181
cache: 'npm'
@@ -87,7 +87,7 @@ jobs:
8787
run: npx @cyclonedx/cyclonedx-npm --output-file sbom.json
8888

8989
- name: Upload SBOM
90-
uses: actions/upload-artifact@v4
90+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
9191
with:
9292
name: sbom-pr
9393
path: sbom.json
@@ -100,7 +100,7 @@ jobs:
100100
runs-on: ubuntu-latest
101101
steps:
102102
- name: Checkout code
103-
uses: actions/checkout@v4
103+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
104104

105105
- name: Create package-lock.json if missing
106106
run: |
@@ -110,7 +110,7 @@ jobs:
110110
fi
111111
112112
- name: Setup Node.js
113-
uses: actions/setup-node@v4
113+
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
114114
with:
115115
node-version: 22
116116
cache: 'npm'

0 commit comments

Comments
 (0)