Skip to content

Commit e2a7e7d

Browse files
chore: pin GitHub Actions to commit SHAs (#137)
## Pin GitHub Actions to commit SHAs GitHub Actions referenced by tag (e.g. `actions/checkout@v4`) use a mutable pointer — the tag owner can move it to a different commit at any time, including a malicious one. This is the attack vector used in the tj-actions/changed-files incident (CVE-2025-30066). Pinning to a full 40-character commit SHA makes the reference immutable. The `# tag` comment preserves human readability so reviewers can tell which version is pinned. Important: a SHA can also originate from a forked repository. A malicious actor can fork an action, push a compromised commit to the fork, and the SHA will resolve — but it won't exist in the upstream canonical repo. Each SHA in this PR was verified against the action's canonical repository (not a fork). ### Changes - `actions/checkout@v6` -> `actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2` - Version: v6.0.2 | Latest: v6.0.2 | Release age: 90d - Commit: actions/checkout@de0fac2 - `dfinity/ci-tools/actions/setup-pnpm@main` -> `dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/.github/workflows/check-pr-title.yaml@main` -> `dfinity/ci-tools/.github/workflows/check-pr-title.yaml@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/.github/workflows/check-commit-messages.yaml@main` -> `dfinity/ci-tools/.github/workflows/check-commit-messages.yaml@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `actions/create-github-app-token@v3` -> `actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3` - Version: v3 | Latest: v3.0.0 | Release age: 27d - Commit: actions/create-github-app-token@f8d387b - `dfinity/ci-tools/actions/setup-python@main` -> `dfinity/ci-tools/actions/setup-python@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/setup-commitizen@main` -> `dfinity/ci-tools/actions/setup-commitizen@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/bump-version@main` -> `dfinity/ci-tools/actions/bump-version@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/create-pr@main` -> `dfinity/ci-tools/actions/create-pr@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/.github/workflows/generate-changelog.yaml@main` -> `dfinity/ci-tools/.github/workflows/generate-changelog.yaml@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/extract-version@main` -> `dfinity/ci-tools/actions/extract-version@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/assemble-docs@main` -> `dfinity/ci-tools/actions/assemble-docs@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/submit-docs@main` -> `dfinity/ci-tools/actions/submit-docs@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/is-beta-tag@main` -> `dfinity/ci-tools/actions/is-beta-tag@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f - `dfinity/ci-tools/actions/generate-release-notes@main` -> `dfinity/ci-tools/actions/generate-release-notes@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main` - Version: main | Latest: ? | Release age: ? - Commit: dfinity/ci-tools@afeee4f ### Files modified - `.github/workflows/audit.yml` - `.github/workflows/codestyle.yml` - `.github/workflows/commitizen.yml` - `.github/workflows/create-release-pr.yml` - `.github/workflows/generate-changelog.yml` - `.github/workflows/publish-docs.yml` - `.github/workflows/release.yml` - `.github/workflows/test.yml`
1 parent f159f1f commit e2a7e7d

File tree

8 files changed

+32
-32
lines changed

8 files changed

+32
-32
lines changed

.github/workflows/audit.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Checkout Code
13-
uses: actions/checkout@v6
13+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1414

1515
- name: Setup PNPM
16-
uses: dfinity/ci-tools/actions/setup-pnpm@main
16+
uses: dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
1717

1818
- name: Audit
1919
run: pnpm audit

.github/workflows/codestyle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Checkout Code
17-
uses: actions/checkout@v6
17+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1818

1919
- name: Setup PNPM
20-
uses: dfinity/ci-tools/actions/setup-pnpm@main
20+
uses: dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
2121

2222
- name: Run sccache-cache
2323
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9

.github/workflows/commitizen.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ jobs:
88
check_pr_title:
99
name: check_pr_title
1010
if: github.event_name == 'pull_request'
11-
uses: dfinity/ci-tools/.github/workflows/check-pr-title.yaml@main
11+
uses: dfinity/ci-tools/.github/workflows/check-pr-title.yaml@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
1212

1313
check_commit_messages:
1414
name: check_commit_messages
1515
if: github.event_name == 'merge_group'
16-
uses: dfinity/ci-tools/.github/workflows/check-commit-messages.yaml@main
16+
uses: dfinity/ci-tools/.github/workflows/check-commit-messages.yaml@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
1717

1818
commitizen:
1919
name: commitizen:required

.github/workflows/create-release-pr.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,25 @@ jobs:
2222
contents: write
2323
steps:
2424
- name: Create GitHub App Token
25-
uses: actions/create-github-app-token@v3
25+
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3
2626
id: generate_token
2727
with:
2828
app-id: ${{ vars.PR_AUTOMATION_BOT_PUBLIC_APP_ID }}
2929
private-key: ${{ secrets.PR_AUTOMATION_BOT_PUBLIC_PRIVATE_KEY }}
3030

3131
- name: Checkout Code
32-
uses: actions/checkout@v6
32+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3333
with:
3434
fetch-depth: 0
3535

3636
- name: Setup Python
37-
uses: dfinity/ci-tools/actions/setup-python@main
37+
uses: dfinity/ci-tools/actions/setup-python@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
3838

3939
- name: Setup Commitizen
40-
uses: dfinity/ci-tools/actions/setup-commitizen@main
40+
uses: dfinity/ci-tools/actions/setup-commitizen@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4141

4242
- name: Setup PNPM
43-
uses: dfinity/ci-tools/actions/setup-pnpm@main
43+
uses: dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4444

4545
- name: Run sccache-cache
4646
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
@@ -50,7 +50,7 @@ jobs:
5050

5151
- name: Bump version
5252
id: bump_version
53-
uses: dfinity/ci-tools/actions/bump-version@main
53+
uses: dfinity/ci-tools/actions/bump-version@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
5454
with:
5555
prerelease: ${{ inputs.beta_release == true && 'beta' || '' }}
5656
major_version_zero: true
@@ -59,7 +59,7 @@ jobs:
5959
run: echo "Bumping to version ${{ steps.bump_version.outputs.version }}"
6060

6161
- name: Create Pull Request
62-
uses: dfinity/ci-tools/actions/create-pr@main
62+
uses: dfinity/ci-tools/actions/create-pr@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
6363
with:
6464
token: ${{ steps.generate_token.outputs.token }}
6565
branch_name: 'release/${{ steps.bump_version.outputs.version }}'

.github/workflows/generate-changelog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
generate_changelog:
10-
uses: dfinity/ci-tools/.github/workflows/generate-changelog.yaml@main
10+
uses: dfinity/ci-tools/.github/workflows/generate-changelog.yaml@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
1111
with:
1212
token_app_id: ${{ vars.PR_AUTOMATION_BOT_PUBLIC_APP_ID }}
1313
environment: release

.github/workflows/publish-docs.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
environment: release
2525
steps:
2626
- name: Create GitHub App Token
27-
uses: actions/create-github-app-token@v3
27+
uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3
2828
id: generate_token
2929
with:
3030
app-id: ${{ vars.PR_AUTOMATION_BOT_PUBLIC_APP_ID }}
@@ -33,23 +33,23 @@ jobs:
3333
repositories: icp-js-sdk-docs
3434

3535
- name: Checkout source at ref
36-
uses: actions/checkout@v6
36+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3737
with:
3838
ref: ${{ inputs.ref }}
3939

4040
- name: Setup Python
41-
uses: dfinity/ci-tools/actions/setup-python@main
41+
uses: dfinity/ci-tools/actions/setup-python@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4242

4343
- name: Setup Commitizen
44-
uses: dfinity/ci-tools/actions/setup-commitizen@main
44+
uses: dfinity/ci-tools/actions/setup-commitizen@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4545

4646
- name: Setup PNPM
47-
uses: dfinity/ci-tools/actions/setup-pnpm@main
47+
uses: dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4848

4949
- name: Run sccache-cache
5050
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
5151

52-
- uses: dfinity/ci-tools/actions/extract-version@main
52+
- uses: dfinity/ci-tools/actions/extract-version@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
5353
id: extract-version
5454

5555
- name: Prepare version
@@ -74,13 +74,13 @@ jobs:
7474
run: pnpm build
7575

7676
- name: Checkout icp-pages branch
77-
uses: actions/checkout@v6
77+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7878
with:
7979
ref: icp-pages
8080
path: icp-pages
8181

8282
- name: Assemble docs for version ${{ steps.ver.outputs.major_minor_version }}
83-
uses: dfinity/ci-tools/actions/assemble-docs@main
83+
uses: dfinity/ci-tools/actions/assemble-docs@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
8484
with:
8585
assets_dir: 'docs/dist/${{ steps.ver.outputs.major_minor_version }}'
8686
version: ${{ steps.ver.outputs.major_minor_version }}
@@ -89,15 +89,15 @@ jobs:
8989
version_in_title: ${{ steps.ver.outputs.major_minor_patch_version }}
9090

9191
- name: Assemble docs for version latest
92-
uses: dfinity/ci-tools/actions/assemble-docs@main
92+
uses: dfinity/ci-tools/actions/assemble-docs@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
9393
with:
9494
assets_dir: 'docs/dist/latest'
9595
version: 'latest'
9696
target_dir: 'icp-pages'
9797
version_label: 'Latest (${{ steps.ver.outputs.major_minor_patch_version }})'
9898

9999
- name: Submit Documentation
100-
uses: dfinity/ci-tools/actions/submit-docs@main
100+
uses: dfinity/ci-tools/actions/submit-docs@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
101101
with:
102102
destination_repo: 'dfinity/icp-js-sdk-docs'
103103
token: ${{ steps.generate_token.outputs.token }}

.github/workflows/release.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,32 +24,32 @@ jobs:
2424
id-token: write
2525
steps:
2626
- name: Checkout Code
27-
uses: actions/checkout@v6
27+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2828
with:
2929
fetch-depth: 0
3030
fetch-tags: true
3131

3232
- name: Setup Python
33-
uses: dfinity/ci-tools/actions/setup-python@main
33+
uses: dfinity/ci-tools/actions/setup-python@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
3434

3535
- name: Setup Commitizen
36-
uses: dfinity/ci-tools/actions/setup-commitizen@main
36+
uses: dfinity/ci-tools/actions/setup-commitizen@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
3737

3838
- name: Setup PNPM
39-
uses: dfinity/ci-tools/actions/setup-pnpm@main
39+
uses: dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4040

4141
- name: Run sccache-cache
4242
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9
4343

4444
- name: Determine if Beta Release
4545
id: is_beta
46-
uses: dfinity/ci-tools/actions/is-beta-tag@main
46+
uses: dfinity/ci-tools/actions/is-beta-tag@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
4747

4848
- name: Build NPM package
4949
run: pnpm build
5050

5151
- name: Generate release notes
52-
uses: dfinity/ci-tools/actions/generate-release-notes@main
52+
uses: dfinity/ci-tools/actions/generate-release-notes@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
5353

5454
- name: Publish to npm
5555
env:

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
runs-on: ubuntu-latest
1515
steps:
1616
- name: Checkout Code
17-
uses: actions/checkout@v6
17+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1818

1919
- name: Setup PNPM
20-
uses: dfinity/ci-tools/actions/setup-pnpm@main
20+
uses: dfinity/ci-tools/actions/setup-pnpm@afeee4fbdc0683a88ec5a74ed7f59a2ce0e833ad # main
2121

2222
- name: Run sccache-cache
2323
uses: mozilla-actions/sccache-action@7d986dd989559c6ecdb630a3fd2557667be217ad # v0.0.9

0 commit comments

Comments
 (0)