Skip to content

Admit native-release.yml's GitHub Release job from the tag ref (server#972) - #284

Closed
rmcdaniel wants to merge 1 commit into
mainfrom
server/972-native-release-job
Closed

rmcdaniel wants to merge 1 commit into
mainfrom
server/972-native-release-job

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Review tier A: CI trust. It adds a contents: write job to the reviewed tag-dispatch binding.

server#972 adds a release job to native-release.yml. It creates the GitHub Release for the tag (title is the version; Latest only when the live registry latest alias names this release's index), under the rolling-alias lock. Like the four publishing jobs, it has:

  • environment: dockerhub-native
  • needs: [plan, publish, aliases]
  • the exact github.ref == format('refs/tags/{0}', inputs.tag) predicate
  • contents: write, packages: read

The central preflight refuses it today ("privileged workflow_dispatch job 'release' can run outside refs/heads/main"), because the binding lists only aliases, build-amd64, build-arm64 and publish.

Change

  • qualification/policy.json: the server/native-release.yml binding's jobs adds release.
  • tests/test_qualification_policy.py: the tag-dispatch fixture adds a release job with contents: write, and the admitted-jobs assertion includes it. The existing loosened-gate, wrong-environment, missing-plan, unlisted-job and other-workflow refusals now also cover it.

Checked

  • 43 tests pass.
  • validate --target server passes on server#972's head and fails on current server main: "missing policy-bound tag dispatch jobs ['release']".

Sequencing

The binding requires every listed job to be present. Once this merges, server main and every other server PR fail the preflight until server#972 merges, so the two must land together, the way #283 landed with server#957. Keep this draft until server#972 is cleared.

🤖 Generated with Claude Code

server#972 adds a `release` job to native-release.yml, which creates the
GitHub Release with `contents: write`. It runs in dockerhub-native, needs
plan, and carries the exact tag-ref predicate, like the four publishing
jobs. The binding now names it, and the tag-dispatch fixture includes it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Nov 2, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Withdrawn: Security and General decided not to widen the tag-dispatch binding. server#972 will move GitHub Release creation to a protected main-only phase instead.

@rmcdaniel rmcdaniel closed this Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant