Primakov Alexandr Alexandrovich 09cdd06307 init
2025-10-12 23:15:09 +03:00

69 lines
1.5 KiB
Python

"""Webhook payload schemas"""
from pydantic import BaseModel, Field
from typing import Optional, Dict, Any
class GiteaPullRequest(BaseModel):
"""Gitea pull request data"""
id: int
number: int
title: str
body: Optional[str] = None
state: str
user: Dict[str, Any]
head: Dict[str, Any]
base: Dict[str, Any]
html_url: str
class GiteaWebhook(BaseModel):
"""Gitea webhook payload"""
action: str = Field(..., description="Action type: opened, synchronized, closed, etc.")
number: int = Field(..., description="Pull request number")
pull_request: GiteaPullRequest
repository: Dict[str, Any]
sender: Dict[str, Any]
class GitHubPullRequest(BaseModel):
"""GitHub pull request data"""
id: int
number: int
title: str
body: Optional[str] = None
state: str
user: Dict[str, Any]
head: Dict[str, Any]
base: Dict[str, Any]
html_url: str
class GitHubWebhook(BaseModel):
"""GitHub webhook payload"""
action: str
number: int
pull_request: GitHubPullRequest
repository: Dict[str, Any]
sender: Dict[str, Any]
class BitbucketPullRequest(BaseModel):
"""Bitbucket pull request data"""
id: int
title: str
description: Optional[str] = None
state: str
author: Dict[str, Any]
source: Dict[str, Any]
destination: Dict[str, Any]
links: Dict[str, Any]
class BitbucketWebhook(BaseModel):
"""Bitbucket webhook payload"""
pullrequest: BitbucketPullRequest
repository: Dict[str, Any]
actor: Dict[str, Any]