From a7dbf1fc8985bb3a2743c3e862fd93952ee19d4b Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Wed, 22 Jul 2026 19:35:29 -0500 Subject: [PATCH] ci: pin GitHub Actions to commit SHAs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hardening per standard §5.3: pin all mutable-tag third-party actions in the build workflows (ci.yml, release.yml) to commit SHAs, with the version in a trailing comment for Renovate. Also unifies the stray setup-gradle@v4 in release.yml up to v6.2.0 (§5.2), matching the v6 used elsewhere in the repo. Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com> --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/release.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ffb65fa..ca93f56 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,19 +28,19 @@ jobs: runs-on: macos-latest steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup JDK 21 - uses: actions/setup-java@v5 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: temurin java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v6 + uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0 - name: Cache Konan (Kotlin/Native toolchain) - uses: actions/cache@v6 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/.konan key: konan-${{ runner.os }}-${{ hashFiles('gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties') }} @@ -57,7 +57,7 @@ jobs: run: ./gradlew koverXmlReport - name: Upload coverage to Codecov - uses: codecov/codecov-action@v7 + uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 with: files: build/reports/kover/report.xml fail_ci_if_error: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9f5e45c..9a6b3a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: runs-on: macos-latest steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Read version id: version @@ -37,13 +37,13 @@ jobs: echo "✓ version $VF" - name: Setup JDK 21 - uses: actions/setup-java@v5 + uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0 with: distribution: temurin java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@3f131e8634966bd73d06cc69884922b02e6faf92 # v6.2.0 - name: Build, test & API check (all targets) run: ./gradlew build --stacktrace @@ -82,7 +82,7 @@ jobs: ls -lh maven-attestation/ - name: Attest artifacts - uses: actions/attest-build-provenance@v4 + uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1 with: subject-path: maven-attestation/* @@ -110,7 +110,7 @@ jobs: run: ./gradlew publishAllPublicationsToMavenCentralRepository --stacktrace - name: Create GitHub Release - uses: softprops/action-gh-release@v3 + uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2 with: tag_name: v${{ steps.version.outputs.version }} name: v${{ steps.version.outputs.version }}