Commits
- Commit:
6e1b28b643862111cb5b8b916fef8249b1b36c97
- From:
- Omar Polo <op@omarpolo.com>
- Date:
improve the gotd-secrets.conf syntax
don't reuse the username as the label since it makes impossible to have
multiple entries with the same username.
ok stsp@
- Commit:
5fb267cb9e3ad437bb94f4fd9ecbf399028c76f7
- From:
- Omar Polo <op@omarpolo.com>
- Date:
initial gotd-secrets.conf implementation
This moves the handling of the secrets outside gotd.conf. There
will be a few changes to this, committing it as-is to continue
hacking in tree.
ok stsp@
- Commit:
730c805cb1db6162f9a896258aada12de07ccd59
- From:
- Omar Polo <op@omarpolo.com>
- Date:
rename ibuf -> imsgbuf
- Commit:
d50b6001c5f5f106e0e5b148bb72fe06f2c9bc78
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotd: unset notify user/pass too for symmetry
- Commit:
bd84be8a1a59cfed38bb44a3d921b3b16ffa6469
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add support for HMAC digests to gotd HTTP notifications
Works similar to how several Git forges authenticate their webhooks.
Feature requested by dch@freebsd.
Help from tb@ regarding which libcrypto calls to use, thanks!
ok op@ (with some follow-up tweaks suggested)
- Commit:
1b1a386df9068b7cb3ceb8a67d88ccd24f5b2deb
- From:
- Omar Polo <op@omarpolo.com>
- Date:
gotd: use a struct got_object_id instead of an hash buffer
ok stsp@
- Commit:
eec627068f6ed6729b1a075b6052d0e076367838
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
fix empty notification messages with multiple gotd notification targets
When multiple notification targets are configured only the first target
received notification message content. The subsequent targets would read
EOF when trying to read the content. Fix this issue and add regression
test coverage for it, exercising existing test code with a gotd.conf file
which contains two notification targets.
- Commit:
d36998aec867c8134466eccfe048dc8671eecca5
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
expose authenticated gotd user account in HTTP notifications
ok op@
- Commit:
93b39c2f4a792f8a83e7621425edbd48f0c16854
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
fix an fd leak in gotd's notify process
This leak resulted in the gotd notify process spinning on CPU in
an imsg_read() -> EAGAIN loop once it ran out of file descriptors.
- Commit:
9a8d74891980ef72c6e4bb2f7d377738b3308d0f
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
revert part of previous commit; the parent process is not ephemeral
pointed out by op@
- Commit:
1bd35332a599d65566a5fab8c0ff0eb6201812ff
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
prevent gotd notification process from exiting due to EPIPE
Ephermeral processes on the other end of a pipe might decide to exit
which results in EPIPE when writing. This is not a fatal error but is
somewhat expected during normal operation (at least until we improve
the inter-process communication about notifications).
- Commit:
939d3016601d8c21e69a605f10838024335f3b1a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got-notify-http: use a UNIX timestamp for the date
Was suggested by Lucas some time ago. ok stsp@ with a tweak in the
manual.
- Commit:
050c0b8ca3bc56e34b304d886ed11ec58badadf2
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got-notify-http: implement basic authentication
ok stsp
- Commit:
c1003102a22a77d068a14f9ffa7877f67c28e95d
- From:
- Omar Polo <op@omarpolo.com>
- Date:
got-notify-http: add the repository name in the json
ok stsp
- Commit:
5565365ce71d431c522f98b121706b13c4bf2d22
- From:
- Omar Polo <op@omarpolo.com>
- Date:
add got-notify-http
ok stsp@
- Commit:
54dbd95c889dfcd42c499f19d3af056f2a706791
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fmt
- Commit:
e8d451cc39fa03a3fd56b95b86c820491d399550
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
display process title in syslog when a gotd child process exits
- Commit:
ba97b2d7ec97e54a025a39e04c0fd59fdd54a57b
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add initial support for commit notifications to gotd(8)
At present only email notifications are implemented.
Code for HTTP notifications is not yet finished, hence HTTP-related
documentation remains hidden for now.
This adds a new 'notify' process which has an "exec" pledge. It runs
helper programs which implement the notification transport layer,
such as got-notify-email which speaks SMTP. This design avoids having
to link all of gotd with network libraries and related crypto libraries.
Notification content is generated by the 'repo_write' process. Commit log
messages and diffstats are written to a file which the 'notify' process
will pass on to its helpers on stdin. The default output looks similar
to 'got log -d'. If too many new commits are present the output looks
similar to 'got log -s' instead. Tags always look like 'got tag -l'.
The session process coordinates generation of notifications. It maintains
a notification queue which holds one notification per updated reference,
and passes notification requests from this queue to the 'repo_write'
process for notification content creation and then to the 'notify'
process for notification delivery.
Only one notification can be in flight at a time to avoid file descriptor
starvation if many references get updated in a single client session.
ok op@