Pin a release commit forever, independent of its shared branch ref #51

Closed
opened 2026-10-30 16:34:58 +00:00 by Gilles · 0 comments
Owner

Follow-up to #49/#50: PinnedRef pins a whole (ref_kind, ref_value), but ci-base's publish-release.mjs uploads release/devel-snapshot reports under the exact same ref_kind=branch/ref_value= as every regular CI push on that branch -- there is no dedicated ref for a release. Pinning the ref would freeze the entire branch's history forever, not just the release build.

Add PinnedCommit(project, commit_sha) -- checked once, inside cleanup._delete_reports() itself, so both cleanup_pr and prune_history respect it for free. New GET/POST/DELETE .../commits/{commit_sha}/pin/ and GET .../pinned-commits/ endpoints, same permission gating as the existing pin endpoints.

Follow-up to #49/#50: PinnedRef pins a whole (ref_kind, ref_value), but ci-base's publish-release.mjs uploads release/devel-snapshot reports under the exact same ref_kind=branch/ref_value=<branch> as every regular CI push on that branch -- there is no dedicated ref for a release. Pinning the ref would freeze the entire branch's history forever, not just the release build. Add PinnedCommit(project, commit_sha) -- checked once, inside cleanup._delete_reports() itself, so both cleanup_pr and prune_history respect it for free. New GET/POST/DELETE .../commits/{commit_sha}/pin/ and GET .../pinned-commits/ endpoints, same permission gating as the existing pin endpoints.
Sign in to join this conversation.
No description provided.