Files
content-ingestion-agent/app/connectors/github.py

17 lines
796 B
Python

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))})]