From e8a4aa96082ef5234521df54857172a4b73d51d3 Mon Sep 17 00:00:00 2001 From: Ryan Fleet Date: Wed, 1 Mar 2017 13:05:43 -0500 Subject: [PATCH 1/2] ping support added for github --- hookserve/hookserve.go | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/hookserve/hookserve.go b/hookserve/hookserve.go index 446121c..a9e9fc5 100644 --- a/hookserve/hookserve.go +++ b/hookserve/hookserve.go @@ -150,7 +150,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { http.Error(w, "400 Bad Request - Missing X-GitHub-Event Header", http.StatusBadRequest) return } - if eventType != "push" && eventType != "pull_request" { + if eventType != "push" && eventType != "pull_request" && eventType != "ping" { http.Error(w, "400 Bad Request - Unknown Event Type "+eventType, http.StatusBadRequest) return } @@ -263,6 +263,28 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { http.Error(w, err.Error(), http.StatusInternalServerError) return } + } else if eventType == "ping" { + event.Type = eventType + + event.Branch, err = request.Get("repository").Get("default_branch").String() + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + + event.Repo, err = request.Get("repository").Get("name").String() + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + event.Owner, err = request.Get("repository").Get("owner").Get("login").String() + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + } else { http.Error(w, "Unknown Event Type "+eventType, http.StatusInternalServerError) return @@ -275,3 +297,4 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, req *http.Request) { w.Write([]byte(event.String())) } + From 616c1254992de4a6193013e676f252088c258a16 Mon Sep 17 00:00:00 2001 From: Thomas Richner Date: Sun, 30 Apr 2017 14:20:32 +0200 Subject: [PATCH 2/2] Fixed high CPU usage example code. --- doc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc.go b/doc.go index d5e5eec..2f2f66a 100644 --- a/doc.go +++ b/doc.go @@ -10,7 +10,7 @@ HookServe is a small golang utility for receiving github webhooks. It's easy to case event := <-server.Events: fmt.Println(event.Owner + " " + event.Repo + " " + event.Branch + " " + event.Commit) default: - time.Sleep(100) + time.Sleep(time.Millisecond * 100) } }