diff --git a/crates/walgit-config/src/lib.rs b/crates/walgit-config/src/lib.rs index b5aca125..0ae1a152 100644 --- a/crates/walgit-config/src/lib.rs +++ b/crates/walgit-config/src/lib.rs @@ -1081,6 +1081,10 @@ impl Config { self.server.max_concurrent_requests > 0, "server.max_concurrent_requests must be positive" ); + anyhow::ensure!( + self.server.max_concurrent_per_repo > 0, + "server.max_concurrent_per_repo must be positive" + ); anyhow::ensure!( !self.server.request_timeout.is_zero(), "server.request_timeout must be positive" @@ -1360,6 +1364,14 @@ mod tests { assert_eq!(back.store.bucket, c.store.bucket); } + #[test] + fn zero_per_repo_concurrency_is_rejected() { + let mut c = Config::default(); + c.server.max_concurrent_per_repo = 0; + let err = c.validate().unwrap_err().to_string(); + assert!(err.contains("server.max_concurrent_per_repo must be positive")); + } + #[test] fn example_configurations_parse_and_validate() { Config::parse(include_str!("../../../walgit.example.toml")).unwrap();