From 3506b170dc8dee41bba227e140c31abb726ccd18 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 11 Apr 2026 07:43:21 +0000 Subject: [PATCH 1/3] ci: bump GitHub Actions and add zizmor workflow scan - Upgrade checkout and setup-java to current major versions (Node 24 runtime) - Switch JDK distribution from adopt to temurin for setup-java v5 - Set explicit minimal permissions on the Maven workflow job - Add zizmor static analysis for workflow configuration issues (annotations, no Advanced Security upload) Co-authored-by: Mike Houston --- .github/workflows/maven.yml | 11 +++++++---- .github/workflows/zizmor.yml | 31 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/zizmor.yml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 82760e5..80a989a 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -9,18 +9,21 @@ on: pull_request: branches: [ master, develop ] +permissions: {} + jobs: build: - runs-on: ubuntu-latest + permissions: + contents: read steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v5 with: java-version: '11' - distribution: 'adopt' + distribution: 'temurin' cache: maven - name: Build with Maven run: mvn -B package --file pom.xml diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 0000000..24dde48 --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,31 @@ +# Static analysis for GitHub Actions workflow security and configuration issues. +# See https://docs.zizmor.sh/ + +name: zizmor + +on: + push: + branches: [ develop ] + pull_request: + branches: [ master, develop ] + +permissions: {} + +jobs: + zizmor: + name: Run zizmor + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + persist-credentials: false + + - name: Run zizmor + uses: zizmorcore/zizmor-action@v0.5.2 + with: + # Console + annotations work without GitHub Advanced Security; enable SARIF upload instead if the repo has code scanning. + advanced-security: false + annotations: true From 809ca9b932ec96ba281c31fcf29b1bde9d5f0807 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 11 Apr 2026 07:46:03 +0000 Subject: [PATCH 2/3] ci: pin setup-java v5.2.0 and grant actions:write for Maven cache - Pinned action avoids ambiguous v5 resolution; v5 uses cache client compatible with GitHub cache API (fixes 400 from v2). - actions: write is required to save/restore caches when workflow permissions are restricted. Co-authored-by: Mike Houston --- .github/workflows/maven.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 80a989a..58b8938 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -16,11 +16,13 @@ jobs: runs-on: ubuntu-latest permissions: contents: read + # Required for setup-java Maven cache (restore/save); omitted token defaults no longer include this. + actions: write steps: - uses: actions/checkout@v6 - name: Set up JDK 11 - uses: actions/setup-java@v5 + uses: actions/setup-java@v5.2.0 with: java-version: '11' distribution: 'temurin' From c9ef5b065003fa2f326e7d26d088ff70339727b9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sat, 11 Apr 2026 11:00:22 +0000 Subject: [PATCH 3/3] ci: pin actions to release SHAs and disable checkout credential persistence - actions/checkout and setup-java/zizmor-action use immutable commit pins - Maven job checkout sets persist-credentials: false (zizmor already had it) Co-authored-by: Mike Houston --- .github/workflows/maven.yml | 6 ++++-- .github/workflows/zizmor.yml | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 58b8938..486c050 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -20,9 +20,11 @@ jobs: actions: write steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + persist-credentials: false - name: Set up JDK 11 - uses: actions/setup-java@v5.2.0 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: '11' distribution: 'temurin' diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml index 24dde48..b6bcc96 100644 --- a/.github/workflows/zizmor.yml +++ b/.github/workflows/zizmor.yml @@ -19,12 +19,12 @@ jobs: contents: read steps: - name: Checkout repository - uses: actions/checkout@v6 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: persist-credentials: false - name: Run zizmor - uses: zizmorcore/zizmor-action@v0.5.2 + uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2 with: # Console + annotations work without GitHub Advanced Security; enable SARIF upload instead if the repo has code scanning. advanced-security: false