Files
releasekit/docs/releases/v0.6.0.md

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.Destination now uses the facade-owned releasekit.DeliveryDestination. Set Forge: releasekit.ForgeGitea for Gitea delivery. The removed GiteaDestination type has no compatibility alias.
  • Delivery profiles must include "forge": "gitea". The selection is required only when deliver or ci-deliver is requested; the URL does not infer a backend. check, build, and source publish remain independent of delivery selection and credentials.
  • releasekit.PreflightDelivery allows callers to check a destination without a checkout or tag. Deliver performs the same read-only preflight automatically. For Gitea, the check authenticates through repository-scoped reads and makes no test release or asset writes.
  • DeliveryPreflightError exposes 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_TOKEN as 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-deliver checks 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

  1. Replace releasekit.GiteaDestination with releasekit.DeliveryDestination and set Forge: releasekit.ForgeGitea in each API request.
  2. Add "forge": "gitea" to every profile used for deliver or ci-deliver, including profiles loaded from a tagged CI checkout. Keep the existing base_url, owner, repository, token environment, and token file settings.
  3. If handling preflight failures in Go, use errors.As to inspect *releasekit.DeliveryPreflightError and use errors.Is or errors.As on its unwrapped cause as needed.
  4. 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.

COPYRIGHT | LICENSE | ATTRIBUTION