feat: barebones initial server-side upload-pack implementation#2465
Open
JamesPatrickGill wants to merge 14 commits intoGitoxideLabs:mainfrom
Open
feat: barebones initial server-side upload-pack implementation#2465JamesPatrickGill wants to merge 14 commits intoGitoxideLabs:mainfrom
JamesPatrickGill wants to merge 14 commits intoGitoxideLabs:mainfrom
Conversation
88d083f to
0981434
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
tl;dr
I am building a git forge and needed server-side git functionality. I found gitoxide, really liked it and decided to build on it. This is me attempting to upstream it.
I'm happy to rework it and take any feedback!
Hey!
Sorry if me opening this PR out of the blue and is not the process but I have recently started building a small toy git forge in Rust for some fun and when it came to the "git" part I came across gitoxide and really liked it. However, I noticed that the server-side support was not ready for me to build what I wanted, this is my assumption from reading the code anyway.
So I was interested enough to just try to implement it myself and this is what this PR contains. I attempted to go as shallow as possible as to have something to maybe discuss if this is something gitoxide is interested in before I got carried away into all the nitty gritty. That being said it does do some (very little) real stuff:
What is here:
ACK/NAK writers, and upload-pack orchestrators for both protocol versions
objects, and a top-level serve_upload_pack() entrypoint
There are a lot of caveats though...
Caveats:
However despite being pretty far from done I have an ssh server in my git forge able to serve
git clonerequests - this can be seen here: https://github.com/JamesPatrickGill/steidI am very open to guidance and getting this ship shape if you see value. I attempted to match conventions from other crates in the repo as closely as possible.