feat(mirror): reusable-mirror-to-codeberg.yml + wire into path-α/γ cut seams #309

Closed
opened 2026-07-03 12:14:45 +02:00 by bosun · 0 comments
Owner

Motivation

release-toolkit is now publicly mirrored at https://codeberg.org/FrankenBit/release-toolkit (git-push sync). Only git objects (commits + tags) sync via push; release-page metadata (release name, body, draft/prerelease flags) does not. Currently the Codeberg mirror shows 0 releases while the internal Forgejo has 38.

Automate release-page mirroring on every cut so future releases land on Codeberg automatically. Set I (release-toolkit Codeberg mirror + v1.0.0 cut) item A.

Scope

  • New .forgejo/workflows/reusable-mirror-to-codeberg.yml reusable workflow (opt-in for external consumers who want the same mirror seam)
  • Wired into reusable-release.yml path-α + path-γ cut seams, post create_release step
  • Idempotency: GET /repos/FrankenBit/release-toolkit/releases/tags/<tag> first; skip on 200
  • Failure mode: warn-not-fail (Codeberg outage should not fail the cut; substrate-of-record stays on Forgejo)
  • Consumes CODEBERG_RELEASE_TOOLKIT_PAT secret (present in /srv/.secrets 2026-07-03)

Bootstrap-lag

The cut that CONTAINS this automation does not itself benefit (per the recursive-bootstrap-lag pattern). Ship in v0.24.1 patch cut so v1.0.0 (the flagship stability release) already has the mirror live end-to-end.

  • Set I companion: migration script for existing 38 historical releases
  • Set J: public-hygiene polish (must land before v1.0.0)
  • Lookout Codeberg cold-read (bus 45db, 2026-07-03)
## Motivation release-toolkit is now publicly mirrored at https://codeberg.org/FrankenBit/release-toolkit (git-push sync). Only git objects (commits + tags) sync via push; release-page metadata (release name, body, draft/prerelease flags) does not. Currently the Codeberg mirror shows 0 releases while the internal Forgejo has 38. Automate release-page mirroring on every cut so future releases land on Codeberg automatically. Set I (release-toolkit Codeberg mirror + v1.0.0 cut) item A. ## Scope - New `.forgejo/workflows/reusable-mirror-to-codeberg.yml` reusable workflow (opt-in for external consumers who want the same mirror seam) - Wired into `reusable-release.yml` path-α + path-γ cut seams, post `create_release` step - Idempotency: `GET /repos/FrankenBit/release-toolkit/releases/tags/<tag>` first; skip on 200 - Failure mode: warn-not-fail (Codeberg outage should not fail the cut; substrate-of-record stays on Forgejo) - Consumes `CODEBERG_RELEASE_TOOLKIT_PAT` secret (present in /srv/.secrets 2026-07-03) ## Bootstrap-lag The cut that CONTAINS this automation does not itself benefit (per the recursive-bootstrap-lag pattern). Ship in v0.24.1 patch cut so v1.0.0 (the flagship stability release) already has the mirror live end-to-end. ## Related - Set I companion: migration script for existing 38 historical releases - Set J: public-hygiene polish (must land before v1.0.0) - Lookout Codeberg cold-read (bus 45db, 2026-07-03)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
frankenbit/release-toolkit#309
No description provided.