hookserve

package module
v0.0.0-...-856f856 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2015 License: BSD-3-Clause Imports: 0 Imported by: 0

README

HookServe

http://godoc.org/github.com/phayes/hookserve/hookserve

HookServe is a small golang utility for receiving github webhooks. It's easy to use, flexible, and provides strong security though GitHub's HMAC webhook verification scheme.

server := hookserve.NewServer()
server.Port = 8888
server.Secret = "supersecretcode"
server.GoListenAndServe()

for {
	select {
	case event := <-server.Events:
		fmt.Println(event.Owner + " " + event.Repo + " " + event.Branch + " " + event.Commit)
	default:
		time.Sleep(100)
	}
}

###Command Line Utility

It also comes with a command-line utility that lets you pass webhook push events to other commands.

$ hookserve --port=8888 logger -t PushEvent #log github webhook push event to the system log (/var/log/message) via the logger command

#####Command Line Utility Downloads

#####Building Command Line Utility From Source

sudo apt-get install golang                    # Download go. Alternativly build from source: https://golang.org/doc/install/source
mkdir ~/.gopath && export GOPATH=~/.gopath     # Replace with desired GOPATH
export PATH=$PATH:$GOPATH/bin                  # For convenience, add go's bin dir to your PATH
go get github.com/phayes/hookserve/cmd/hookserve

###Settings up GitHub Webhooks

Setting up webhooks on github is easy. Navigate to github.com/<name>/<repo>/settings/hooks and create a new webhook. Setting up your webhook should look something like this:

Configuring webhooks in github

Documentation

Overview

HookServe is a small golang utility for receiving github webhooks. It's easy to use, flexible, and provides strong security though GitHub's HMAC webhook verification scheme.

server := hookserve.NewServer()
server.Port = 8888
server.Secret = "supersecretcode"
server.GoListenAndServe()

for {
    select {
    case event := <-server.Events:
        fmt.Println(event.Owner + " " + event.Repo + " " + event.Branch + " " + event.Commit)
    default:
        time.Sleep(100)
    }
}

Command Line Utility

It also comes with a command-line utility that lets you pass webhook push events to other commands.

$ hookserve --port=8888 logger -t PushEvent #log github webhook push event to the system log (/var/log/message) via the logger command

Settings up GitHub Webhooks

Setting up webhooks on github is easy. Navigate to `github.com/<name>/<repo>/settings/hooks` and create a new webhook.

Directories

Path Synopsis
HookServe is a small golang utility for receiving github webhooks.
HookServe is a small golang utility for receiving github webhooks.
util

Jump to

Keyboard shortcuts

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