svn commit: r465583 - in head/www: . webhook webhook/files
Joseph Mingrone
jrm at FreeBSD.org
Mon Mar 26 12:24:20 UTC 2018
Author: jrm
Date: Mon Mar 26 12:24:18 2018
New Revision: 465583
URL: https://svnweb.freebsd.org/changeset/ports/465583
Log:
New port, www/webhook: lightweight incoming webhook server
WWW: https://github.com/adnanh/webhook
PR: 222883
Submitted by: stb at lassitu.de (maintainer)
Differential Revision: https://reviews.freebsd.org/D14853
Added:
head/www/webhook/
head/www/webhook/Makefile (contents, props changed)
head/www/webhook/distinfo (contents, props changed)
head/www/webhook/files/
head/www/webhook/files/webhook.in (contents, props changed)
head/www/webhook/files/webhook.yaml (contents, props changed)
head/www/webhook/pkg-descr (contents, props changed)
Modified:
head/www/Makefile (contents, props changed)
Modified: head/www/Makefile
==============================================================================
--- head/www/Makefile Mon Mar 26 11:58:44 2018 (r465582)
+++ head/www/Makefile Mon Mar 26 12:24:18 2018 (r465583)
@@ -2443,6 +2443,7 @@
SUBDIR += webfs
SUBDIR += webgo
SUBDIR += webgrind
+ SUBDIR += webhook
SUBDIR += webinject
SUBDIR += webkit-gtk2
SUBDIR += webkit-gtk3
Added: head/www/webhook/Makefile
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/webhook/Makefile Mon Mar 26 12:24:18 2018 (r465583)
@@ -0,0 +1,35 @@
+# $FreeBSD$
+
+PORTNAME= webhook
+PORTVERSION= 2.6.8
+CATEGORIES= www
+
+MAINTAINER= stb at lassitu.de
+COMMENT= Easily create HTTP endpoints (hooks) to execute shell commands
+
+LICENSE= APACHE20 BSD3CLAUSE MIT
+LICENSE_COMB= multi
+
+USES= go
+GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME}
+USE_GITHUB= yes
+GH_ACCOUNT= adnanh
+USE_RC_SUBR= webhook
+
+PLIST_FILES= "@sample etc/webhook.yaml.sample" sbin/webhook
+
+.include <bsd.port.options.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} >= 1100513
+DAEMONARGS= -S -l \$${webhook_facility} -s \$${webhook_priority} -t \$${name}
+.else
+DAEMONARGS= -f
+.endif
+
+SUB_LIST+= DAEMONARGS="${DAEMONARGS}"
+
+do-install:
+ ${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/${PORTNAME} ${STAGEDIR}${PREFIX}/sbin
+ ${INSTALL_DATA} ${FILESDIR}/webhook.yaml ${STAGEDIR}${PREFIX}/etc/webhook.yaml.sample
+
+.include <bsd.port.mk>
Added: head/www/webhook/distinfo
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/webhook/distinfo Mon Mar 26 12:24:18 2018 (r465583)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1513967412
+SHA256 (adnanh-webhook-2.6.8_GH0.tar.gz) = 1b92f2958a25d363c9d1c498ab8317d36348a24397b1cb27c002181e3d6df4f0
+SIZE (adnanh-webhook-2.6.8_GH0.tar.gz) = 822195
Added: head/www/webhook/files/webhook.in
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/webhook/files/webhook.in Mon Mar 26 12:24:18 2018 (r465583)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# $FreeBSD$
+
+# PROVIDE: webhook
+# REQUIRE: NETWORKING SYSLOG
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable webhook:
+#
+# webhook_enable="YES"
+
+. /etc/rc.subr
+
+desc="webhook daemon"
+name=webhook
+rcvar=webhook_enable
+
+load_rc_config $name
+
+: ${webhook_conf:=%%PREFIX%%/etc/webhook.yaml}
+: ${webhook_enable:=NO}
+: ${webhook_facility:=daemon}
+: ${webhook_priority:=debug}
+: ${webhook_user:=nobody}
+
+pidfile=/var/run/${name}.pid
+extra_commands=reload
+sig_reload=USR1
+
+procname=%%PREFIX%%/sbin/${name}
+command=/usr/sbin/daemon
+command_args="%%DAEMONARGS%% -p ${pidfile} ${procname} \
+ -hooks ${webhook_conf} ${webhook_options}"
+
+start_precmd="install -o ${webhook_user} /dev/null ${pidfile}"
+reload_cmd="pkill -SIGUSR1-U ${webhook_user} -F {pidfile} ${procname}"
+
+run_rc_command "$1"
Added: head/www/webhook/files/webhook.yaml
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/webhook/files/webhook.yaml Mon Mar 26 12:24:18 2018 (r465583)
@@ -0,0 +1,66 @@
+---
+# See https://github.com/adnanh/webhook/wiki for further information on this
+# file and its options. Instead of YAML, you can also define your
+# configuration as JSON. We've picked YAML for these examples because it
+# supports comments, whereas JSON does not.
+#
+# In the default configuration, webhook runs as user nobody. Depending on
+# the actions you want your webhooks to take, you might want to run it as
+# user root. Set the rc.conf(5) variable webhook_user to the desired user,
+# and restart webhook.
+
+# An example for a simple webhook you can call from a browser or with
+# wget(1) or curl(1):
+# curl -v 'localhost:9000/hooks/samplewebhook?secret=geheim'
+- id: samplewebhook
+ execute-command: /usr/bin/logger
+ pass-arguments-to-command:
+ - source: string
+ name: '-p'
+ - source: string
+ name: 'daemon.notice'
+ - source: string
+ name: '-t'
+ - source: string
+ name: 'samplewebhook'
+ - source: string
+ name: 'Sample webhook has been invoked. User Agent:'
+ - source: header
+ name: 'user-agent'
+ response-message: |
+ Example webhook executed
+ trigger-rule-mismatch-http-response-code: 400
+ trigger-rule:
+ match:
+ type: value
+ value: geheim
+ parameter:
+ source: url
+ name: secret
+
+# Running an Ansible playbook on pushing to Github, courtesy of Dave
+# Cottlehuber.
+- id: ansible
+ execute-command: "/home/ansible/src/ansible/deploy.sh"
+ command-working-directory: "/home/ansible/src/ansible"
+ 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: .....
+ parameter:
+ source: header
+ name: X-Hub-Signature
+ - match:
+ type: value
+ value: refs/heads/master
+ parameter:
+ source: payload
+ name: ref
Added: head/www/webhook/pkg-descr
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/www/webhook/pkg-descr Mon Mar 26 12:24:18 2018 (r465583)
@@ -0,0 +1,10 @@
+Easily create HTTP endpoints (hooks) to execute shell commands
+
+webhook is a lightweight configurable tool written in Go, that allows you to
+easily create HTTP endpoints (hooks) on your server, which you can use to
+execute configured commands. You can also pass data from the HTTP request
+(such as headers, payload or query variables) to your commands. webhook
+also allows you to specify rules which have to be satisfied in order for the
+hook to be triggered.
+
+WWW: https://github.com/adnanh/webhook
More information about the svn-ports-all
mailing list