from contextlib import contextmanager from pathlib import Path @contextmanager def local_backend(): from django.conf import settings from issue_core.backends.local import LocalSQLiteBackend db_path = str(getattr(settings, 'ISSUE_FACADE_LOCAL_DB', '.issue-facade/issues.db')) Path(db_path).parent.mkdir(parents=True, exist_ok=True) b = LocalSQLiteBackend() b.connect({'db_path': db_path}) try: yield b finally: b.disconnect() @contextmanager def remote_backend(): """Yields GiteaBackend wenn konfiguriert, sonst None.""" from django.conf import settings from issue_core.backends.gitea import GiteaBackend cfg = getattr(settings, 'ISSUE_FACADE_GITEA', None) if not cfg: yield None return b = GiteaBackend() b.connect(cfg) try: yield b finally: b.disconnect() def gitea_configured() -> bool: from django.conf import settings cfg = getattr(settings, 'ISSUE_FACADE_GITEA', None) return bool(cfg and cfg.get('token'))