3.3 KiB
3.3 KiB
ReleaseKit v0.6.0
Summary
ReleaseKit adds neutral delivery coordination behind an explicit Gitea backend selection and introduces authenticated, read-only credential preflight.
Changes
releasekit.DeliveryRequest.Destinationnow uses the facade-ownedreleasekit.DeliveryDestination. SetForge: releasekit.ForgeGiteafor Gitea delivery. The removedGiteaDestinationtype has no compatibility alias.- Delivery profiles must include
"forge": "gitea". The selection is required only whendeliverorci-deliveris requested; the URL does not infer a backend.check,build, and sourcepublishremain independent of delivery selection and credentials. releasekit.PreflightDeliveryallows callers to check a destination without a checkout or tag.Deliverperforms the same read-only preflight automatically. For Gitea, the check authenticates through repository-scoped reads and makes no test release or asset writes.DeliveryPreflightErrorexposes classified failures and retains the underlying cause. Successful preflight confirms authentication and repository access plus available permission evidence; it does not guarantee future release or asset writes. Gitea's code-push permission metadata does not establish release-write or asset-write permission.- The CLI keeps
RELEASEKIT_GITEA_TOKENas its default token environment setting and preserves configured environment/file precedence. Selection, local credential-loading, and classified preflight configuration/access errors return status 2; unavailable preflight and cancellation during preflight/preparation return status 1. Later authorization failures follow delivery outcomes. An unresolved write returns status 3, including when cancellation prevents reconciliation; known delivery failures return 1. - Binary
ci-deliverchecks credentials before application dependency downloads and checks again during delivery. The automatic check now precedes full local artifact size and digest verification; those checks still finish before hosted writes.
Upgrade guidance
- Replace
releasekit.GiteaDestinationwithreleasekit.DeliveryDestinationand setForge: releasekit.ForgeGiteain each API request. - Add
"forge": "gitea"to every profile used fordeliverorci-deliver, including profiles loaded from a tagged CI checkout. Keep the existingbase_url, owner, repository, token environment, and token file settings. - If handling preflight failures in Go, use
errors.Asto inspect*releasekit.DeliveryPreflightErrorand useerrors.Isorerrors.Ason its unwrapped cause as needed. - Continue to treat successful preflight as evidence of repository access, not a guarantee that a later write will be accepted. Source publication continues to use Git authentication and does not require hosted delivery credentials.
See the delivery guide, configuration reference, CLI contract, and Gitea integration guide for current behavior.