feat(ssh): clone over SSH natively in ssh mode - no HTTPS URL construction, no credential resolution #293

Closed
opened 2026-07-20 14:45:39 +00:00 by hexajon · 0 comments
hexajon commented 2026-07-20 14:45:39 +00:00 (Migrated from codeberg.org)

Part of #187 (SSH-only mode epic). Depends on the protocol-mode slice.

Under protocol=ssh (either ssh mode), madtea clone owner/repo builds the SSH form (git@host:owner/repo.git) instead of HTTPS, and madtea clone git@host:owner/repo.git works as first contact - no credential resolution, no GIT_ASKPASS wiring, no HTTPS fallback on failure. SSH failures surface ssh's own stderr plus a pointer to the preflight.

Acceptance:

  • In ssh mode, no code path in clone constructs an HTTPS git URL or invokes GIT_ASKPASS (test-pinned, mirroring the style of existing structural guards)
  • Shorthand owner/repo resolves the forge host as today but emits the SSH URL form
  • Explicit SSH-URL clone works with no token configured at all
  • Post-clone remote is the SSH form; auth use-ssh remains the migration tool for existing HTTPS clones and is cross-referenced
  • Failure messages never suggest falling back to HTTPS-with-token in ssh-only mode
Part of #187 (SSH-only mode epic). Depends on the protocol-mode slice. Under `protocol=ssh` (either ssh mode), `madtea clone owner/repo` builds the SSH form (`git@host:owner/repo.git`) instead of HTTPS, and `madtea clone git@host:owner/repo.git` works as first contact - no credential resolution, no GIT_ASKPASS wiring, no HTTPS fallback on failure. SSH failures surface ssh's own stderr plus a pointer to the preflight. Acceptance: - [ ] In ssh mode, no code path in clone constructs an HTTPS git URL or invokes GIT_ASKPASS (test-pinned, mirroring the style of existing structural guards) - [ ] Shorthand `owner/repo` resolves the forge host as today but emits the SSH URL form - [ ] Explicit SSH-URL clone works with no token configured at all - [ ] Post-clone remote is the SSH form; `auth use-ssh` remains the migration tool for existing HTTPS clones and is cross-referenced - [ ] Failure messages never suggest falling back to HTTPS-with-token in ssh-only mode
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
sixfold-space/madtea#293
No description provided.