Two issues are addressed in this commit: 1. Instead of only sending the predefined environment arguments, this commit appends the arguments to the existing OS environment. Fixes #53. 2. If an argument is not found in the payload, allow the command to run and pass in an empty string as a placeholder. Fixes #54. Additionally, I replaced `hook.ErrInvalidPayloadSignature` with a new `SignatureError` type so that we can embed the signature in the error.
140 lines
2.8 KiB
Cheetah
140 lines
2.8 KiB
Cheetah
[
|
|
{
|
|
"id": "github",
|
|
"execute-command": "{{ .Hookecho }}",
|
|
"command-working-directory": "/",
|
|
"include-command-output-in-response": true,
|
|
"pass-environment-to-command":
|
|
[
|
|
{
|
|
"source": "payload",
|
|
"name": "head_commit.timestamp"
|
|
}
|
|
],
|
|
"pass-arguments-to-command":
|
|
[
|
|
{
|
|
"source": "payload",
|
|
"name": "head_commit.id"
|
|
},
|
|
{
|
|
"source": "payload",
|
|
"name": "head_commit.author.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"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "bitbucket",
|
|
"execute-command": "{{ .Hookecho }}",
|
|
"command-working-directory": "/",
|
|
"include-command-output-in-response": true,
|
|
"response-message": "success",
|
|
"parse-parameters-as-json": [
|
|
{
|
|
"source": "payload",
|
|
"name": "payload"
|
|
}
|
|
],
|
|
"trigger-rule": {
|
|
"and": [
|
|
{
|
|
"match": {
|
|
"type": "value",
|
|
"parameter": {
|
|
"source": "payload",
|
|
"name": "payload.canon_url"
|
|
},
|
|
"value": "https://bitbucket.org"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"type": "value",
|
|
"parameter": {
|
|
"source": "payload",
|
|
"name": "payload.repository.absolute_url"
|
|
},
|
|
"value": "/webhook/testing/"
|
|
}
|
|
},
|
|
{
|
|
"match": {
|
|
"type": "value",
|
|
"parameter": {
|
|
"source": "payload",
|
|
"name": "payload.commits.0.branch"
|
|
},
|
|
"value": "master"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "gitlab",
|
|
"execute-command": "{{ .Hookecho }}",
|
|
"command-working-directory": "/",
|
|
"response-message": "success",
|
|
"include-command-output-in-response": true,
|
|
"pass-arguments-to-command":
|
|
[
|
|
{
|
|
"source": "payload",
|
|
"name": "commits.0.id"
|
|
},
|
|
{
|
|
"source": "payload",
|
|
"name": "user_name"
|
|
},
|
|
{
|
|
"source": "payload",
|
|
"name": "user_email"
|
|
}
|
|
],
|
|
"trigger-rule":
|
|
{
|
|
"match":
|
|
{
|
|
"type": "value",
|
|
"value": "refs/heads/master",
|
|
"parameter":
|
|
{
|
|
"source": "payload",
|
|
"name": "ref"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
|