)]}'
{"docker/ceph/ceph-mon/fetch_ceph_keys.py":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"420f217dcc53720f775f5b06bad2a31f7123d831","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    if type(msg) is not dict:"},{"line_number":35,"context_line":"        msg \u003d {\u0027msg\u0027: str(msg)}"},{"line_number":36,"context_line":"    msg.update({\u0027failed\u0027: failed, \u0027changed\u0027: changed})"},{"line_number":37,"context_line":"    print(json.dumps(str(msg)))"},{"line_number":38,"context_line":"    sys.exit()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_1dc3f539","line":37,"updated":"2019-10-15 07:35:12.000000000","message":"but msg is a dict","commit_id":"e2f82c0f1c05c4aae69a7178729a3748181e78be"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"ea1c30df9cb9a815280138643bb3340a26408df3","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    if type(msg) is not dict:"},{"line_number":35,"context_line":"        msg \u003d {\u0027msg\u0027: str(msg)}"},{"line_number":36,"context_line":"    msg.update({\u0027failed\u0027: failed, \u0027changed\u0027: changed})"},{"line_number":37,"context_line":"    print(json.dumps(str(msg)))"},{"line_number":38,"context_line":"    sys.exit()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_bd5c217d","line":37,"in_reply_to":"3fa7e38b_1dc3f539","updated":"2019-10-15 07:45:59.000000000","message":"dict with b64 encoded bytes inside... json serializes object after object and vomits that it can\u0027t serialise bytes object...","commit_id":"e2f82c0f1c05c4aae69a7178729a3748181e78be"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"dad593a64714b8a803c34d31c6a32e963765eb1a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"class Base64Encoder(json.JSONEncoder):"},{"line_number":33,"context_line":"    def default(self, o):"},{"line_number":34,"context_line":"        if isinstance(o, bytes):"},{"line_number":35,"context_line":"            return base64.b64encode(o).decode()"},{"line_number":36,"context_line":"        return json.JSONEncoder.default(self, o)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def json_exit(msg\u003dNone, failed\u003dFalse, changed\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c30ede8a","line":35,"range":{"start_line":35,"start_character":19,"end_line":35,"end_character":47},"updated":"2019-10-15 10:07:45.000000000","message":"why not just str?","commit_id":"dc23826bba076b537ec7fddcd0cba674c47b8f1a"},{"author":{"_account_id":24072,"name":"Marcin Juszkiewicz","email":"mjuszkiewicz@redhat.com","username":"hrw"},"change_message_id":"dd16d270715206e542d0c7d89e86a2ee1c082de6","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    if type(msg) is not dict:"},{"line_number":40,"context_line":"        msg \u003d {\u0027msg\u0027: str(msg)}"},{"line_number":41,"context_line":"    msg.update({\u0027failed\u0027: failed, \u0027changed\u0027: changed})"},{"line_number":42,"context_line":"    print(json.dumps(msg,cls\u003dBase64Encoder))"},{"line_number":43,"context_line":"    sys.exit()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_75cc64ba","line":42,"range":{"start_line":42,"start_character":24,"end_line":42,"end_character":25},"updated":"2019-10-16 15:42:20.000000000","message":"space after comma please","commit_id":"96d70ae8ae796507320137e8ea52363f97afe375"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"83201175c5de9cb315e9824d09545e5c20f8f365","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        raw_data \u003d f.read()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    # TODO(mnasiadka): Remove sha1 in U"},{"line_number":53,"context_line":"    return {\u0027content\u0027: (base64.b64encode(zlib.compress(raw_data))).decode(),"},{"line_number":54,"context_line":"            \u0027sha1\u0027: hashlib.sha1(raw_data).hexdigest(),"},{"line_number":55,"context_line":"            \u0027sha256\u0027: hashlib.sha256(raw_data).hexdigest(),"},{"line_number":56,"context_line":"            \u0027filename\u0027: filename}"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_f3f29ae3","line":53,"updated":"2019-10-17 17:11:15.000000000","message":"hmm, but the content is now not encoded - why encode and decode?","commit_id":"577697301f8682293a00a793807687df9d0ce679"}]}
