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
//! What:
//! Reading and validating `cli-git.config.jsonc` and the Git configuration one invocation is judged by.
//! Why:
//! Settings reach every other subsystem through these modules,
//! so they are easy to find in one place.
//!
//! In TS you'd write (pseudocode):
//! ```ts
//! // config/index.ts: one `export * from './file'` per module below.
//! ```
/// The one failure type for rejected configuration content or files.
/// Repository-root discovery and bounded reading of `cli-git.config.jsonc`.
/// Lazy configuration loading for known inspection versus mutation/ambiguous commands.
/// Whole-document JSONC validation into typed settings.
/// Validation of the `policies` section and per-policy options.
pub
/// The `rulesFile` option:
/// a repository-relative name that stays inside the repository.
/// Typed settings and their defaults.
/// Git's `core.fsync` value read into the components it flushes.
/// One `git config --list` read, parsed, and the lookups the commit path makes against it.
/// Key-naming typed readers over parsed JSONC values.
pub
/// Configuration of the repository one invocation selects.