c5fbb6722b
- Create styles/tokens.css with CSS custom properties and dark theme - Create styles/global.css with resets, shell layout, and navigation - Create styles/utilities.css with generic utilities and primitives - Create styles/syntax-highlight.css with Prism.js theme - Update main.tsx to import the 4 new style files - Keep styles.css intact for backward compatibility Quality gates: build (pass), lint (pass) Refs: repo-restructure Task 2.1
130 lines
2.2 KiB
Python
130 lines
2.2 KiB
Python
"""Git repository request/response schemas."""
|
|
|
|
import uuid
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class GitRepositoryCreate(BaseModel):
|
|
name: str
|
|
remote_url: str | None = None
|
|
force_original_url: bool = False
|
|
|
|
|
|
class URLParseRequest(BaseModel):
|
|
url: str
|
|
|
|
|
|
class URLParseResponse(BaseModel):
|
|
original_url: str
|
|
base_url: str | None
|
|
is_valid_clone_url: bool
|
|
needs_parsing: bool
|
|
host: str | None
|
|
message: str
|
|
error_code: str | None
|
|
|
|
|
|
class GitRepositoryResponse(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: uuid.UUID
|
|
name: str
|
|
path: str
|
|
project_id: uuid.UUID
|
|
owner_id: uuid.UUID
|
|
is_mirror: bool
|
|
remote_url: str | None
|
|
last_push: datetime | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class FileListResponse(BaseModel):
|
|
path: str
|
|
branch: str
|
|
entries: list[dict]
|
|
|
|
|
|
class FileContentResponse(BaseModel):
|
|
path: str
|
|
branch: str
|
|
content: str
|
|
size: int
|
|
encoding: str
|
|
language: str | None
|
|
is_binary: bool
|
|
last_commit: dict | None
|
|
|
|
|
|
class BranchesResponse(BaseModel):
|
|
branches: list[dict]
|
|
default_branch: str
|
|
|
|
|
|
class FileUpdateRequest(BaseModel):
|
|
path: str
|
|
branch: str
|
|
content: str
|
|
commit_message: str
|
|
|
|
|
|
class FileUpdateResponse(BaseModel):
|
|
commit_hash: str
|
|
message: str
|
|
branch: str
|
|
|
|
|
|
class StatusResponse(BaseModel):
|
|
branch: str
|
|
modified: list[str]
|
|
added: list[str]
|
|
deleted: list[str]
|
|
untracked: list[str]
|
|
renamed: list[str]
|
|
ahead: int
|
|
behind: int
|
|
|
|
|
|
class BranchCreateRequest(BaseModel):
|
|
name: str
|
|
base_branch: str = "HEAD"
|
|
|
|
|
|
class CheckoutRequest(BaseModel):
|
|
branch: str
|
|
|
|
|
|
class CommitRequest(BaseModel):
|
|
message: str
|
|
files: list[str] | None = None
|
|
|
|
|
|
class CommitResponse(BaseModel):
|
|
commit_hash: str
|
|
message: str
|
|
|
|
|
|
class FetchResponse(BaseModel):
|
|
message: str
|
|
|
|
|
|
class PullResponse(BaseModel):
|
|
message: str
|
|
|
|
|
|
class PushResponse(BaseModel):
|
|
message: str
|
|
|
|
|
|
class MergeRequest(BaseModel):
|
|
source_branch: str
|
|
target_branch: str | None = None
|
|
message: str | None = None
|
|
|
|
|
|
class MergeResponse(BaseModel):
|
|
commit_hash: str
|
|
message: str
|