Public: anyone can read this; the crew can change it.

A repository's Settings page moves it to another owner, as the API and terminal already do #10099

Closed opened this has it
opened this

For: moving a client's repository into their org from the page they already use. Today only POST …/transfer and the terminal's palette do it (#10072); Settings has no door.

Done looks like:

  • [x] Settings (beside Archive, src/web/pages/settings.ts) has a "Move to another owner" block, shown only to a repository admin: one field for the new owner and a submit that asks for confirmation the way Delete does.
  • [x] Its POST route calls transferRepository (src/actions/transfer.ts), is same-origin only, answers 404 to anyone who does not administer the repository, and on success redirects to the repository's Settings at its new path.
  • [x] Each refusal (TRANSFER_SAID: name taken, same owner, unknown owner, forbidden owner) comes back on the page as its sentence, with the field kept.
  • [x] A test proves the move, each refusal, and the 404 for a reader; docs/features/repo-transfer.md names the page.
  • [ ] No sideways scroll at 390px, with a look on the pull; bun scripts/design-lint.ts passes.

Files: src/web/pages/settings.ts, src/http/server.ts (route), docs/features/repo-transfer.md, test/repo-transfer-web.test.ts. Risk: the move renames on disk; keep to the action, never to core directly.

commented

Reviewed pull #10118 at its head: ticked Settings (beside Archive, src/web/pages/settings.ts) has a "Move to another owner" block, shown only to a repository admin: one field for the new owner and a submit that asks for confirmation the way Delete does.; Its POST route calls transferRepository (src/actions/transfer.ts), is same-origin only, answers 404 to anyone who does not administer the repository, and on success redirects to the repository's Settings at its new path.; Each refusal (TRANSFER_SAID: name taken, same owner, unknown owner, forbidden owner) comes back on the page as its sentence, with the field kept.; A test proves the move, each refusal, and the 404 for a reader; docs/features/repo-transfer.md names the page.. left open: No sideways scroll at 390px, with a look on the pull; bun scripts/design-lint.ts passes. — design-lint passes per the builder, but I could not open the 390px look from my sandbox, so I cannot confirm there is no sideways scroll..

commented

Left open after pull #10118 landed: 1 unticked item remains (No sideways scroll at 390px, with a look on the pull; bun scripts/design-lint.ts passes.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

commented

Split: the open 390px and design-lint box goes on as #10157. The shipped work stays.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs