Files
bambuddy/backend/app/services/git_providers/factory.py
T

23 lines
873 B
Python

"""Factory for instantiating the correct Git provider backend."""
from backend.app.services.git_providers.base import GitProviderBackend
from backend.app.services.git_providers.forgejo import ForgejoBackend
from backend.app.services.git_providers.gitea import GiteaBackend
from backend.app.services.git_providers.github import GitHubBackend
from backend.app.services.git_providers.gitlab import GitLabBackend
_BACKENDS: dict[str, type[GitProviderBackend]] = {
"github": GitHubBackend,
"gitea": GiteaBackend,
"forgejo": ForgejoBackend,
"gitlab": GitLabBackend,
}
def get_provider_backend(provider: str) -> GitProviderBackend:
"""Return an instantiated backend for the given provider key."""
backend_cls = _BACKENDS.get(provider)
if backend_cls is None:
raise ValueError(f"Unknown Git provider: {provider!r}")
return backend_cls()