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

Merged
hexajon merged 4 commits from issue-293-ssh-clone-native into main 2026-07-22 17:59:29 +00:00
hexajon commented 2026-07-22 17:59:21 +00:00 (Migrated from codeberg.org)

Summary

Under git-protocol ssh or ssh-only, madtea clone owner/repo builds git@host:owner/repo.git (host resolved through the same precedence chain as credentials, token not required), and an explicit git@ or ssh:// URL clones as first contact - no credential resolution, no GIT_ASKPASS, no HTTPS fallback. A structural test pins that the ssh clone path never constructs an https URL or invokes GIT_ASKPASS. In ssh-only mode an explicit https:// URL skips credential resolution entirely and clones unauthenticated as-given - a leftover token never touches the git wire or the API - and auth guidance points at the SSH preflight. In plain ssh mode an explicit https URL remains a deliberate per-invocation override, matching the gh yardstick. Post-clone remotes keep the SSH form; auth use-ssh stays the migration tool. https and unset modes pinned unchanged.

Closes #293.

Closes #293

## Summary Under git-protocol ssh or ssh-only, `madtea clone owner/repo` builds git@host:owner/repo.git (host resolved through the same precedence chain as credentials, token not required), and an explicit git@ or ssh:// URL clones as first contact - no credential resolution, no GIT_ASKPASS, no HTTPS fallback. A structural test pins that the ssh clone path never constructs an https URL or invokes GIT_ASKPASS. In ssh-only mode an explicit https:// URL skips credential resolution entirely and clones unauthenticated as-given - a leftover token never touches the git wire or the API - and auth guidance points at the SSH preflight. In plain ssh mode an explicit https URL remains a deliberate per-invocation override, matching the gh yardstick. Post-clone remotes keep the SSH form; auth use-ssh stays the migration tool. https and unset modes pinned unchanged. Closes #293. Closes #293
Sign in to join this conversation.
No reviewers
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!345
No description provided.