From 39a5034f0d2ee770087aea6c959d12c46996e290 Mon Sep 17 00:00:00 2001 From: clockwork-labs-bot Date: Mon, 31 Aug 2026 11:42:03 -0400 Subject: [PATCH 1/2] Reject direct public release invocations --- .github/workflows/release.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 408e3d0983c..a3399682762 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,9 +58,28 @@ concurrency: cancel-in-progress: true jobs: + validate-release-invoker: + name: Validate release invoker + runs-on: ubuntu-latest + steps: + - name: Reject direct public release invocations + env: + EXPECTED_RELEASE_ACTOR: clockwork-labs-bot + ACTUAL_RELEASE_ACTOR: ${{ github.actor }} + run: | + set -euo pipefail + + if [ "$ACTUAL_RELEASE_ACTOR" != "$EXPECTED_RELEASE_ACTOR" ]; then + echo "::error::Do not invoke the public release workflow directly. Invoke the private release workflow instead." + echo "Expected release actor: $EXPECTED_RELEASE_ACTOR" + echo "Actual release actor: $ACTUAL_RELEASE_ACTOR" + exit 1 + fi + # This job runs before all of our release jobs. If there is a release problem we should # try to fail during this step to prevent partial releases. build-cargo-release: + needs: validate-release-invoker runs-on: spacetimedb-new-runner-2 steps: - name: Checkout @@ -360,6 +379,7 @@ jobs: run: cargo-release release docker ${{ github.event.inputs.release_tag }} ${{ inputs.dry_run && '--dry-run' || '' }} update-mirror-latest-version: + needs: validate-release-invoker runs-on: ubuntu-latest if: ${{ !inputs.dry_run && inputs.update_mirror_latest_version }} From d68b4a09e6b2742ff3f313799c8895f4b274d94e Mon Sep 17 00:00:00 2001 From: clockwork-labs-bot Date: Mon, 31 Aug 2026 14:46:37 -0400 Subject: [PATCH 2/2] Use devops actor for release invocation guard --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a3399682762..2ba9a478f1d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -64,7 +64,7 @@ jobs: steps: - name: Reject direct public release invocations env: - EXPECTED_RELEASE_ACTOR: clockwork-labs-bot + EXPECTED_RELEASE_ACTOR: spacetimedb-devops ACTUAL_RELEASE_ACTOR: ${{ github.actor }} run: | set -euo pipefail