From 336f45dbb8c15246c2e1f8611004bb467cc94593 Mon Sep 17 00:00:00 2001 From: Felix Hanley <felix@userspace.com.au> Date: Tue, 25 Sep 2018 22:14:31 +1000 Subject: [PATCH] Add wikipage event --- gitlab-webhook.go | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/gitlab-webhook.go b/gitlab-webhook.go index ee68842..ab2ca2f 100644 --- a/gitlab-webhook.go +++ b/gitlab-webhook.go @@ -56,9 +56,6 @@ func handlePayload(hook *gitlab.Webhook) func(w http.ResponseWriter, r *http.Req } room := mxbot.GetRoom(roomID) switch payload.(type) { - //case gitlab.ConfidentialIssueEventPayload: - //case gitlab.WikiPageEventPayload: - //case gitlab.BuildEventPayload: case gitlab.PushEventPayload: handlePushEvent(payload, *room) case gitlab.TagEventPayload: @@ -71,6 +68,10 @@ func handlePayload(hook *gitlab.Webhook) func(w http.ResponseWriter, r *http.Req handleMergeRequestEvent(payload, *room) case gitlab.PipelineEventPayload: handlePipelineEvent(payload, *room) + case gitlab.WikiPageEventPayload: + handleWikiPageEvent(payload, *room) + //case gitlab.ConfidentialIssueEventPayload: + //case gitlab.BuildEventPayload: } w.WriteHeader(204) @@ -256,7 +257,7 @@ func handlePipelineEvent(payload interface{}, room mautrix.Room) { data := payload.(gitlab.PipelineEventPayload) room.SendfHTML( - "[%[1]s/%[2]s] pipeline %[7]d results: %[3]s in %[4]d seconds <a href='%[5]s'>%[6]s (!%[7]d)</a>", + "[<a href='%[5]s'>%[1]s/%[2]s</a>] pipeline %[7]d complete, %[3]s in %[4]d seconds %[6]s", data.Project.Namespace, data.Project.Name, data.ObjectAttributes.Status, @@ -265,3 +266,22 @@ func handlePipelineEvent(payload interface{}, room mautrix.Room) { data.ObjectAttributes.Title, data.ObjectAttributes.IID) } + +func handleWikiPageEvent(payload interface{}, room mautrix.Room) { + data := payload.(gitlab.WikiPageEventPayload) + + action := data.ObjectAttributes.Action + + if !strings.HasSuffix(action, "e") { + action += "e" + } + room.SendfHTML( + "[%[1]s/%[2]s] %[3]s %[4]sd page on wiki <a href='%[5]s'>%[6]s (#%[7]d)</a>", + data.Project.Namespace, + data.Project.Name, + data.User.Name, + action, + data.ObjectAttributes.URL, + data.ObjectAttributes.Title, + data.ObjectAttributes.IID) +} -- GitLab