12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
-
- import (
- "fmt"
- "log"
- "strconv"
-
- "gopkg.in/go-playground/webhooks.v3"
- "gopkg.in/go-playground/webhooks.v3/github"
- )
-
- const (
- path = "/webhooks"
- port = 3016
- )
-
- type myLogger struct {
- PrintDebugs bool
- }
-
- func (l *myLogger) Info(msg string) {
- log.Println(msg)
- }
-
- func (l *myLogger) Error(msg string) {
- log.Println(msg)
- }
-
- func (l *myLogger) Debug(msg string) {
- if !l.PrintDebugs {
- return
- }
- log.Println(msg)
- }
-
- func main() {
- // webhooks.DefaultLog=webhooks.NewLogger(true)
- //
- // or override with your own
- webhooks.DefaultLog = &myLogger{PrintDebugs: true}
-
- hook := github.New(&github.Config{Secret: "MyGitHubSuperSecretSecrect...?"})
- hook.RegisterEvents(HandleMultiple, github.ReleaseEvent, github.PullRequestEvent) // Add as many as you want
-
- err := webhooks.Run(hook, ":"+strconv.Itoa(port), path)
- if err != nil {
- fmt.Println(err)
- }
- }
-
- // HandleMultiple handles multiple GitHub events
- func HandleMultiple(payload interface{}, header webhooks.Header) {
- fmt.Println("Handling Payload..")
-
- switch payload.(type) {
-
- case github.ReleasePayload:
- release := payload.(github.ReleasePayload)
- // Do whatever you want from here...
- fmt.Printf("%+v", release)
-
- case github.PullRequestPayload:
- pullRequest := payload.(github.PullRequestPayload)
- // Do whatever you want from here...
- fmt.Printf("%+v", pullRequest)
- }
- }
|