Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor transport and drop git binary dependency #1111

Open
wants to merge 28 commits into
base: v6-exp
Choose a base branch
from

Conversation

aymanbagabas
Copy link
Contributor

@aymanbagabas aymanbagabas commented Jun 8, 2024

This PR refactors the transport sub-package and implements server-side git operations like UploadPack and ReceivePack along with delegating client-side operations to SendPack and FetchPack following the canonical git implementation.

  • Use shared transport logic across all transports file, git, ssh and http using NeogotiatePack, FetchPack, and SendPack.
  • Support HTTP(s) dumb transport (in a follow-up https://github.com/aymanbagabas/go-git/tree/transport-http-dumb)
  • Supports git protocol V1
  • Support server-side no-progress, sideband, and sideband64k capabilities.
  • Add shallow pack support to packfile.Encoder (needed to get the file transport to work with the pure server implementation)
  • Fix tests (currently only fails because the above is missing :/)

Future follow-ups:

  • Git daemon implementation (git-daemon support)
  • HTTP middleware (git-http-backend support)
  • go-git standalone cli

Needs: #1082

New transport api: https://gist.github.com/aymanbagabas/1b5ccc265ee62dd574c62d378b4b57bb

Supersedes: #757
Supersedes: #938
Fixes: #883
Fixes: #838

@aymanbagabas aymanbagabas marked this pull request as ready for review June 8, 2024 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants