diff --git a/src/utils/config.py b/src/utils/config.py index a22657e..0e17ed9 100644 --- a/src/utils/config.py +++ b/src/utils/config.py @@ -1,21 +1,35 @@ -from pathlib import Path +import os from typing import Any, Dict, Optional import yaml def load_config(config_path: Optional[str] = None) -> Dict[str, Any]: - """Load configuration from a YAML file.""" - if config_path is None: - config_path = Path(".git-insights/config.yaml") - - config_file = Path(config_path) - - if not config_file.exists(): - return {} - - try: - with open(config_file, "r") as f: + """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 {} - except Exception: - return {} + + 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, + }