git-remote-entire: relay helper-status before send-pack exit check

main

Commit

pjbgf3mo ago

send-pack exits non-zero on per-ref rejections (D/F conflict, protected branch, server hook decline). The buffered error refs/X <reason> lines are what git's transport-helper.c reads to render the user-visible ! [remote rejected] output. Forwarding helper-status only on the happy path meant Wait/feed errors swallowed those lines, leaving users with only send-pack exited with error: exit status 1.

Relay helper-status before checking exit codes so the real reason reaches the user. Examples now surfaced:

Branch protection violation ! [remote rejected] branch-test -> branch-test (upstream: push declined due to repository rule violations) error: failed to push some refs to 'X'

Invalid ref: ! [remote rejected] test-prefix -> test-prefix (ref name conflicts with an existing ref namespace) error: failed to push some refs to 'X'

Permissions: ! [remote rejected] new-test/repo -> new-test/repo (pushing to GitHub: tracing transport: handshake: http transport: authorization failed: unexpected requesting "https://github.com/x/x/info/refs?service=git-receive-pack" status code: 403: Permission to x/x.git denied to <user>.) error: failed to push some refs to 'X'

Assisted-by: Claude Opus 4.7 noreply@anthropic.com Signed-off-by: Paulo Gomes paulo@entire.io Entire-Checkpoint: 25d3ab26f571

Checkpoints

Fix Git Remote Helper Status Relay

Claude CodeOpus 4.7[1m]
View session
Checkpoint 1