69 lines
1.5 KiB
Python
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]
|
|
|