refactor: Pydantic webhook payload models, lifespan task cancellation, dict/Pydantic compat helpers

This commit is contained in:
Marker689
2026-05-11 22:07:35 +03:00
parent 6e3c2c5caa
commit 3f44de1d98
3 changed files with 66 additions and 27 deletions

View File

@@ -102,6 +102,30 @@ class StatsResponse(BaseModel):
latest_scan_at: datetime | None = None
# Webhook payload models
class WebhookAsset(BaseModel):
id: str | None = None
format: str = ""
path: str | None = None
name: str | None = None
downloadUrl: str | None = None
class WebhookComponent(BaseModel):
id: str | None = None
format: str = ""
name: str = ""
version: str = ""
class WebhookPayload(BaseModel):
action: str = ""
repositoryName: str = ""
initiator: str | None = None
asset: WebhookAsset | None = None
component: WebhookComponent | None = None
# Finding data known fields (prevents **f.data from overwriting id/scan_id)
_FINDING_DATA_FIELDS = ("rule", "severity", "message", "location", "code")