Community edition generated from private repo via sync pipeline. Includes 9 plugins (WordPress, WooCommerce, WP Advanced, Gitea, n8n, Supabase, OpenPanel, Appwrite, Directus) with ~587 tools. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
"""
|
|
Common Pydantic Schemas for Gitea Plugin
|
|
|
|
Shared validation schemas used across Gitea handlers.
|
|
"""
|
|
|
|
from datetime import datetime
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
class Site(BaseModel):
|
|
"""Gitea site configuration"""
|
|
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
site_id: str = Field(..., description="Site identifier (e.g., 'site1')")
|
|
url: str = Field(..., description="Gitea instance URL")
|
|
token: str | None = Field(None, description="Personal access token")
|
|
alias: str | None = Field(None, description="Site alias")
|
|
oauth_enabled: bool = Field(default=False, description="Whether OAuth is enabled")
|
|
|
|
class PaginationParams(BaseModel):
|
|
"""Pagination parameters for list endpoints"""
|
|
|
|
model_config = ConfigDict(extra="forbid")
|
|
|
|
page: int = Field(default=1, ge=1, description="Page number (starts at 1)")
|
|
limit: int = Field(default=30, ge=1, le=100, description="Number of items per page (1-100)")
|
|
|
|
class ErrorResponse(BaseModel):
|
|
"""Standard error response"""
|
|
|
|
error: bool = Field(default=True)
|
|
message: str = Field(..., description="Error message")
|
|
code: str | None = Field(None, description="Error code")
|
|
details: dict[str, Any] | None = Field(None, description="Additional error details")
|
|
|
|
class SuccessResponse(BaseModel):
|
|
"""Standard success response"""
|
|
|
|
success: bool = Field(default=True)
|
|
message: str = Field(..., description="Success message")
|
|
data: dict[str, Any] | None = Field(None, description="Response data")
|
|
|
|
class GiteaUser(BaseModel):
|
|
"""Gitea user information"""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
id: int
|
|
login: str
|
|
full_name: str | None = None
|
|
email: str | None = None
|
|
avatar_url: str | None = None
|
|
is_admin: bool = False
|
|
|
|
class GiteaPermissions(BaseModel):
|
|
"""Repository permissions"""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
admin: bool = False
|
|
push: bool = False
|
|
pull: bool = False
|
|
|
|
class GiteaTimestamps(BaseModel):
|
|
"""Common timestamp fields"""
|
|
|
|
model_config = ConfigDict(extra="allow")
|
|
|
|
created_at: datetime | None = None
|
|
updated_at: datetime | None = None
|