From 38a72f4663307e674a56a2f20ee8135347288e2c Mon Sep 17 00:00:00 2001 From: Hadrien Date: Fri, 22 Nov 2024 21:19:09 +0100 Subject: [PATCH] wip: add type `GitlabDeploymentEvent` --- gitlab_matrix/types.py | 32 ++++++++++++++++++++++++++++-- templates/messages/deployment.html | 8 ++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 templates/messages/deployment.html diff --git a/gitlab_matrix/types.py b/gitlab_matrix/types.py index f48174f..2dd7553 100644 --- a/gitlab_matrix/types.py +++ b/gitlab_matrix/types.py @@ -901,6 +901,32 @@ def event_properties(self) -> Iterable[str]: def build_url(self) -> str: return f"{self.repository.homepage}/-/jobs/{self.build_id}" +@dataclass +class GitlabDeploymentEvent(SerializableAttrs, GitlabEvent): + object_kind: str + status: str + status_changed_at: str + deployment_id: int + deployable_id: int + deployable_url: str + environment: str + environment_tier: str + environment_slug: str + environment_external_url: str + project: GitlabProject + short_sha: str + user: GitlabUser + user_url: str + commit_url: str + commit_title: str + + def preprocess(self) -> List['GitlabDeploymentEvent']: + # Any preprocessing steps if needed + return [self] + + @property + def template_name(self) -> str: + return "deployment" GitlabEventType = Union[Type[GitlabPushEvent], Type[GitlabIssueEvent], @@ -908,7 +934,8 @@ def build_url(self) -> str: Type[GitlabMergeRequestEvent], Type[GitlabWikiPageEvent], Type[GitlabPipelineEvent], - Type[GitlabJobEvent]] + Type[GitlabJobEvent], + Type[GitlabDeploymentEvent]] EventParse: Dict[str, GitlabEventType] = { "Push Hook": GitlabPushEvent, @@ -920,7 +947,8 @@ def build_url(self) -> str: "Merge Request Hook": GitlabMergeRequestEvent, "Wiki Page Hook": GitlabWikiPageEvent, "Pipeline Hook": GitlabPipelineEvent, - "Job Hook": GitlabJobEvent + "Job Hook": GitlabJobEvent, + "Deployment Hook": GitlabDeploymentEvent } OTHER_ENUMS = { diff --git a/templates/messages/deployment.html b/templates/messages/deployment.html new file mode 100644 index 0000000..372b54e --- /dev/null +++ b/templates/messages/deployment.html @@ -0,0 +1,8 @@ + +Deployment Notification: +- Project: {{ event.project.name }} +- Environment: {{ event.environment }} +- Status: {{ event.status }} +- Committed by: {{ event.user.name }} ({{ event.user.username }}) +- Commit: {{ event.commit_title }} ({{ event.commit_url }}) +- Deployed to: {{ event.environment_external_url }} \ No newline at end of file