from pathlib import PurePosixPath from typing import Sequence from ..domain.models import Document, IngestionRequest class GitHubConnector: """Small GitHub SCM adapter; transport is injected for testability.""" def __init__(self, token: str = "", transport=None): self.token, self.transport = token, transport def fetch(self, request: IngestionRequest) -> Sequence[Document]: if self.transport is None: return [] payload = self.transport(request.source.repository, request.source.path, request.source.revision, self.token) if isinstance(payload, str): payload = {"content": payload} return [Document(request.source, payload.get("content", ""), {"provider": "github", "path": str(PurePosixPath(request.source.path))})]