factory.py python
32 lines 1.0 KB
Raw
sha256:106ef9e12cca7f3be3ffb2a6bd3abfa76f032dce453c9e5010d732a8d86f2e14 Reconcile reviewed credential compatibility 32254cd939885d9… Human patch 8 days ago
1 """Factory for regime-specific VCS adapters."""
2
3 from __future__ import annotations
4
5 from pathlib import Path
6
7 from adapters.base import VcsAdapter
8 from adapters.config import OverseerConfig
9 from adapters.errors import ConfigError
10 from adapters.runner import CommandRunner
11
12
13 def create_adapter(
14 config: OverseerConfig,
15 repo_root: Path,
16 runner: CommandRunner | None = None,
17 ) -> VcsAdapter:
18 """Instantiate the adapter for ``config.vcs.regime``."""
19 regime = config.vcs.regime
20 if regime == "git-only":
21 from adapters.git_only.adapter import GitOnlyAdapter
22
23 return GitOnlyAdapter(config, repo_root, runner=runner)
24 if regime == "muse-only":
25 from adapters.muse_only.adapter import MuseOnlyAdapter
26
27 return MuseOnlyAdapter(config, repo_root, runner=runner)
28 if regime == "muse+git-mirror":
29 from adapters.muse_git_mirror.adapter import MuseGitMirrorAdapter
30
31 return MuseGitMirrorAdapter(config, repo_root, runner=runner)
32 raise ConfigError(f"unsupported vcs.regime {regime!r}")
File History 2 commits
sha256:106ef9e12cca7f3be3ffb2a6bd3abfa76f032dce453c9e5010d732a8d86f2e14 Reconcile reviewed credential compatibility 32254cd939885d9… Human patch 8 days ago
sha256:c87cf2c2f03da507f66f93922cb339a2cbebb33ad6372a6039032fb09a20da12 Reconcile reviewed Overseer recovery d47291d5d9030de5ebef71… Human minor ⚠ 9 days ago