You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide one clear GitHub Actions entry point for normal maintainers while composing reusable release stages with explicit contracts.
This is the final orchestration issue. It should not invent new release policy.
Primary UI
Normal release starts from Prepare release via workflow_dispatch for one manually selected release line. The workflow must never auto-select and release all maintained stables.
Inputs:
branch — required;
commit/ref — optional advanced override;
version — optional explicit override;
channel — alpha / beta / rc / final;
ignore open backport — boolean;
create follow-up milestone — boolean/choice;
mode — normal / security.
The workflow resolves these through #71 into a ReleasePlan.
Read-only planning may run without release-manager privileges.
Before any mutation such as creating/updating the generated release PR, resolve the triggering actor's repository permission and require the consumer-configured minimum.
For LibreSign v1:
maintain or admin may start mutating preparation;
maintain or admin may merge the generated release PR and trigger privileged continuation.
On PR merge, validate merged_by (not merely the workflow actor) against the repository permission API.
Do not authorize through labels or author association.
Do not give the entire workflow broad permissions only because one stage needs them.
Privileged stages use a GitHub App installation token with explicitly documented permissions. Read-only planning should not require that privileged token.
No workflow downloads or executes a floating latest PHAR. The orchestration pins an exact release-tool version and verifies the published checksum before execution.
Acceptance criteria
complete normal release starts from GitHub web UI;
branch is the only mandatory repository selection;
optional overrides validated;
generated PR merges continue automatically without another manual dispatch;
Parent: #70
Depends on: #71, #72, #73, #74, #75, #78, #79, #80, #81, #82, #83, #84, #87, #88
Goal
Provide one clear GitHub Actions entry point for normal maintainers while composing reusable release stages with explicit contracts.
This is the final orchestration issue. It should not invent new release policy.
Primary UI
Normal release starts from Prepare release via
workflow_dispatchfor one manually selected release line. The workflow must never auto-select and release all maintained stables.Inputs:
The workflow resolves these through #71 into a
ReleasePlan.User journey
Normal use must not require a local checkout.
Authorization
Read-only planning may run without release-manager privileges.
Before any mutation such as creating/updating the generated release PR, resolve the triggering actor's repository permission and require the consumer-configured minimum.
For LibreSign v1:
maintainoradminmay start mutating preparation;maintainoradminmay merge the generated release PR and trigger privileged continuation.On PR merge, validate
merged_by(not merely the workflow actor) against the repository permission API.Do not authorize through labels or author association.
Merge continuation
Generated PRs carry deterministic identity/provenance.
Continuation after merge verifies:
Labels/branch markers identify context but never grant authorization.
Orchestration
Prefer explicit reusable workflow/action/CLI contracts.
Avoid opaque chains of
workflow_runwhenworkflow_call, explicit outputs, PR merge events or another explicit contract is clearer.The orchestrator coordinates existing stages; it must not duplicate their policy.
CLI parity
The reusable CLI supports equivalent:
The docs describe the manual equivalent.
Step Summary
Every run should clearly show:
Permissions
Use least privilege by stage:
Do not give the entire workflow broad permissions only because one stage needs them.
Privileged stages use a GitHub App installation token with explicitly documented permissions. Read-only planning should not require that privileged token.
No workflow downloads or executes a floating
latestPHAR. The orchestration pins an exact release-tool version and verifies the published checksum before execution.Acceptance criteria
PublicationVerification v1from Verify the published release, artifact and App Store handoff #88;Definition of done
Prepare releaseworkflow is available and documented;