about summary refs log tree commit diff
path: root/web/panettone/src/panettone.lisp
diff options
context:
space:
mode:
authoreta <eta@theta.eu.org>2020-11-08T18·38+0000
committereta <eta@theta.eu.org>2020-11-08T19·02+0000
commit2e2bdf9c6ce1cd66ba5cfe1a42786a6f486b7969 (patch)
tree7e982ea0754491efd795c3f60b57d4f8c8df057d /web/panettone/src/panettone.lisp
parent1442c5c8ac07a08d279d87e1f0659f7e563da038 (diff)
feat(panettone): announce newly created issues using irccat r/1877
- 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>
Diffstat (limited to 'web/panettone/src/panettone.lisp')
-rw-r--r--web/panettone/src/panettone.lisp12
1 files changed, 8 insertions, 4 deletions
diff --git a/web/panettone/src/panettone.lisp b/web/panettone/src/panettone.lisp
index cef3572214..9135bcf8dd 100644
--- a/web/panettone/src/panettone.lisp
+++ b/web/panettone/src/panettone.lisp
@@ -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