From 6dc564a442f9ae9055c4d850ab2b970f3c486b0c Mon Sep 17 00:00:00 2001 From: Tulir Asokan <tulir@maunium.net> Date: Sun, 1 Oct 2017 23:15:01 +0300 Subject: [PATCH] Update confidential issue webhook handling The webhook library maintainer preferred having a separate type for confidential issues. --- gitlab-webhook.go | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/gitlab-webhook.go b/gitlab-webhook.go index d5ea117..4c77074 100644 --- a/gitlab-webhook.go +++ b/gitlab-webhook.go @@ -44,7 +44,7 @@ func startWebhook() func() { hook.RegisterEvents(handlePushEvent, gitlab.PushEvents) hook.RegisterEvents(handleTagEvent, gitlab.TagEvents) hook.RegisterEvents(handleIssueEvent, gitlab.IssuesEvents) - hook.RegisterEvents(handleConfidentialIssueEvent, gitlab.Event("Confidential Issue Hook")) + hook.RegisterEvents(handleIssueEvent, gitlab.ConfidentialIssuesEvents) hook.RegisterEvents(handleMergeRequestEvent, gitlab.MergeRequestEvents) hook.RegisterEvents(handleCommentEvent, gitlab.CommentEvents) @@ -141,21 +141,20 @@ func handleTagEvent(payload interface{}, header webhooks.Header) { tag) } -func handleConfidentialIssueEvent(payload interface{}, header webhooks.Header) { - header["X-Confidential-Issue"] = []string{"true"} - handleIssueEvent(payload, header) -} - func handleIssueEvent(payload interface{}, header webhooks.Header) { - data := payload.(gitlab.IssueEventPayload) - roomID := header["X-Room-Id"][0] - room := mxbot.GetRoom(roomID) - + data, ok := payload.(gitlab.IssueEventPayload) confidential := "" - confidentialHeader, _ := header["X-Confidential-Issue"] - if len(confidentialHeader) > 0 && confidentialHeader[0] == "true" { + if !ok { + data2, ok := payload.(gitlab.ConfidentialIssueEventPayload) + if !ok { + fmt.Println("Unexpected error: Received issue event with incorrect payload type.") + return + } confidential = "confidential " + data = data2.IssueEventPayload } + roomID := header["X-Room-Id"][0] + room := mxbot.GetRoom(roomID) var action = data.ObjectAttributes.Action if action == "update" || len(action) == 0 { -- GitLab