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.
|
||||
|
||||
from pydantic import BaseModel, HttpUrl
|
||||
from typing import Optional, List
|
||||
from datetime import datetime
|
||||
from typing import Optional, List, Literal
|
||||
from .common import User, Repository
|
||||
|
||||
__all__ = [
|
||||
'User',
|
||||
'Repository',
|
||||
'ReleaseAsset',
|
||||
'Release',
|
||||
'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):
|
||||
id: int
|
||||
name: str
|
||||
@@ -57,23 +35,42 @@ class ReleaseAsset(BaseModel):
|
||||
class Release(BaseModel):
|
||||
id: int
|
||||
tag_name: str
|
||||
target_commitish: Optional[str] = None
|
||||
target_commitish: str
|
||||
|
||||
name: 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
|
||||
prerelease: bool
|
||||
created_at: Optional[datetime] = None
|
||||
published_at: Optional[datetime] = None
|
||||
|
||||
author: Optional[User] = None
|
||||
assets: Optional[List[ReleaseAsset]] = None
|
||||
created_at: Optional[str] = None
|
||||
published_at: Optional[str] = None
|
||||
|
||||
author: User
|
||||
|
||||
assets: List[ReleaseAsset]
|
||||
|
||||
class Config:
|
||||
extra = 'allow'
|
||||
|
||||
class ReleaseEvent(BaseModel):
|
||||
action: str # 'published', 'created', ...
|
||||
class ReleaseWebhook(BaseModel):
|
||||
action: Literal[
|
||||
'published',
|
||||
'created',
|
||||
'edited',
|
||||
'deleted',
|
||||
'prereleased',
|
||||
'released'
|
||||
]
|
||||
|
||||
release: Release
|
||||
|
||||
repository: Repository
|
||||
sender: User
|
||||
|
||||
Reference in New Issue
Block a user