63 lines
3.3 KiB
Markdown
63 lines
3.3 KiB
Markdown
# 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)
|