Skip to content
Clone
29b06d7
51 lines 1.3 KB Rust
use serde::Deserialize;
#[derive(Clone, Debug, Deserialize)]
#[serde(default)]
pub struct GitConfig {
pub repo_root: String,
pub objects_root: String,
pub max_blob_size: u64,
pub sync: SyncSettings,
}
impl Default for GitConfig {
fn default() -> Self {
Self {
repo_root: "/opt/gitdata/repos".to_string(),
objects_root: "/opt/gitdata/objects".to_string(),
max_blob_size: 100 * 1024 * 1024,
sync: SyncSettings::default(),
}
}
}
#[derive(Clone, Debug, Deserialize)]
#[serde(default)]
pub struct SyncSettings {
pub lock_ttl_secs: u64,
pub max_commits_per_sync: usize,
pub concurrency: usize,
pub queue_topic: String,
pub dlq_topic: String,
pub max_lock_retries: u64,
pub max_languages: usize,
pub language_timeout_secs: u64,
pub brpop_timeout_secs: u64,
}
impl Default for SyncSettings {
fn default() -> Self {
Self {
lock_ttl_secs: 120,
max_commits_per_sync: 5_000,
concurrency: 4,
queue_topic: "gitdata:{tasks}".to_string(),
dlq_topic: "gitdata:{dlq}".to_string(),
max_lock_retries: 5,
max_languages: 20,
language_timeout_secs: 30,
brpop_timeout_secs: 5,
}
}
}