__init__.py python
35 lines 977 B
Raw
sha256:0e9549ec7b463911bc08b7d586dc320b1ac9b1f5c943ee7e3865dcc6cb0f6f83 chore(governance): sync handover+roadmap to 84db8c8 (drift:… Human 1 day ago
1 """Overseer Kit VCS adapters — config loading and backend factory."""
2
3 from __future__ import annotations
4
5 from pathlib import Path
6
7 from adapters.config import load_config
8 from adapters.errors import ConfigError
9 from adapters.factory import create_adapter
10 from adapters.runner import CommandRunner
11
12 __all__ = [
13 "CommandRunner",
14 "ConfigError",
15 "create_adapter",
16 "load_config",
17 ]
18
19 SUPPORTED_CONFIG_VERSION = 1
20 SUPPORTED_REGIMES = frozenset({"muse+git-mirror", "muse-only", "git-only"})
21
22
23 def load_adapter(
24 repo_root: Path,
25 config_path: Path | None = None,
26 runner: CommandRunner | None = None,
27 ):
28 """Load config and return the regime-appropriate VCS adapter.
29
30 Fail-closed: missing/unparseable config, unknown version, or unknown regime
31 raises ``ConfigError``.
32 """
33 path = config_path or (repo_root / ".overseer" / "config.yaml")
34 config = load_config(path)
35 return create_adapter(config, repo_root.resolve(), runner=runner)
File History 1 commit
sha256:6abcf1fa82a7a621ccbc945f19acdba5bc0db54569599404a1452fb4a096a199 fix(ISR): default require_independent_second_reviewer to require Human minor 1 day ago