1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Credential resolution for git-lfs.
//!
//! Bridges to git's credential machinery (`git credential fill/approve/reject`)
//! and adds a small in-memory cache so repeated requests against the same
//! host don't re-shell-out for every batch / upload / download.
//!
//! # Scope (v0)
//!
//! - [`Query`] is the (protocol, host, path) tuple git's credential helpers
//! key on.
//! - [`Credentials`] holds a username + password.
//! - [`Helper`] is the trait the API client calls into when it gets a 401.
//! - [`GitCredentialHelper`] shells out to `git credential` for the real
//! resolution.
//! - [`AskpassHelper`] spawns `GIT_ASKPASS` / `core.askpass` /
//! `SSH_ASKPASS` for username + password prompts.
//! - [`CachingHelper`] memoizes the answer in-process.
//! - [`HelperChain`] tries each helper in order and writes
//! approve/reject decisions back to all of them.
//!
//! Deferred (see `NOTES.md`): netrc, NTLM/Kerberos, multi-stage
//! `wwwauth[]`/`state[]`, URL-pattern config (`credential.<url>.helper`).
pub use AskpassHelper;
pub use HelperChain;
pub use GitCredentialHelper;
pub use ;
pub use CachingHelper;
pub use NetrcCredentialHelper;
pub use Query;
pub use ;