feat(ssh): finish and push legs over SSH in ssh mode; API legs use the token when present #294

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

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

Under ssh mode, every git-transport leg madtea drives (the push inside finish, madt_push, pull/fetch where madtea supplies credentials today) goes over SSH against the SSH remote - no GIT_ASKPASS, no credential on the git wire. The API legs of finish (PR create, merge) keep using the token when one is configured (token + ssh git mode); with no token (ssh only), they produce the typed degradation error from the degradation slice.

Acceptance:

  • In ssh mode, finish's push leg and madt_push never construct an HTTPS git URL or invoke GIT_ASKPASS (test-pinned)
  • token + ssh git mode: full finish works end to end - SSH push, token-authenticated PR create + merge
  • ssh only mode: the push succeeds and the PR-create step fails with the typed degradation error (not a generic auth failure), leaving the pushed branch intact and named
  • pull/fetch paths honor the mode symmetrically
  • No behavior change in https modes (test-pinned no-regression)
Part of #187 (SSH-only mode epic). Depends on the protocol-mode slice. Under ssh mode, every git-transport leg madtea drives (the push inside `finish`, `madt_push`, `pull`/fetch where madtea supplies credentials today) goes over SSH against the SSH remote - no GIT_ASKPASS, no credential on the git wire. The API legs of `finish` (PR create, merge) keep using the token when one is configured (`token + ssh git` mode); with no token (`ssh only`), they produce the typed degradation error from the degradation slice. Acceptance: - [ ] In ssh mode, finish's push leg and madt_push never construct an HTTPS git URL or invoke GIT_ASKPASS (test-pinned) - [ ] `token + ssh git` mode: full finish works end to end - SSH push, token-authenticated PR create + merge - [ ] `ssh only` mode: the push succeeds and the PR-create step fails with the typed degradation error (not a generic auth failure), leaving the pushed branch intact and named - [ ] pull/fetch paths honor the mode symmetrically - [ ] No behavior change in https modes (test-pinned no-regression)
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#294
No description provided.