42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""
|
|
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
|