- Handle both JSON and urlencoded requests.
-
Change logging approach.
-vvvv
now gives more helpful output. -
Unbreak
ping
support. -
Allow
%x
and%?
to be used inerrorcmd
. Whencmd
fails, the only clue as to why can be its exit code. Previously, snare had no way of transmitting this information to the user: this commit allows using%x
and%?
(the latter borrowing the similarly named variable from the shell) inerrorcmd
to access this information.
-
Remove hyper/tokio in favour of a simple internal HTTP server. This reduces the number of library dependencies by about 25%.
-
Improve logging: errors, warnings, and information are now differentiated. The
-v
switch increases the logging level. Defaults to "only report errors". -
Default to
/bin/sh
if$SHELL
isn't set when running commands. -
Add a system test suite.
-
Respect
DESTDIR
, and try to pick a more appropriate location for man pages, in installation.
- Update dependencies.
- Update dependencies, including moving from the unmaintained
json
crate toserde_json
.
-
Update dependencies, including a security fix to the regex crate.
-
Remove mention of
reposdir
from the documentation: it is deprecated and using it causes a warning.
- Update dependencies.
- Update dependencies.
- Update many dependencies.
- Update to tokio 1. Also update other dependencies, avoiding warnings over yanked (old) versions of pin-project-lite.
-
Documentation improvements, including more secure examples.
-
Updated dependencies, solving a long-standing slow error leak.
-
The
email
option inmatch
blocks has been replaced by the more genericerrorcmd
. To obtain the previous behaviour:email = "[email protected]";
should be changed to something like:
errorcmd = "cat %s | mailx -s \"snare error: github.com/%o/%r\" [email protected]";
This assumes that the
mailx
command is installed on your machine. As this example may suggest,errorcmd
is much more flexible thanemail
. The syntax oferrorcmd
is the same ascmd
with the addition that%s
is expanded to the path of the failed job's combined stderr / stdout.snare
informs users whose config containsemail
how to update toerrorcmd
to obtain the previous behaviour.
-
After daemonisation, all errors are now sent to syslog (previously a few errors could still be sent to stderr).
-
Fix bug in parsing string escapes, where one character too many was consumed after
\"
. -
Use SIGCHLD to listen for child process exit, so that
snare
does not have to be woken up as often.
-
snare
now only searches for a configuration file at/etc/snare/snare.conf
; as before, you can specify an alternative location forsnare.conf
via the-c
option. -
snare
always changes its CWD to/
(previously CWD was only altered if auser
was specified).
- When a command fails, the email sent now contains the owner and repository name in the subject.
-
The
github
-block levelreposdir
option has been removed. The more flexiblematch
-block levelcmd
has been introduced. In essence:github { reposdir = "/path/to/prps"; ... }
should be changed to:
github { match ".*" { cmd = "/path/to/reposdir/%o/%r %e %j"; } }
snare
informs users whose config containsrepodir
how to update it.
-
snare
now validates input derived from the webhook request so that it is safe to pass to the shell: GitHub owners, repositories, and events are all guaranteed to satisfy the regular expression[a-zA-Z0-9._-]+
and not to be the strings.
or..
. -
String escapes (e.g.
"\""
) are now properly processed (previously they were ignored).
First release.