from functools import lru_cache from pydantic import Field from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): model_config = SettingsConfigDict(env_prefix="INGESTION_", case_sensitive=False) github_token: str | None = Field(default=None, repr=False) github_api_base: str = "https://api.github.com" sharepoint_site_url: str | None = None sharepoint_access_token: str | None = Field(default=None, repr=False) require_governance_approval: bool = True publish_enabled: bool = False allowed_sources: tuple[str, ...] = ("github",) service_name: str = "content-ingestion-agent" @lru_cache def get_settings() -> Settings: return Settings()