snix/web/panettone/src/packages.lisp
Griffin Smith db62866d82 feat(web/panettone): Noping issue authors' usernames
When sending irc notifications, insert a zero-width space after the
first character of the username of the author of issues, to prevent that
user from receiving a ping.

Fixes: b/95
Change-Id: Ibcacb45129b2cb99b587744eb61f4f1dbc0060d6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/2693
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-03-28 17:07:01 +00:00

63 lines
1.9 KiB
Common Lisp

(defpackage panettone.util
(:use :cl :klatre)
(:import-from :alexandria :when-let)
(:export :integer-env))
(defpackage panettone.css
(:use :cl :lass)
(:export :styles))
(defpackage panettone.inline-markdown
(:use :cl)
(:import-from :alexandria :define-constant)
(:export :render-inline-markdown))
(defpackage panettone.irc
(:nicknames :irc)
(:use :cl :usocket)
(:export :noping :send-irc-notification))
(defpackage :panettone.authentication
(:nicknames :authn)
(:use :cl :panettone.util :klatre)
(:import-from :defclass-std :defclass/std)
(:import-from :alexandria :when-let :with-gensyms)
(:export
:*user* :*ldap*
:user :cn :dn :mail :displayname
:connect-ldap :find-user :find-user-by-dn :authenticate-user))
(defpackage panettone.model
(:nicknames :model)
(:use :cl :panettone.util :klatre :postmodern :iterate)
(:import-from :alexandria :if-let :when-let :define-constant)
(:export
:connect-postgres :ddl/init
:issue :issue-comment :issue-event
:id :subject :body :author-dn :issue-id :status :created-at :acting-user-dn
:field :previous-value :new-value
:get-issue :issue-exists-p :list-issues :create-issue :set-issue-status
:update-issue :delete-issue :issue-not-found
:issue-events
:issue-comments :num-comments :create-issue-comment))
(defpackage panettone
(:use :cl :klatre :easy-routes :iterate
:panettone.util
:panettone.authentication
:panettone.inline-markdown)
(:import-from :defclass-std :defclass/std)
(:import-from :alexandria :if-let :when-let :switch :alist-hash-table)
(:import-from :cl-ppcre :split)
(:import-from
:panettone.model
:id :subject :body :author-dn :issue-id :status :created-at
:field :previous-value :new-value :acting-user-dn
:issue-comments :num-comments :issue-events)
(:import-from :panettone.irc :send-irc-notification)
(:shadow :next)
(:export :start-pannetone :config :main))