feat(panettone): announce newly created issues using irccat

- The new PANETTONE.IRC package contains the SEND-IRC-NOTIFICATION function,
  which opens a new TCP socket to irccat (if it's running and configured) in
  order to announce the creation of new issues.
- The IRCCATHOST and IRCCATPORT environment variables must be set for this to
  work.
- Additionally, the ISSUECHANNEL environment variable may be used to direct
  announcements at a given channel (otherwise it'll just use the first one).

Change-Id: I429a66f24d0f80ed10db173d6af7105fb1d3d023
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2077
Tested-by: BuildkiteCI
Reviewed-by: glittershark <grfn@gws.fyi>
This commit is contained in:
eta 2020-11-08 18:38:19 +00:00
parent 1442c5c8ac
commit 2e2bdf9c6c
4 changed files with 38 additions and 4 deletions

View file

@ -450,10 +450,14 @@
(render/issue-form
(make-instance 'model:issue :subject subject :body body)
"Subject is required")
(progn
(model:create-issue :subject subject
:body body
:author-dn (dn *user*))
(let ((issue
(model:create-issue :subject subject
:body body
:author-dn (dn *user*))))
(send-irc-notification (format nil "b/~A: \"~A\" opened by ~A - https://b.tvl.fyi/issues/~A"
(issue-id issue) subject (dn *user*)
(issue-id issue))
:channel (uiop:getenvp "ISSUECHANNEL"))
(hunchentoot:redirect "/"))))
(defroute show-issue