feat(git): replace usage of git2 with gix#192
Conversation
| let blob = self | ||
| .git_repo | ||
| .find_object(entry.oid()) | ||
| .map_err(|e| ProtoRepoError::GitError(Box::new(e)))?; |
There was a problem hiding this comment.
Happy to add From<E> for ProtofetchError impls but I'm waiting to see if there is appetite for this PR to move forward first.
This swap to gix solved most of my private https depencency problems hence the pull request.
There was a problem hiding this comment.
@rtimush I am happy to put this back into draft for more feedback, I am leaving open for now just to signal that this swap does work.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db20c4d236
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| if allowed_types.contains(CredentialType::USERNAME) && !tried_username { | ||
| tried_username = true; | ||
| return Cred::username("git"); | ||
| } | ||
| // SSH auth | ||
| if allowed_types.contains(CredentialType::SSH_KEY) && !tried_agent { |
There was a problem hiding this comment.
gix also has the benefit of resolving credetial resolution for you through URL parsing and anything else git credentials does properly.
|
Hi @mkatychev. First of all, thank you for the contribution. |
|
@rtimush thank you for taking time to do writeup. This makese sense though I suppose it's a matter of dogmatic taste but I prefer larger binaries/longer compilations over external bins/dylibs. |
There are currently no plans for git2 to support newer git APIs so any credential helper resolvers that involve nested git configs will not be possible using git2 (my case below):
Implemented git resolution with
gixand thegix_credential_resolverto handle cascading configuration resolutions.