feat(config): load ignore_repos from startup-config.json

- Load daemon config by matching current directory
- Override ignore_repos from config file (takes precedence over env var)
- Fall back to empty list if config not found

Usage: Edit ~/.config/commits/startup-config.json
No environment variables needed!

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Lilith 2026-01-11 02:35:58 -08:00
parent d6618679af
commit 8f3803c2a2

View file

@ -1,8 +1,10 @@
"""Entry point for running as module: python -m auto_commit_service"""
import json
import logging
import sys
from logging.handlers import RotatingFileHandler
from pathlib import Path
import uvicorn
from .config import AutoCommitSettings
@ -44,9 +46,39 @@ def setup_logging(settings: AutoCommitSettings) -> None:
logging.info(f"Logging to {settings.log_file}")
def load_daemon_config(cwd: Path) -> dict:
"""Load daemon-specific config from startup-config.json."""
config_path = Path.home() / ".config" / "commits" / "startup-config.json"
if not config_path.exists():
return {}
try:
data = json.loads(config_path.read_text())
# Find daemon entry matching current directory
for daemon in data.get("daemons", []):
if daemon.get("directory") == str(cwd):
return daemon
except (json.JSONDecodeError, KeyError):
pass
return {}
def main() -> None:
"""Run the auto-commit service."""
settings = AutoCommitSettings(service_name="auto-commit-service")
# Load daemon-specific config from registry
cwd = Path.cwd()
daemon_config = load_daemon_config(cwd)
# Override ignore_repos from config file if present
ignore_repos_override = {}
if "ignore_repos" in daemon_config and daemon_config["ignore_repos"]:
ignore_repos_override["ignore_repos"] = daemon_config["ignore_repos"]
settings = AutoCommitSettings(
service_name="auto-commit-service",
**ignore_repos_override
)
# Setup file logging
setup_logging(settings)