vcs_status.py python
32 lines 928 B
Raw
sha256:0e9549ec7b463911bc08b7d586dc320b1ac9b1f5c943ee7e3865dcc6cb0f6f83 chore(governance): sync handover+roadmap to 84db8c8 (drift:… Human 2 days ago
1 """Read-only VCS status via adapter (§K4.0)."""
2
3 from __future__ import annotations
4
5 from pathlib import Path
6
7 from adapters.config import OverseerConfig
8 from adapters.errors import ReadError
9 from adapters.factory import create_adapter
10 from adapters.runner import CommandRunner
11 from adapters.types import StatusResult
12
13
14 def read_vcs_status(
15 config: OverseerConfig,
16 repo_root: Path,
17 runner: CommandRunner,
18 ) -> StatusResult | ReadError:
19 """Call only ``adapter.status()`` for CLI commands."""
20 adapter = create_adapter(config, repo_root, runner=runner)
21 return adapter.status()
22
23
24 def vcs_report(result: StatusResult, config: OverseerConfig) -> dict:
25 """Build the frozen ``vcs`` object for status output."""
26 return {
27 "regime": result.regime,
28 "canonical": config.vcs.canonical,
29 "branch": result.branch,
30 "dirty": result.dirty,
31 "notes": list(result.notes),
32 }
File History 1 commit
sha256:6abcf1fa82a7a621ccbc945f19acdba5bc0db54569599404a1452fb4a096a199 fix(ISR): default require_independent_second_reviewer to require Human minor 2 days ago