)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"60533aa1e6785a555be5c12b5d3cdbd19b9c3e9e","unresolved":true,"context_lines":[{"line_number":9,"context_line":"When a user posts a comment on an issue, send email"},{"line_number":10,"context_line":"notifications (respecting the enable-email-notifications setting) to the"},{"line_number":11,"context_line":"author of that issue and all the other users who have commented on that"},{"line_number":12,"context_line":"issue. Since smtp is slow, this happens in a background thread."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ic00c265deab1030d9ba64c29c9f56314dd179141"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"561a68dd_0d6777ef","line":12,"range":{"start_line":12,"start_character":7,"end_line":12,"end_character":25},"updated":"2021-04-03 19:30:10.000000000","message":"technically it\u0027s because it blocks on the OAuth \u0026 Gmail API stuff going on (the relay doesn\u0027t speak SMTP to Gmail)","commit_id":"de566bf94ee74cc64217ba22998ce38a55a62653"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"cf7624690d986f7565290911df55cabc1d58ea19","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When a user posts a comment on an issue, send email"},{"line_number":10,"context_line":"notifications (respecting the enable-email-notifications setting) to the"},{"line_number":11,"context_line":"author of that issue and all the other users who have commented on that"},{"line_number":12,"context_line":"issue. Since smtp is slow, this happens in a background thread."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ic00c265deab1030d9ba64c29c9f56314dd179141"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"60d97828_dfb077d5","line":12,"range":{"start_line":12,"start_character":7,"end_line":12,"end_character":25},"in_reply_to":"561a68dd_0d6777ef","updated":"2021-04-03 20:05:03.000000000","message":"Done","commit_id":"de566bf94ee74cc64217ba22998ce38a55a62653"}],"web/panettone/default.nix":[{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"8431ce0f2f49f8c717a7e8756d097da727ada343","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  name \u003d \"panettone\";"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  deps \u003d with depot.third_party.lisp; ["},{"line_number":7,"context_line":"    bordeaux-threads"},{"line_number":8,"context_line":"    cl-json"},{"line_number":9,"context_line":"    cl-ppcre"},{"line_number":10,"context_line":"    cl-smtp"}],"source_content_type":"text/x-nix","patch_set":4,"id":"1d35c279_42be71a5","line":7,"updated":"2021-04-03 20:38:35.000000000","message":"This is genuine question: Now that we have bordeaux-threads can be redo the join-thread code in `panettone.lisp` in a nicer, more portable way? Probably still have to search for the thread name which is a bummer.","commit_id":"b230e3315bff0996b19f034eadb024e8a2a6f997"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"5cb0c1e5255ea49868bb1bb9a9dfed7e3fb02068","unresolved":false,"context_lines":[{"line_number":4,"context_line":"  name \u003d \"panettone\";"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"  deps \u003d with depot.third_party.lisp; ["},{"line_number":7,"context_line":"    bordeaux-threads"},{"line_number":8,"context_line":"    cl-json"},{"line_number":9,"context_line":"    cl-ppcre"},{"line_number":10,"context_line":"    cl-smtp"}],"source_content_type":"text/x-nix","patch_set":4,"id":"044fa7e9_94551b09","line":7,"in_reply_to":"1d35c279_42be71a5","updated":"2021-04-04 14:11:54.000000000","message":"Potentially - I don\u0027t actually understand that code super well, it just came from some code tazjin had written and I stole it verbatim","commit_id":"b230e3315bff0996b19f034eadb024e8a2a6f997"}],"web/panettone/src/panettone.lisp":[{"author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"change_message_id":"8431ce0f2f49f8c717a7e8756d097da727ada343","unresolved":true,"context_lines":[{"line_number":521,"context_line":"         (model:make-thread"},{"line_number":522,"context_line":"          (lambda ()"},{"line_number":523,"context_line":"            (let ((issue (model:get-issue id)))"},{"line_number":524,"context_line":"              (dolist (user-dn (remove-duplicates"},{"line_number":525,"context_line":"                                (cons (author-dn issue)"},{"line_number":526,"context_line":"                                      (model:issue-commenter-dns id))"},{"line_number":527,"context_line":"                                :test #\u0027equal))"}],"source_content_type":"text/x-common-lisp","patch_set":4,"id":"d7b63f99_fceede84","line":524,"updated":"2021-04-03 20:38:35.000000000","message":"Slight optimization could be to use `adjoin` here since `issue-commenter-dns` already only has unique members (because of `:distinct`), so we only need to check if the issue author has commented or not.","commit_id":"b230e3315bff0996b19f034eadb024e8a2a6f997"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"5cb0c1e5255ea49868bb1bb9a9dfed7e3fb02068","unresolved":false,"context_lines":[{"line_number":521,"context_line":"         (model:make-thread"},{"line_number":522,"context_line":"          (lambda ()"},{"line_number":523,"context_line":"            (let ((issue (model:get-issue id)))"},{"line_number":524,"context_line":"              (dolist (user-dn (remove-duplicates"},{"line_number":525,"context_line":"                                (cons (author-dn issue)"},{"line_number":526,"context_line":"                                      (model:issue-commenter-dns id))"},{"line_number":527,"context_line":"                                :test #\u0027equal))"}],"source_content_type":"text/x-common-lisp","patch_set":4,"id":"4ce031b1_32947698","line":524,"in_reply_to":"d7b63f99_fceede84","updated":"2021-04-04 14:11:54.000000000","message":"Done in CL/2807","commit_id":"b230e3315bff0996b19f034eadb024e8a2a6f997"}]}
