generated from jCloud/repository-template
Add models for Gitea webhooks
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
# Copyright 2026 jCloud Services GbR
|
||||||
|
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
from . import release
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'release'
|
||||||
|
]
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# Copyright 2026 jCloud Services GbR
|
||||||
|
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
|
||||||
|
from pydantic import BaseModel, HttpUrl
|
||||||
|
from typing import Optional, List, Literal
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'User',
|
||||||
|
'Repository',
|
||||||
|
]
|
||||||
|
|
||||||
|
class User(BaseModel):
|
||||||
|
id: int
|
||||||
|
login: str
|
||||||
|
username: Optional[str] = None
|
||||||
|
full_name: Optional[str] = None
|
||||||
|
email: Optional[str] = None
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
extra = 'allow'
|
||||||
|
|
||||||
|
class Repository(BaseModel):
|
||||||
|
id: int
|
||||||
|
name: str
|
||||||
|
full_name: str
|
||||||
|
|
||||||
|
private: bool
|
||||||
|
|
||||||
|
html_url: str
|
||||||
|
clone_url: Optional[str] = None
|
||||||
|
ssh_url: Optional[str] = None
|
||||||
|
|
||||||
|
default_branch: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
|
class Config:
|
||||||
|
extra = 'allow'
|
||||||
+28
-31
@@ -13,37 +13,15 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from pydantic import BaseModel, HttpUrl
|
from pydantic import BaseModel, HttpUrl
|
||||||
from typing import Optional, List
|
from typing import Optional, List, Literal
|
||||||
from datetime import datetime
|
from .common import User, Repository
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'User',
|
|
||||||
'Repository',
|
|
||||||
'ReleaseAsset',
|
'ReleaseAsset',
|
||||||
'Release',
|
'Release',
|
||||||
'ReleaseEvent'
|
'ReleaseEvent'
|
||||||
]
|
]
|
||||||
|
|
||||||
class User(BaseModel):
|
|
||||||
id: int
|
|
||||||
login: str
|
|
||||||
username: Optional[str] = None
|
|
||||||
full_name: Optional[str] = None
|
|
||||||
email: Optional[str] = None
|
|
||||||
|
|
||||||
class Config:
|
|
||||||
extra = 'allow'
|
|
||||||
|
|
||||||
class Repository(BaseModel):
|
|
||||||
id: int
|
|
||||||
name: str
|
|
||||||
full_name: str
|
|
||||||
clone_url: Optional[HttpUrl] = None
|
|
||||||
default_branch: Optional[str] = None
|
|
||||||
|
|
||||||
class Config:
|
|
||||||
extra = 'allow'
|
|
||||||
|
|
||||||
class ReleaseAsset(BaseModel):
|
class ReleaseAsset(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
name: str
|
name: str
|
||||||
@@ -57,23 +35,42 @@ class ReleaseAsset(BaseModel):
|
|||||||
class Release(BaseModel):
|
class Release(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
tag_name: str
|
tag_name: str
|
||||||
target_commitish: Optional[str] = None
|
target_commitish: str
|
||||||
|
|
||||||
name: Optional[str] = None
|
name: Optional[str] = None
|
||||||
body: Optional[str] = None
|
body: Optional[str] = None
|
||||||
|
|
||||||
|
url: str
|
||||||
|
html_url: str
|
||||||
|
tarball_url: Optional[HttpUrl] = None
|
||||||
|
zipball_url: Optional[HttpUrl] = None
|
||||||
|
upload_url: Optional[HttpUrl] = None
|
||||||
|
|
||||||
draft: bool
|
draft: bool
|
||||||
prerelease: bool
|
prerelease: bool
|
||||||
created_at: Optional[datetime] = None
|
|
||||||
published_at: Optional[datetime] = None
|
|
||||||
|
|
||||||
author: Optional[User] = None
|
created_at: Optional[str] = None
|
||||||
assets: Optional[List[ReleaseAsset]] = None
|
published_at: Optional[str] = None
|
||||||
|
|
||||||
|
author: User
|
||||||
|
|
||||||
|
assets: List[ReleaseAsset]
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
extra = 'allow'
|
extra = 'allow'
|
||||||
|
|
||||||
class ReleaseEvent(BaseModel):
|
class ReleaseWebhook(BaseModel):
|
||||||
action: str # 'published', 'created', ...
|
action: Literal[
|
||||||
|
'published',
|
||||||
|
'created',
|
||||||
|
'edited',
|
||||||
|
'deleted',
|
||||||
|
'prereleased',
|
||||||
|
'released'
|
||||||
|
]
|
||||||
|
|
||||||
release: Release
|
release: Release
|
||||||
|
|
||||||
repository: Repository
|
repository: Repository
|
||||||
sender: User
|
sender: User
|
||||||
|
|
||||||
Reference in New Issue
Block a user