)]}'
{"web/panettone/src/model.lisp":[{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"79c3226c490d0623190df164c8781191bce08cdb","unresolved":true,"context_lines":[{"line_number":75,"context_line":"(defmethod cl-postgres:to-sql-string ((kw (eql :closed)))"},{"line_number":76,"context_line":"  (cl-postgres:to-sql-string \"closed\"))"},{"line_number":77,"context_line":"(defmethod cl-postgres:to-sql-string ((ts local-time:timestamp))"},{"line_number":78,"context_line":"  (cl-postgres:to-sql-string"},{"line_number":79,"context_line":"   (local-time:timestamp-to-unix ts)))"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"(defmethod initialize-instance :after"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"a9f87beb_42c6305f","line":78,"range":{"start_line":78,"start_character":6,"end_line":78,"end_character":28},"updated":"2020-08-01 22:04:55.000000000","message":"are we not using timestamps in our schema?","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a42efbadd5f530896a3e5f8079d72395a4e57851","unresolved":false,"context_lines":[{"line_number":75,"context_line":"(defmethod cl-postgres:to-sql-string ((kw (eql :closed)))"},{"line_number":76,"context_line":"  (cl-postgres:to-sql-string \"closed\"))"},{"line_number":77,"context_line":"(defmethod cl-postgres:to-sql-string ((ts local-time:timestamp))"},{"line_number":78,"context_line":"  (cl-postgres:to-sql-string"},{"line_number":79,"context_line":"   (local-time:timestamp-to-unix ts)))"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"(defmethod initialize-instance :after"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"9fe09dad_2e76647d","line":78,"range":{"start_line":78,"start_character":6,"end_line":78,"end_character":28},"in_reply_to":"a9f87beb_42c6305f","updated":"2020-08-02 02:00:46.000000000","message":"we are, this is just what cl-postgres expects to actually input them (for some reason)","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"79c3226c490d0623190df164c8781191bce08cdb","unresolved":true,"context_lines":[{"line_number":296,"context_line":"    (values)))"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"(defun update-issue (issue \u0026rest attrs)"},{"line_number":299,"context_line":"  \"Update the fields of ISSUE with the given ATTRS, which are alternating pairs"},{"line_number":300,"context_line":"of slot and value, and record events for the updates\""},{"line_number":301,"context_line":"  (let ((set-fields"},{"line_number":302,"context_line":"          (iter (for slot in \u0027(subject body))"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"1b687494_85cb4ec2","line":299,"range":{"start_line":299,"start_character":62,"end_line":299,"end_character":79},"updated":"2020-08-01 22:04:55.000000000","message":"maybe: which is a PLIST of [...]?","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a42efbadd5f530896a3e5f8079d72395a4e57851","unresolved":false,"context_lines":[{"line_number":296,"context_line":"    (values)))"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"(defun update-issue (issue \u0026rest attrs)"},{"line_number":299,"context_line":"  \"Update the fields of ISSUE with the given ATTRS, which are alternating pairs"},{"line_number":300,"context_line":"of slot and value, and record events for the updates\""},{"line_number":301,"context_line":"  (let ((set-fields"},{"line_number":302,"context_line":"          (iter (for slot in \u0027(subject body))"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"a9d0dddb_b2f216b9","line":299,"range":{"start_line":299,"start_character":62,"end_line":299,"end_character":79},"in_reply_to":"1b687494_85cb4ec2","updated":"2020-08-02 02:00:46.000000000","message":"I generally only use the ALL-CAPS to document arguments","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"53f9c41870c9d3ff19e5a6ab61adb35aeb9715e2","unresolved":false,"context_lines":[{"line_number":296,"context_line":"    (values)))"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"(defun update-issue (issue \u0026rest attrs)"},{"line_number":299,"context_line":"  \"Update the fields of ISSUE with the given ATTRS, which are alternating pairs"},{"line_number":300,"context_line":"of slot and value, and record events for the updates\""},{"line_number":301,"context_line":"  (let ((set-fields"},{"line_number":302,"context_line":"          (iter (for slot in \u0027(subject body))"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"80863304_cef2c7ed","line":299,"range":{"start_line":299,"start_character":62,"end_line":299,"end_character":79},"in_reply_to":"52233d40_cde81612","updated":"2020-08-02 02:07:37.000000000","message":"ah, yes. agreed and done.","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"fd025ed63d5f99b0ef61fb567f258ac46a5fec5a","unresolved":true,"context_lines":[{"line_number":296,"context_line":"    (values)))"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"(defun update-issue (issue \u0026rest attrs)"},{"line_number":299,"context_line":"  \"Update the fields of ISSUE with the given ATTRS, which are alternating pairs"},{"line_number":300,"context_line":"of slot and value, and record events for the updates\""},{"line_number":301,"context_line":"  (let ((set-fields"},{"line_number":302,"context_line":"          (iter (for slot in \u0027(subject body))"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"52233d40_cde81612","line":299,"range":{"start_line":299,"start_character":62,"end_line":299,"end_character":79},"in_reply_to":"a9d0dddb_b2f216b9","updated":"2020-08-02 02:03:26.000000000","message":"it\u0027s not about the caps, it\u0027s about it being a plist","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"79c3226c490d0623190df164c8781191bce08cdb","unresolved":true,"context_lines":[{"line_number":299,"context_line":"  \"Update the fields of ISSUE with the given ATTRS, which are alternating pairs"},{"line_number":300,"context_line":"of slot and value, and record events for the updates\""},{"line_number":301,"context_line":"  (let ((set-fields"},{"line_number":302,"context_line":"          (iter (for slot in \u0027(subject body))"},{"line_number":303,"context_line":"            (for new-value \u003d (getf attrs slot))"},{"line_number":304,"context_line":"            (appending"},{"line_number":305,"context_line":"             (let ((previous-value (slot-value issue slot)))"},{"line_number":306,"context_line":"               (when (and new-value (not (equalp"},{"line_number":307,"context_line":"                                          new-value"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"0d80a563_28fabb39","line":304,"range":{"start_line":302,"start_character":11,"end_line":304,"end_character":0},"updated":"2020-08-01 22:04:55.000000000","message":"could it be easier to make attrs an alist and iterate over it pairwise?","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a42efbadd5f530896a3e5f8079d72395a4e57851","unresolved":false,"context_lines":[{"line_number":299,"context_line":"  \"Update the fields of ISSUE with the given ATTRS, which are alternating pairs"},{"line_number":300,"context_line":"of slot and value, and record events for the updates\""},{"line_number":301,"context_line":"  (let ((set-fields"},{"line_number":302,"context_line":"          (iter (for slot in \u0027(subject body))"},{"line_number":303,"context_line":"            (for new-value \u003d (getf attrs slot))"},{"line_number":304,"context_line":"            (appending"},{"line_number":305,"context_line":"             (let ((previous-value (slot-value issue slot)))"},{"line_number":306,"context_line":"               (when (and new-value (not (equalp"},{"line_number":307,"context_line":"                                          new-value"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"edd8c918_10a54c57","line":304,"range":{"start_line":302,"start_character":11,"end_line":304,"end_character":0},"in_reply_to":"0d80a563_28fabb39","updated":"2020-08-02 02:00:46.000000000","message":"I\u0027d rather keep closeish to the calling convention of `\u0026keys`","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"change_message_id":"79c3226c490d0623190df164c8781191bce08cdb","unresolved":true,"context_lines":[{"line_number":334,"context_line":" (create-issue :subject \"test\""},{"line_number":335,"context_line":"               :author-dn \"cn\u003dglittershark,ou\u003dusers,dc\u003dtvl,dc\u003dfyi\")"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":" (setq --issue (car (list-issues :status :open)))"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":" (local-time:timestamp-to-unix"},{"line_number":340,"context_line":"  (created-at --issue))"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":" (let ((authn:*user* (make-instance \u0027authn:user"},{"line_number":343,"context_line":"                                    :dn \"cn\u003dglittershark,ou\u003dusers,dc\u003dtvl,dc\u003dfyi\")))"},{"line_number":344,"context_line":"   (update-issue --issue \u0027body \"Test\"))"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":" (let ((attrs `(body \"Test\")))"},{"line_number":347,"context_line":"   (iter (for slot in \u0027(subject body))"},{"line_number":348,"context_line":"     (for new-value \u003d (getf attrs slot))"},{"line_number":349,"context_line":"     (appending"},{"line_number":350,"context_line":"      (when new-value"},{"line_number":351,"context_line":"        (prin1 new-value)"},{"line_number":352,"context_line":"        (list slot new-value)))))"},{"line_number":353,"context_line":" )"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"cf25f367_34d0529d","line":352,"range":{"start_line":337,"start_character":0,"end_line":352,"end_character":33},"updated":"2020-08-01 22:04:55.000000000","message":"should this all be included in the change?","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"},{"author":{"_account_id":1000010,"name":"aspen","email":"root@gws.fyi","username":"aspen"},"change_message_id":"a42efbadd5f530896a3e5f8079d72395a4e57851","unresolved":false,"context_lines":[{"line_number":334,"context_line":" (create-issue :subject \"test\""},{"line_number":335,"context_line":"               :author-dn \"cn\u003dglittershark,ou\u003dusers,dc\u003dtvl,dc\u003dfyi\")"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":" (setq --issue (car (list-issues :status :open)))"},{"line_number":338,"context_line":""},{"line_number":339,"context_line":" (local-time:timestamp-to-unix"},{"line_number":340,"context_line":"  (created-at --issue))"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":" (let ((authn:*user* (make-instance \u0027authn:user"},{"line_number":343,"context_line":"                                    :dn \"cn\u003dglittershark,ou\u003dusers,dc\u003dtvl,dc\u003dfyi\")))"},{"line_number":344,"context_line":"   (update-issue --issue \u0027body \"Test\"))"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":" (let ((attrs `(body \"Test\")))"},{"line_number":347,"context_line":"   (iter (for slot in \u0027(subject body))"},{"line_number":348,"context_line":"     (for new-value \u003d (getf attrs slot))"},{"line_number":349,"context_line":"     (appending"},{"line_number":350,"context_line":"      (when new-value"},{"line_number":351,"context_line":"        (prin1 new-value)"},{"line_number":352,"context_line":"        (list slot new-value)))))"},{"line_number":353,"context_line":" )"}],"source_content_type":"text/x-common-lisp","patch_set":2,"id":"ca9d0ccc_b537081a","line":352,"range":{"start_line":337,"start_character":0,"end_line":352,"end_character":33},"in_reply_to":"cf25f367_34d0529d","updated":"2020-08-02 02:00:46.000000000","message":"Done","commit_id":"355e123c0c771228f4bda4708fb850c640acade8"}]}
