51 lines
1.0 KiB
Python
51 lines
1.0 KiB
Python
from pydantic import BaseModel
|
|
from typing import Optional, List
|
|
from datetime import datetime
|
|
from src.models.types import Provider, IssueStatus, WorkflowStatus, PRStatus
|
|
|
|
|
|
class Repository(BaseModel):
|
|
name: str
|
|
owner: str
|
|
full_name: str
|
|
provider: Provider
|
|
url: str = ""
|
|
|
|
|
|
class PullRequest(BaseModel):
|
|
number: int
|
|
title: str
|
|
author: str
|
|
status: PRStatus
|
|
draft: bool = False
|
|
labels: List[str] = []
|
|
url: str = ""
|
|
created_at: Optional[datetime] = None
|
|
|
|
|
|
class Issue(BaseModel):
|
|
number: int
|
|
title: str
|
|
author: str
|
|
status: IssueStatus
|
|
labels: List[str] = []
|
|
url: str = ""
|
|
created_at: Optional[datetime] = None
|
|
|
|
|
|
class Workflow(BaseModel):
|
|
id: int
|
|
name: str
|
|
status: WorkflowStatus
|
|
conclusion: Optional[str] = None
|
|
url: str = ""
|
|
created_at: Optional[datetime] = None
|
|
|
|
|
|
class Config(BaseModel):
|
|
github_token: Optional[str] = None
|
|
gitlab_token: Optional[str] = None
|
|
default_repo: Optional[str] = None
|
|
refresh_interval: int = 30
|
|
theme: str = "dark"
|