Fix #358: repo transfer + org delete #365

Merged
crueber merged 2 commits from fix/issue-358 into main 2026-09-12 01:06:33 +00:00
Owner

Direct owner-initiated repo transfer (POST /{owner}/{repo}/api/transfer, docs/features/01 §5.4): repo admin on source + CheckCreateOwner admission on destination, copy-then-delete bucket move (streamed, PutCreate destinations, post-move re-list detects raced pushes) with the access.json owner-subject rewrite (seller drops, user destination gains admin, team grants kept, invites survive). DeleteOrg 409 now names a capability that exists — no wording change. Owner-only org Danger Zone tab (typed-confirm delete wired to client.orgs.delete, 409 verbatim) + repo Danger Zone transfer entry; SDK repo.transfer + transferBody helper. Tests: transfer unit + handler (10x -race), DeleteOrg-names-transfer, exposed pins, node --test 692 pass (smoke excluded — :8080 serves a setup-mode live instance, untouched per task). Coverage identity 96.8%. No new deps. Closes #358.

Direct owner-initiated repo transfer (POST /{owner}/{repo}/api/transfer, docs/features/01 §5.4): repo admin on source + CheckCreateOwner admission on destination, copy-then-delete bucket move (streamed, PutCreate destinations, post-move re-list detects raced pushes) with the access.json owner-subject rewrite (seller drops, user destination gains admin, team grants kept, invites survive). DeleteOrg 409 now names a capability that exists — no wording change. Owner-only org Danger Zone tab (typed-confirm delete wired to client.orgs.delete, 409 verbatim) + repo Danger Zone transfer entry; SDK repo.transfer + transferBody helper. Tests: transfer unit + handler (10x -race), DeleteOrg-names-transfer, exposed pins, node --test 692 pass (smoke excluded — :8080 serves a setup-mode live instance, untouched per task). Coverage identity 96.8%. No new deps. Closes #358.
Direct owner-initiated transfer (POST /{owner}/{repo}/api/transfer,
§5.4): repo admin on source + CheckCreateOwner on destination,
copy-then-delete bucket move with the access.json owner-subject
rewrite. DeleteOrg 409 now names a capability that exists (no wording
change). Owner-only org Danger Zone (typed-confirm delete) + repo
Danger Zone transfer entry; SDK repo.transfer + transferBody helper.

Decisions: docs/features/01_identity_permissions.md (transfer §5.4,
endpoint table, §9, Decisions entry).
Sign in to join this conversation.
No description provided.