From 27c247f0764d01f7d5dfc126cc98b18f29974d88 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 19 Sep 2026 22:53:14 +0000 Subject: [PATCH] fix(ci): pin third-party actions to full commit SHAs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The account's Actions policy requires a full-length SHA ref. A tag or branch ref is refused at startup — `startup_failure`, no jobs, "this workflow graph cannot be shown" — so these workflows could not run at all. This resolves each ref to the commit it currently points at and records the ref in a trailing comment, e.g. `actions/checkout@ # v4`. `dtolnay/rust-toolchain` takes its toolchain from the ref itself, so those steps also gained an explicit `with: toolchain:` input; without it, a SHA ref would silently lose the channel. No behaviour is intended to change beyond the pins. --- .github/workflows/ci-benchmarks.yml | 20 ++++++++++---------- .github/workflows/codeql.yml | 6 +++--- .github/workflows/instant-sync.yml | 2 +- .github/workflows/krl-verification.yml | 12 ++++++------ .github/workflows/pages.yml | 8 ++++---- .github/workflows/push-email-notify.yml | 2 +- .github/workflows/read-only-api-gate.yml | 2 +- .github/workflows/verification-image.yml | 2 +- 8 files changed, 27 insertions(+), 27 deletions(-) diff --git a/.github/workflows/ci-benchmarks.yml b/.github/workflows/ci-benchmarks.yml index b71bef4..3c3384b 100644 --- a/.github/workflows/ci-benchmarks.yml +++ b/.github/workflows/ci-benchmarks.yml @@ -51,18 +51,18 @@ jobs: steps: - name: Checkout Quandledb repo - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: fetch-depth: 0 - name: Set up Erlang/OTP - uses: erlef/setup-beam@v1 + uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1 with: otp-version: '26' elixir-version: '1.16' - name: Set up Julia - uses: julia-actions/setup-julia@v3 + uses: julia-actions/setup-julia@fa02766e078afaaf09b14210362cee14137e6a32 # v3 with: version: '1.12' @@ -89,10 +89,10 @@ jobs: steps: - name: Checkout Quandledb repo - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Checkout proven benchmarks repo - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: ${{ env.BENCHMARKS_REPO }} path: proven @@ -109,7 +109,7 @@ jobs: ./run.sh --all - name: Upload benchmark results - uses: actions/upload-artifact@v7 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 if: always() with: name: quandledb-benchmark-results @@ -125,12 +125,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: fetch-depth: 0 - name: GitGuardian scan - uses: GitGuardian/ggshield-action@v1 + uses: GitGuardian/ggshield-action@7059aef1ffb7d2374ce27201144f5613beecefe0 # v1 with: args: scan repo . env: @@ -145,12 +145,12 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: fetch-depth: 0 - name: SonarQube scan - uses: SonarSource/sonarqube-scan-action@v8 + uses: SonarSource/sonarqube-scan-action@ba9859eae8dd6bd29e412f25ddbbef3d032000f4 # v8 with: args: >- -Dsonar.projectKey=quandledb diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0afc612..06870a6 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -39,15 +39,15 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Initialize CodeQL - uses: github/codeql-action/init@v4.38.0 + uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v4.38.0 + uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0 with: category: "/language:${{ matrix.language }}" diff --git a/.github/workflows/instant-sync.yml b/.github/workflows/instant-sync.yml index 34b3b91..48c079b 100644 --- a/.github/workflows/instant-sync.yml +++ b/.github/workflows/instant-sync.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Trigger Propagation - uses: peter-evans/repository-dispatch@v4.0.1 + uses: peter-evans/repository-dispatch@28959ce8df70de7be546dd1250a005dd32156697 # v4.0.1 with: token: ${{ secrets.FARM_DISPATCH_TOKEN }} repository: hyperpolymath/.git-private-farm diff --git a/.github/workflows/krl-verification.yml b/.github/workflows/krl-verification.yml index 8826af6..4a19ed2 100644 --- a/.github/workflows/krl-verification.yml +++ b/.github/workflows/krl-verification.yml @@ -43,7 +43,7 @@ jobs: timeout-minutes: 90 steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 # Julia >= 1.11 is required: server/Project.toml uses a [sources] table # (path-resolved sibling deps), which Pkg 1.10 silently ignores — the @@ -78,21 +78,21 @@ jobs: # from ../../../ to ../../ without updating the symlink here, which broke # every instantiate with "expected package KnotTheory to exist at path". - name: Checkout KnotTheory.jl - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: hyperpolymath/KnotTheory.jl ref: 58a904d28212817053a14f73b415fd30a434857c path: deps/KnotTheory.jl - name: Checkout Skein.jl - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: hyperpolymath/Skein.jl ref: 84bfe4134d8fca9e22114db1ec8410aa6066ba90 path: deps/Skein.jl - name: Checkout AcceleratorGate.jl - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: hyperpolymath/AcceleratorGate.jl ref: b24e9f00d89edd5a4a7940252799737024c32d41 @@ -137,7 +137,7 @@ jobs: timeout-minutes: 30 steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Install Agda + standard library run: | @@ -176,7 +176,7 @@ jobs: timeout-minutes: 15 steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 # The ubuntu-latest image ships a Temurin JDK; TLC needs Java 11+. - name: Fetch TLA+ tools (pinned release, checksum-verified) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 6eba772..4ca0b0f 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -22,9 +22,9 @@ jobs: image: ghcr.io/stefan-hoeck/idris2-pack@sha256:f0758996a931fb35d9ecb1de273c4d59dabe2a09b433afc7e357f65a08b7e1ff steps: - name: Checkout Site - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Checkout Ddraig SSG - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: repository: hyperpolymath/ddraig-ssg path: .ddraig-ssg @@ -41,7 +41,7 @@ jobs: fi ./.ddraig-ssg/build/exec/ddraig build src _site https://hyperpolymath.github.io/${GITHUB_REPOSITORY#*/} - name: Upload artifact - uses: actions/upload-pages-artifact@v5.0.0 + uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0 with: path: '_site' deploy: @@ -54,4 +54,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v5.0.1 + uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1 diff --git a/.github/workflows/push-email-notify.yml b/.github/workflows/push-email-notify.yml index 8a96bf9..43e0e77 100644 --- a/.github/workflows/push-email-notify.yml +++ b/.github/workflows/push-email-notify.yml @@ -41,7 +41,7 @@ jobs: timeout-minutes: 5 steps: - name: Send push notification email - uses: hyperpolymath/smtp-notify-action@v0.3.0 + uses: hyperpolymath/smtp-notify-action@22e7bdb322c430c1d0dac6b3bb307f4bb139d0be # v0.3.0 with: server_address: ${{ secrets.SMTP_HOST }} server_port: ${{ secrets.SMTP_PORT }} diff --git a/.github/workflows/read-only-api-gate.yml b/.github/workflows/read-only-api-gate.yml index 78c9b95..7faf3da 100644 --- a/.github/workflows/read-only-api-gate.yml +++ b/.github/workflows/read-only-api-gate.yml @@ -47,7 +47,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Scan server/serve.jl for mutating Skein.jl calls run: | diff --git a/.github/workflows/verification-image.yml b/.github/workflows/verification-image.yml index 2136583..cee5af7 100644 --- a/.github/workflows/verification-image.yml +++ b/.github/workflows/verification-image.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 25 steps: - - uses: actions/checkout@v7 + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: persist-credentials: false - name: Build image and run embedded tests