ghwebhook

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2017 License: Apache-2.0 Imports: 12 Imported by: 1

README

GHWebHook

Build Status

Create a Github WebHook in 5 seconds!

Description

  • Default port: 80
  • Default path: /postreceive
  • Default event type: push

Examples

Basic:

package main

import (
	"log"

	"github.com/google/go-github/github"
	ghw "github.com/ldez/ghwebhook"
)

func main() {

	eventHandlers := ghw.NewEventHandlers().
		OnIssues(func(payload *github.WebHookPayload, event *github.IssuesEvent) {
			go func() {
				log.Println(event.GetAction(), event.Issue)
			}()
		}).
		OnPullRequest(func(payload *github.WebHookPayload, event *github.PullRequestEvent) {
			log.Println(event.GetAction(), event.GetNumber(), event.PullRequest)
		})

	webHook := ghw.NewWebHook(eventHandlers, ghw.WithAllEventTypes)

	err := webHook.ListenAndServe()
	if err != nil {
		log.Fatal(err)
	}
}

Secured WebHook with custom port and path:

package main

import (
	"log"

	"github.com/google/go-github/github"
	ghw "github.com/ldez/ghwebhook"
	"github.com/ldez/ghwebhook/eventtype"
)

func main() {

	eventHandlers := ghw.NewEventHandlers().
		OnIssues(func(payload *github.WebHookPayload, event *github.IssuesEvent) {
			go func() {
				log.Println(event.GetAction(), event.Issue)
			}()
		}).
		OnPullRequest(func(payload *github.WebHookPayload, event *github.PullRequestEvent) {
			log.Println(event.GetAction(), event.GetNumber(), event.PullRequest)
		})

	webhook := ghw.NewWebHook(
		eventHandlers,
		ghw.WithPort(5000),
		ghw.WithPath("/github"),
		ghw.WithSecret("SECRET"),
		ghw.Debug,
		ghw.WithEventTypes(eventtype.Issues, eventtype.PullRequest))

	err := webhook.ListenAndServe()
	if err != nil {
		log.Fatal(err)
	}
}

References

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(server *webHook)

Debug activate debug mode.

func NewEventHandlers

func NewEventHandlers() *eventHandlers

NewEventHandlers create a new event handlers.

func NewWebHook

func NewWebHook(eventHandlers *eventHandlers, options ...serverOption) *webHook

NewWebHook create a new server as a GitHub WebHook.

func WithAllEventTypes

func WithAllEventTypes(server *webHook)

WithEventTypes accept all possible event types.

func WithEventTypes

func WithEventTypes(eventTypes ...string) func(*webHook)

WithEventTypes define accepted event types.

func WithPath

func WithPath(path string) func(*webHook)

WithPath define the HTTP handler path.

func WithPort

func WithPort(port int) func(*webHook)

WithPort define the server port.

func WithSecret

func WithSecret(secret string) func(*webHook)

WithSecret define the GitHub secret.

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL