Skip to content

Commit cd83271

Browse files
authored
Pin commit hash of github actions to avoid supply chain attacks (#1576)
## Changes To avoid supply chain attacks, specify actions in GitHub Actions workflows using commit hashes instead of version numbers. Pinact-action will fail the CI job if this is not done. Renovate already supports updates in the commit hash state, so there is no issue. ## References - https://github.com/suzuki-shunsuke/pinact-action - does pinact-action verify the checksum of the version of aqua it is using? Yes!: - https://github.com/suzuki-shunsuke/pinact ## Other repositories - line/line-bot-sdk-python line/line-bot-sdk-python#772 - line/line-bot-sdk-php line/line-bot-sdk-php#680 - line/line-bot-sdk-nodejs line/line-bot-sdk-nodejs#1201 - line/line-bot-sdk-java #1576 - line/line-bot-sdk-go line/line-bot-sdk-go#555 - line/line-bot-sdk-ruby line/line-bot-sdk-ruby#405 - line/line-openapi line/line-openapi#90
1 parent be4cb75 commit cd83271

8 files changed

+30
-18
lines changed

.github/workflows/check-eol-newrelease.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ jobs:
1111
runs-on: ubuntu-latest
1212
steps:
1313
- name: Check out code
14-
uses: actions/checkout@v4
14+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1515

1616
- name: Run EoL & NewRelease check
17-
uses: actions/github-script@v7
17+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
1818
with:
1919
script: |
2020
const checkEolAndNewReleases = require('.github/scripts/check-eol-newrelease.cjs');

.github/workflows/close-issue.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
issues: write
1313
pull-requests: write
1414
steps:
15-
- uses: actions/stale@v9
15+
- uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9.1.0
1616
with:
1717
days-before-issue-stale: 14
1818
days-before-issue-close: 0

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ jobs:
4343
needs: validate-input
4444

4545
steps:
46-
- uses: actions/checkout@v4
46+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
4747
- name: Fetch Latest Release
4848
id: get-latest-release
49-
uses: actions/github-script@v7
49+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
5050
with:
5151
script: |
5252
const latestRelease = await github.rest.repos.getLatestRelease({
@@ -62,7 +62,7 @@ jobs:
6262
6363
- name: Calculate New Version
6464
id: calculate-version
65-
uses: actions/github-script@v7
65+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
6666
with:
6767
script: |
6868
const latestTag = '${{ steps.get-latest-release.outputs.latest_tag }}';
@@ -83,7 +83,7 @@ jobs:
8383
8484
- name: Generate Release Notes
8585
id: generate-release-notes
86-
uses: actions/github-script@v7
86+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
8787
with:
8888
script: |
8989
const { data: releaseNotes } = await github.rest.repos.generateReleaseNotes({

.github/workflows/generate-code.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,18 @@ jobs:
1313

1414
steps:
1515
- name: Setup
16-
uses: actions/checkout@v4
16+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1717
with:
1818
submodules: recursive
1919
- name: Update submodules
2020
run: git submodule update --remote --recursive
2121
- name: Set up Java
22-
uses: actions/setup-java@v4
22+
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
2323
with:
2424
distribution: 'temurin'
2525
java-version: 17
2626
architecture: x64
27-
- uses: actions/setup-node@v4
27+
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
2828
- name: Generate code
2929
run: |
3030
python generate-code.py

.github/workflows/gradle.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ jobs:
2727
- '21'
2828
steps:
2929
- name: actions/setup-java@v3 (JDK ${{ matrix.java }})
30-
uses: actions/setup-java@v4
30+
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
3131
with:
3232
distribution: 'temurin'
3333
java-version: ${{ matrix.java }}
3434
architecture: x64
35-
- uses: actions/checkout@v4
35+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3636
with:
3737
submodules: true
3838
- run: |
@@ -42,3 +42,14 @@ jobs:
4242
- run: cd generator && mvn package && cd ..
4343
- run: python3 generate-code.py
4444
- run: ./gradlew build
45+
46+
pinact:
47+
runs-on: ubuntu-latest
48+
permissions:
49+
contents: read
50+
steps:
51+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
52+
- name: Run pinact
53+
uses: suzuki-shunsuke/pinact-action@a6896d13d22e2bf108a78b0c52d3f867c1f41b34 # v0.2.1
54+
with:
55+
skip_push: "true"

.github/workflows/pom-validation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ jobs:
1111
java: [ '17' ] # We want to test on LTSs.
1212
steps:
1313
- name: actions/setup-java@v3 (JDK ${{ matrix.java }})
14-
uses: actions/setup-java@v4
14+
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
1515
with:
1616
distribution: 'temurin'
1717
java-version: ${{ matrix.java }}
1818
architecture: x64
19-
- uses: actions/checkout@v4
19+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
2020
with:
2121
submodules: true
2222
- run: |

.github/workflows/publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ jobs:
1313
publish:
1414
runs-on: ubuntu-latest
1515
steps:
16-
- uses: actions/checkout@v4
16+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
1717
with:
1818
submodules: true
1919

2020
- name: Set up Java
21-
uses: actions/setup-java@v4
21+
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4.7.0
2222
with:
2323
java-version: '17'
2424
distribution: 'temurin'
@@ -58,7 +58,7 @@ jobs:
5858

5959
- name: Create GitHub Issue on Failure
6060
if: failure()
61-
uses: actions/github-script@v7
61+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
6262
with:
6363
script: |
6464
const { owner, repo } = context.repo;

renovate.json5

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
33
"extends": [
4-
"config:recommended"
4+
"config:recommended",
5+
"helpers:pinGitHubActionDigestsToSemver"
56
],
67
"timezone": "Asia/Tokyo",
78
"automerge": true,

0 commit comments

Comments
 (0)