yes, start implementing, make a new branch, make meaningful commits, and add tests as you go, when it makes sense create tests first · Entire
Pull Request Summary: Add SSH Transport Support
This PR implements SSH transport support in the git-sync project, allowing users to interact with repositories over SSH. The implementation includes a new transport mechanism and integrates error handling, testing, and documentation.
Commit Stack:
f44c0cccgitproto: extract transport interface and rename HTTPConnebfc0d98gitproto: add SSH transport via per-RPC ssh exec74a4cf49syncer: warn that SSH stats and progress are incompletec0b12714tests: add end-to-end SSH transport coverage98ca4e96docs: document SSH support and caveats3cc55f83lint: fix transport linter findings9c50a33fssh: clean up failed info-refs startup
Key Features:
- SSH Transport Integration: Added a new transport mechanism for SSH connections that supports
ssh://, SCP-stylegit@host:path.git, andgit+ssh://URLs. - Error Handling: Ensures proper cleanup in case of failure, preventing leaked processes.
- Warning for Incomplete Stats: Introduced user-facing warnings for scenarios where byte-counted throughput is not available when using SSH.
- Testing: Comprehensive testing has been implemented, including unit tests for the SSH transport and end-to-end tests using a local shim.
- Documentation: Updates to the README and usage documentation to inform users about SSH support and its limitations.
Remaining Caveat:
- The SSH implementation currently does not support byte-counted throughput statistics when using
--progressand--show-stats. This limitation is documented in the warning messages.
Action Items:
- Request review and merge.
- After merging, consider adding a follow-up PR for a more robust end-to-end test using Docker-based
sshd.
For further details, please review the performance and coverage achieved by the end-to-end tests and unit tests included in this PR.