Pipeline entry point via HTTP end point. Accepts POST payloads which are
automatically packaged into expected payload format and injected into the
pipeline.
This webhook service is built using the Jackal HttpApi utility. It can provide
multiple end points and configuration is isolated to a single entry:
{
"jackal": {
"http_hook": {
"bind": "0.0.0.0",
"port": 9090,
"ssl": {
"cert": "/path/to/cert",
"key": "/path/to/key"
},
"authorization": {
"allowed_origins": [],
"htpasswd": "/path/to/file",
"credentials": {
USER: PASS
},
"valid_on": "any" / "all"
}
}
}
}The newly created payload can have its name set via configuration:
{
"jackal": {
"webhook": {
"job_name": JOB_NAME
}
}
}The web hook will accept POST requests to the given path:
/VERSION/ACTION[/EXTRA]
VERSIONregex format:v[\d]+ACTIONregex format:[A-Za-z0-9-_]+EXTRAremaining string
This will result in a new payload injected into the pipeline and
sent to the configured output source. The structure of the payload:
{
"name": JOB_NAME_OR_NAMESPACE,
"data": {
ACTION: REQUEST_BODY,
"webhook": {
"version": VERSION,
"action": ACTION,
"path_extra": EXTRA,
"headers": HTTP_HEADERS,
"query": QUERY_PARAMETERS
}
}
}- Repository: https://github.com/carnivore-rb/jackal-webhook
- IRC: Freenode @ #carnivore