Use the github.com/ghodss/yaml library to unserialize webhooks.

This supports both JSON and YAML seamlessly, providing for an easier human
parseable format on disk.
This commit is contained in:
Will Rouesnel 2017-06-12 19:31:50 +10:00
parent ccd28908db
commit 2f1ea098c0
2 changed files with 31 additions and 1 deletions

View file

@ -15,6 +15,8 @@ import (
"regexp" "regexp"
"strconv" "strconv"
"strings" "strings"
"github.com/ghodss/yaml"
) )
// Constants used to specify the parameter source // Constants used to specify the parameter source
@ -503,7 +505,7 @@ func (h *Hooks) LoadFromFile(path string) error {
return e return e
} }
e = json.Unmarshal(file, h) e = yaml.Unmarshal(file, h)
return e return e
} }

28
hooks.yaml.example Normal file
View file

@ -0,0 +1,28 @@
- id: webhook
execute-command: /home/adnan/redeploy-go-webhook.sh
command-working-directory: /home/adnan/go
response-message: I got the payload!
response-headers:
- name: Access-Control-Allow-Origin
value: '*'
pass-arguments-to-command:
- source: payload
name: head_commit.id
- source: payload
name: pusher.name
- source: payload
name: pusher.email
trigger-rule:
and:
- match:
type: payload-hash-sha1
secret: mysecret
parameter:
source: header
name: X-Hub-Signature
- match:
type: value
value: refs/heads/master
parameter:
source: payload
name: ref