diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8eb5439..7d5cf5a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ jobs: steps: # harden-runner: audit only, since egress filtering is limited on Windows runners. - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit @@ -36,7 +36,7 @@ jobs: # Use the .NET SDK / just pinned in mise.toml, matching the local toolchain. - name: Setup toolchain (mise) - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4 + uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4 # Debug build: Directory.Build.props sets TreatWarningsAsErrors=true for Debug, so analyzer/style # warnings act as the CI quality gate. @@ -68,7 +68,7 @@ jobs: contents: read steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit @@ -76,7 +76,7 @@ jobs: uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Setup toolchain (mise) - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4 + uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4 # Same self-contained publish as release.yml's build job (dist/KeepPressing). - name: Publish portable (x64, self-contained) @@ -101,7 +101,7 @@ jobs: steps: # On Ubuntu, harden egress with block, allowing only the GitHub API used by checkout / dependency-review. - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: block allowed-endpoints: > @@ -129,7 +129,7 @@ jobs: pull-requests: read steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit - uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1 @@ -150,7 +150,7 @@ jobs: pull-requests: read steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit - name: Require an explicit approval label on a Release PR diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 18c90ff..1d4f7af 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -38,7 +38,7 @@ jobs: # harden-runner: audit only. Windows filtering is limited and CodeQL's endpoints vary by version # (bundle downloads, etc.), so block is brittle here. - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit @@ -48,10 +48,10 @@ jobs: # C# is analyzed via a real build, so set up the same mise toolchain (.NET 10 / just) as CI. - name: Setup toolchain (mise) if: matrix.language == 'csharp' - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4 + uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4 - name: Initialize CodeQL - uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 + uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} @@ -63,6 +63,6 @@ jobs: run: just build - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2 + uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1 with: category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/labels-sync.yml b/.github/workflows/labels-sync.yml index c2d35cd..fb2138f 100644 --- a/.github/workflows/labels-sync.yml +++ b/.github/workflows/labels-sync.yml @@ -26,7 +26,7 @@ jobs: issues: write # create/update labels steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/no-automerge-on-release-pr.yml b/.github/workflows/no-automerge-on-release-pr.yml index 04afe96..a4d87a8 100644 --- a/.github/workflows/no-automerge-on-release-pr.yml +++ b/.github/workflows/no-automerge-on-release-pr.yml @@ -26,7 +26,7 @@ jobs: pull-requests: write steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit - name: Disable auto-merge on the Release PR diff --git a/.github/workflows/release-label-guard.yml b/.github/workflows/release-label-guard.yml index 0495041..3a11006 100644 --- a/.github/workflows/release-label-guard.yml +++ b/.github/workflows/release-label-guard.yml @@ -35,7 +35,7 @@ jobs: pull-requests: write steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit - name: Reinstate release-please's tracking label diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index a7822dc..71c54c9 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -56,7 +56,7 @@ jobs: HAS_APP: ${{ secrets.RELEASE_PLEASE_CLIENT_ID != '' && secrets.RELEASE_PLEASE_PRIVATE_KEY != '' }} steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8ad66e1..1ac07d1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -101,7 +101,7 @@ jobs: fi - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit @@ -111,7 +111,7 @@ jobs: ref: ${{ env.REF }} - name: Setup toolchain (mise) - uses: jdx/mise-action@e6a8b3978addb5a52f2b4cd9d91eafa7f0ab959d # v4 + uses: jdx/mise-action@dad1bfd3df957f44999b559dd69dc1671cb4e9ea # v4 # github.ref_name doesn't exist for the tag (not created until publish); derive # the bare version from the dispatched tag_name. @@ -174,7 +174,7 @@ jobs: # before the artifact download below, so checkout's clean does not wipe the # downloaded bundle. - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit @@ -286,7 +286,7 @@ jobs: attestations: write # write build-provenance + SBOM attestations steps: - name: Harden runner - uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4 + uses: step-security/harden-runner@bf7454d06d71f1098171f2acdf0cd4708d7b5920 # v2.20.0 with: egress-policy: audit @@ -343,7 +343,7 @@ jobs: out/${{ steps.pack.outputs.zip }}.sha256 - name: Attest SBOM - uses: actions/attest@a1948c3f048ba23858d222213b7c278aabede763 # v4.1.1 + uses: actions/attest@f7c74d28b9d84cb8768d0b8ca14a4bac6ef463e6 # v4.2.0 with: subject-path: out/${{ steps.pack.outputs.zip }} sbom-path: out/bom.json @@ -355,7 +355,7 @@ jobs: # tag. `draft` is intentionally omitted so the action publishes after upload; the # notes are release-please's, so we don't regenerate them. - name: Publish the draft release with the signed assets - uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3 + uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3 with: tag_name: ${{ env.TAG }} files: |