From e3fc3f9fc749fd0ce99b900f8e98774fcace71e3 Mon Sep 17 00:00:00 2001 From: Martin/Geno Date: Sat, 9 Mar 2019 00:09:45 +0100 Subject: [PATCH] handle system events --- gitlab/main.go | 22 ++++++++++++++++++++++ gitlab/request.go | 1 + 2 files changed, 23 insertions(+) diff --git a/gitlab/main.go b/gitlab/main.go index f889616..1ae2575 100644 --- a/gitlab/main.go +++ b/gitlab/main.go @@ -1,6 +1,7 @@ package gitlab import ( + "encoding/json" "fmt" "net/http" @@ -89,6 +90,27 @@ func init() { err = libHTTP.Read(r, &pl) msg = pl.String() + case SystemEvents: + var data map[string]interface{} + err = json.NewDecoder(r.Body).Decode(data) + if err != nil { + err = nil + msg = fmt.Sprintf("unable to decode gitlab system event") + } else if event, ok := data["event_name"]; ok { + switch event { + case "push": + var pl PushEventPayload + err = libHTTP.Read(r, &pl) + msg = pl.String() + default: + err = nil + msg = fmt.Sprintf("unknown gitlab system event '%s' received", event) + } + } else { + err = nil + msg = fmt.Sprintf("unable to get event_name of gitlab system event") + } + default: err = nil msg = fmt.Sprintf("unknown gitlab event '%s' received", gitLabEvent) diff --git a/gitlab/request.go b/gitlab/request.go index 56c354f..52608ca 100644 --- a/gitlab/request.go +++ b/gitlab/request.go @@ -19,6 +19,7 @@ const ( WikiPageEvents Event = "Wiki Page Hook" PipelineEvents Event = "Pipeline Hook" BuildEvents Event = "Build Hook" + SystemEvents Event = "System Hook" ) type customTime struct {