36 lines
941 B
Python
36 lines
941 B
Python
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,
|
|
}
|