git_policy_cli/config/mod.rs
1//! What:
2//! Reading and validating `cli-git.config.jsonc` and the Git configuration one invocation is judged by.
3//! Why:
4//! Settings reach every other subsystem through these modules,
5//! so they are easy to find in one place.
6//!
7//! In TS you'd write (pseudocode):
8//! ```ts
9//! // config/index.ts: one `export * from './file'` per module below.
10//! ```
11
12/// The one failure type for rejected configuration content or files.
13pub mod config_error;
14
15/// Repository-root discovery and bounded reading of `cli-git.config.jsonc`.
16pub mod config_file;
17
18/// Lazy configuration loading for known inspection versus mutation/ambiguous commands.
19pub mod config_loading;
20
21/// Whole-document JSONC validation into typed settings.
22pub mod config_parse;
23
24/// Validation of the `policies` section and per-policy options.
25pub(crate) mod config_policies;
26
27/// The `rulesFile` option:
28/// a repository-relative name that stays inside the repository.
29pub mod config_rules_file;
30
31/// Typed settings and their defaults.
32pub mod config_schema;
33
34/// Git's `core.fsync` value read into the components it flushes.
35pub mod config_fsync;
36
37/// One `git config --list` read, parsed, and the lookups the commit path makes against it.
38pub mod config_snapshot;
39
40/// Key-naming typed readers over parsed JSONC values.
41pub(crate) mod config_values;
42
43/// Configuration of the repository one invocation selects.
44pub mod invocation_config;