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
41
42
43
44
45
46
47
48
49
50
[]
= "vcs-cli-support"
= "0.4.0"
= "Shared plumbing for CLI-wrapping crates: an argv injection guard, a managed client with retry (fetch + lock contention) and credential injection, and processkit error classifiers."
= true
= true
= true
= true
= true
= "README.md"
= ["cli","subprocess","retry","error","vcs"]
= ["development-tools","command-line-utilities"]
[]
# The structured error these helpers guard against / classify, and the program
# launcher the wrappers share — and `ManagedClient`, the `CliClient` the wrappers
# hold. This is why this plumbing lives here and not in the std-only `vcs-diff`.
= true
# Dyn-compatible async trait for `CredentialProvider` — matches processkit's own
# `ProcessRunner` pattern, so `Arc<dyn CredentialProvider>` works on our MSRV.
= "0.1"
# The async backoff sleep in `retry_async` (the `ManagedClient` retry loop). Only
# the time driver is needed; the wrappers already run on tokio.
= { = "1", = ["time"] }
# Optional: the JSON helpers in the `json` module (`null_to_empty` / `from_json`)
# the forge wrappers share. Only the `Deserialize`/`Deserializer`/`DeserializeOwned`
# traits are needed (no derive), plus `serde_json` for the parse. Gated behind the
# `serde` feature so the ambient-auth backends (`vcs-git`/`vcs-jj`) never pull serde.
= { = "1", = true }
= { = "1", = true }
[]
# Enable the `json` module: the shared `null_to_empty` / `from_json` forge-parser
# helpers. Off by default — only the forge wrappers (github/gitlab/gitea) opt in.
= ["dep:serde", "dep:serde_json"]
[]
# `#[tokio::test]` for the async `retry_async` / `ManagedClient` tests.
= { = "1", = ["macros", "rt", "time"] }
[]
# Build docs.rs with every feature and pass `--cfg docsrs` so any feature-gated
# item renders an "Available on feature `x`" badge. `all-features` documents the
# optional `serde` feature (the `json` module); the metadata stays uniform with
# the rest of the workspace.
= true
= ["--cfg", "docsrs"]
[]
= true