Enable SSH remotes in native frontends (#117)

This commit is contained in:
2026-08-25 21:39:35 +02:00
parent 76e707f645
commit a737e74aae
22 changed files with 1214 additions and 140 deletions

View File

@@ -60,6 +60,15 @@ commands. SHA-1 host signatures and `ssh-rsa` authentication are excluded.
Cancellation interrupts connection and authentication without changing Git,
known hosts, or secure storage.
The standard CLI, TUI, and desktop applications compile this transport and pass
their Git actions through storage's typed endpoint selection. They display both
SSH URL forms without reparsing them. An unknown key opens an explicit native
confirmation showing the host, port, algorithm, and fingerprint; a changed key
is a non-bypassable error. Encrypted-key prompts use hidden or masked input and
retain a supplied passphrase only after SSH authentication and the requested Git
operation succeed. Cancelling either prompt leaves the repository, known hosts,
and secure storage unchanged.
## SSH upload-pack
With the same feature enabled, branch discovery, clone, fetch, and pull open a
@@ -110,3 +119,6 @@ counts, pack checksums, non-fast-forward behavior, and server status. SSH tests
use a pure-Rust in-process Russh server and upload-pack fixture to exercise
chunked reference and pack streams, end-to-end clone/fetch/pull, command
quoting, cancellation, and rollback without an external Git or SSH executable.
Frontend tests cover typed transport display, prompt masking and cancellation,
retry routing, conflicts, authentication failures, and successful HTTPS
regression paths without duplicating protocol logic.