# 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](../consumers/delivery.md), [configuration reference](../config.md), [CLI contract](../cli.md), and [Gitea integration guide](../integrations/gitea.md) for current behavior. [COPYRIGHT](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.6.0/COPYRIGHT) | [LICENSE](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.6.0/LICENSE) | [ATTRIBUTION](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.6.0/docs/oss/attribution.md)