from pydantic import BaseModel, Field from typing import Optional class GitProvider(str): pass class GitServerConfigBase(BaseModel): name: str = Field(..., description="Display name for the Git server") provider: str = Field(..., description="Git provider (GITHUB, GITLAB, GITEA)") url: str = Field(..., description="Server base URL") pat: str = Field(..., description="Personal Access Token") pat: str = Field(..., description="Personal Access Token") default_repository: Optional[str] = Field(None, description="Default repository path (org/repo)") default_branch: Optional[str] = Field("main", description="Default branch logic/name") class GitServerConfigSchema(GitServerConfigBase): id: str status: str print(GitServerConfigSchema.model_fields.keys())