Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 30 additions & 2 deletions gitlab_matrix/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -901,14 +901,41 @@ 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],
Type[GitlabCommentEvent],
Type[GitlabMergeRequestEvent],
Type[GitlabWikiPageEvent],
Type[GitlabPipelineEvent],
Type[GitlabJobEvent]]
Type[GitlabJobEvent],
Type[GitlabDeploymentEvent]]

EventParse: Dict[str, GitlabEventType] = {
"Push Hook": GitlabPushEvent,
Expand All @@ -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 = {
Expand Down
8 changes: 8 additions & 0 deletions templates/messages/deployment.html
Original file line number Diff line number Diff line change
@@ -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 }}