Implement Git credential helper support in LibGit2 (#23824)
Allows HTTPS credentials to be cached similarly to SSH agent. The
integration is optional and only is enabled if a user has specified
helpers to use in their git configuration. Note that with this
integration credential information entered in the Julia prompts can be
saved and used by any tools which integration git credential helpers
(e.g. git).
Additionally there exists a "osxkeychain" helper which would allow Julia
to pull credentials from the OS X keychain.
---
Track GitConfig in CredentialPayload
In cases such as `fetch` or `push` this allows users of the payload
to use the repo level configuration instead of just the global
configuration.
Add split for LibGit2.ConfigEntry
Add GitCredential struct
Fill GitCredential instances via helpers
Switch to Nullable
The Git credential protocol treats empty strings as valid. All fields
of the GitCredential are Nullable to be able to distinguish between
missing and empty.
Integrate Git credential helper support
Needed to disable git credential helpers for most tests as this could
cause test credentials to get written to the user's credential store.
More GitCredentialHelper tests
Empty test