-
Notifications
You must be signed in to change notification settings - Fork 145
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
feat: implement git-lfs support #344
Merged
Merged
Conversation
This file contains 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
Codecov Report
@@ Coverage Diff @@
## main #344 +/- ##
==========================================
- Coverage 50.52% 50.35% -0.18%
==========================================
Files 107 133 +26
Lines 8209 11272 +3063
==========================================
+ Hits 4148 5676 +1528
- Misses 3767 5157 +1390
- Partials 294 439 +145
|
- Support Git LFS SSH transfer (server-side) - Implement Git LFS Basic transfer (client) - Import missing LFS objects when importing a repository wip fix: user can be nil for anonymous connections fix: wrap db errors fix: lint errors
Generate jwt tokens Implement git-lfs-authenticate to generate tokens through ssh Authenticate user using HTTP fix: git lfs endpoint auth feat: git lfs locks Implement git lfs locks endpoints fix: tests fix: access tokens migration add expires_at fix: lint errors fix: cleanup Revert "fix: cleanup" This reverts commit 728173f. fix(db): don't drop tables
Users now can generate access tokens and use them to authenticate with Soft Serve HTTP Git server. It supports basic username & password, generated access tokens, and JWT tokens. As of now there is no way the user can set a password. This will be implemented in a separate PR. Access tokens hashes are stored in the database along with an optional expiry date. Access tokens can be used as the Git user or password in a HTTP clone URL e.g. `https://<token>@git.example.com/repo.git` fix: lint errors fix: ensure default branch on http push fix: address carlos comments
Enable/disable LFS endpoints Enable/disable SSH LFS transfer fix: lfs request validation chore: add jwt, lfs, and http tests fix: tests race feat: more tests fix: return 403 on bad creds
aymanbagabas
changed the title
feat: implement git-lfs preliminary support
feat: implement git-lfs support
Jul 28, 2023
aymanbagabas
force-pushed
the
lfs-ssh
branch
7 times, most recently
from
July 31, 2023 22:19
567bcbe
to
e861c74
Compare
Add repository owner
- Fix git commands errors on invalid args and permissions - Use Cobra to handle git commands - Add Git SSH tests - Better ssh and git pktline error handling
Ensure to pull the latest lfs objects when mirroring a repository with lfs enabled.
Remove repo files when the repo doesn't exist in the database but exists in the filesystem
Make it up to the context to continue the process
Prints the repo ssh clone url on create Fixes: #297
Implement a task manager that can run different tasks given a unique ID. This is needed to accommodate expensive tasks like importing a large repository. The current behavior uses the connection's context (the SSH connection) to import the repository. However, if the server has defined an SSH `idle_timeout`, `max_timeout`, and/or the connection drops, Soft Serve cancels the git clone process and aborts importing the repository. Instead, we add the import task to the "task manager" and wait on the connection context. If a task already exists for the same repository, return `Error: import already in progress`. Fixes: #348
Now you can add a collaborator with a specific access level Fixes: #281
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.
TODO:
Implement LFS SSH client (low priority)Fixes: #218
Fixes: #26