""" Git仓库相关的 Pydantic Schema """ from pydantic import BaseModel, Field from typing import Optional from datetime import datetime class GitRepoBase(BaseModel): name: str = Field(..., max_length=50, description="仓库别名") repo_url: str = Field(..., max_length=255, description="Git仓库地址") branch: str = Field("main", max_length=50, description="Git分支") username: Optional[str] = Field(None, description="Git用户名") token: Optional[str] = Field(None, description="Git访问令牌") is_default: int = Field(0, description="是否默认仓库") class GitRepoCreate(GitRepoBase): """创建Git仓库 Schema""" pass class GitRepoUpdate(BaseModel): """更新Git仓库 Schema""" name: Optional[str] = None repo_url: Optional[str] = None branch: Optional[str] = None username: Optional[str] = None token: Optional[str] = None is_default: Optional[int] = None class GitRepoResponse(GitRepoBase): """Git仓库响应 Schema""" id: int project_id: int created_at: datetime updated_at: datetime class Config: from_attributes = True