diff --git a/src/utils/config.py b/src/utils/config.py new file mode 100644 index 0000000..0e17ed9 --- /dev/null +++ b/src/utils/config.py @@ -0,0 +1,35 @@ +import os +from typing import Any, Dict, Optional + +import yaml + + +def load_config(config_path: Optional[str] = None) -> Dict[str, Any]: + """Load configuration from file or use defaults.""" + if config_path and os.path.exists(config_path): + with open(config_path, "r") as f: + return yaml.safe_load(f) or {} + + default_paths = [ + ".git-insights/config.yaml", + os.path.expanduser("~/.git-insights/config.yaml"), + ] + + for path in default_paths: + if os.path.exists(path): + with open(path, "r") as f: + return yaml.safe_load(f) or {} + + return get_default_config() + + +def get_default_config() -> Dict[str, Any]: + """Return default configuration.""" + return { + "repository_path": ".", + "analysis_days": 30, + "output_format": "json", + "churn_threshold": 500, + "risky_commit_threshold": 500, + "merge_commit_flag": True, + }