Files
webhooks/_examples/multiple-handlers/main.go
T
2018-07-26 08:54:32 -07:00

52 lines
1.1 KiB
Go

package main
import (
"fmt"
"strconv"
"gopkg.in/go-playground/webhooks.v5"
"gopkg.in/go-playground/webhooks.v5/github"
)
const (
path = "/webhooks"
port = 3016
)
func main() {
hook := github.New(&github.Config{Secret: "MyGitHubSuperSecretSecrect...?"})
hook.RegisterEvents(HandleRelease, github.ReleaseEvent)
hook.RegisterEvents(HandlePullRequest, github.PullRequestEvent)
err := webhooks.Run(hook, ":"+strconv.Itoa(port), path)
if err != nil {
fmt.Println(err)
}
}
// HandleRelease handles GitHub release events
func HandleRelease(payload interface{}, header webhooks.Header) {
fmt.Println("Handling Release")
pl := payload.(github.ReleasePayload)
// only want to compile on full releases
if pl.Release.Draft || pl.Release.Prerelease || pl.Release.TargetCommitish != "master" {
return
}
// Do whatever you want from here...
fmt.Printf("%+v", pl)
}
// HandlePullRequest handles GitHub pull_request events
func HandlePullRequest(payload interface{}, header webhooks.Header) {
fmt.Println("Handling Pull Request")
pl := payload.(github.PullRequestPayload)
// Do whatever you want from here...
fmt.Printf("%+v", pl)
}