)]}'
{"tests/unit/test_launcher.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ef3ad52f75b37abe8d4361a35c48dee93f783689","unresolved":true,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ImageMocksFixture(ResponsesFixture):"},{"line_number":56,"context_line":"    raw_body \u003d \u0027test raw image\u0027"},{"line_number":57,"context_line":"    raw_sha256 \u003d (\u0027d043e8080c82dbfeca3199a24d5f019\u0027"},{"line_number":58,"context_line":"                  \u00273e66755b5ba62d6b60107a248996a6795\u0027)"},{"line_number":59,"context_line":"    raw_md5sum \u003d \u002778d2d3ff2463bc75c7cc1d38b8df6a6b\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"7321822d_bbe3c50d","line":56,"updated":"2025-07-09 23:10:41.000000000","message":"See my other concern. We may want this raw_body content to be more than 4096 bytes to ensure coverage of the looping.","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6cde8962576ac6971892476999b4a6d7d1e03a97","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ImageMocksFixture(ResponsesFixture):"},{"line_number":56,"context_line":"    raw_body \u003d \u0027test raw image\u0027"},{"line_number":57,"context_line":"    raw_sha256 \u003d (\u0027d043e8080c82dbfeca3199a24d5f019\u0027"},{"line_number":58,"context_line":"                  \u00273e66755b5ba62d6b60107a248996a6795\u0027)"},{"line_number":59,"context_line":"    raw_md5sum \u003d \u002778d2d3ff2463bc75c7cc1d38b8df6a6b\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"5c7dd39e_0e692b2a","line":56,"in_reply_to":"7321822d_bbe3c50d","updated":"2025-07-09 23:22:25.000000000","message":"Done.","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6cde8962576ac6971892476999b4a6d7d1e03a97","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class ImageMocksFixture(ResponsesFixture):"},{"line_number":56,"context_line":"    raw_body \u003d \u0027test raw image\u0027"},{"line_number":57,"context_line":"    raw_sha256 \u003d (\u0027d043e8080c82dbfeca3199a24d5f019\u0027"},{"line_number":58,"context_line":"                  \u00273e66755b5ba62d6b60107a248996a6795\u0027)"},{"line_number":59,"context_line":"    raw_md5sum \u003d \u002778d2d3ff2463bc75c7cc1d38b8df6a6b\u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"78abc46d_cf92b3cc","line":56,"in_reply_to":"7321822d_bbe3c50d","updated":"2025-07-09 23:22:25.000000000","message":"Done.","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"}],"zuul/launcher/server.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ef3ad52f75b37abe8d4361a35c48dee93f783689","unresolved":true,"context_lines":[{"line_number":299,"context_line":"    def _validateChecksum(self, path):"},{"line_number":300,"context_line":"        h \u003d hashlib.sha256()"},{"line_number":301,"context_line":"        with open(path, \u0027rb\u0027) as f:"},{"line_number":302,"context_line":"            h.update(f.read(4096))"},{"line_number":303,"context_line":"        digest \u003d h.hexdigest()"},{"line_number":304,"context_line":"        artifact \u003d self.image_build_artifact"},{"line_number":305,"context_line":"        if digest !\u003d artifact.sha256:"}],"source_content_type":"text/x-python","patch_set":4,"id":"927ca177_754fccbc","line":302,"range":{"start_line":302,"start_character":28,"end_line":302,"end_character":32},"updated":"2025-07-09 23:10:41.000000000","message":"Due to the size limit on the read here don\u0027t we need to do this in a loop until we reach EOF?","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"5e3e0228ffbdb3f9fef56829828da0156e6c6c40","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def _validateChecksum(self, path):"},{"line_number":300,"context_line":"        h \u003d hashlib.sha256()"},{"line_number":301,"context_line":"        with open(path, \u0027rb\u0027) as f:"},{"line_number":302,"context_line":"            h.update(f.read(4096))"},{"line_number":303,"context_line":"        digest \u003d h.hexdigest()"},{"line_number":304,"context_line":"        artifact \u003d self.image_build_artifact"},{"line_number":305,"context_line":"        if digest !\u003d artifact.sha256:"}],"source_content_type":"text/x-python","patch_set":4,"id":"4d241f0f_81389ca4","line":302,"range":{"start_line":302,"start_character":28,"end_line":302,"end_character":32},"in_reply_to":"927ca177_754fccbc","updated":"2025-07-09 23:50:05.000000000","message":"Done","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6cde8962576ac6971892476999b4a6d7d1e03a97","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def _validateChecksum(self, path):"},{"line_number":300,"context_line":"        h \u003d hashlib.sha256()"},{"line_number":301,"context_line":"        with open(path, \u0027rb\u0027) as f:"},{"line_number":302,"context_line":"            h.update(f.read(4096))"},{"line_number":303,"context_line":"        digest \u003d h.hexdigest()"},{"line_number":304,"context_line":"        artifact \u003d self.image_build_artifact"},{"line_number":305,"context_line":"        if digest !\u003d artifact.sha256:"}],"source_content_type":"text/x-python","patch_set":4,"id":"07abfcad_5b1581ff","line":302,"in_reply_to":"927ca177_754fccbc","updated":"2025-07-09 23:22:25.000000000","message":"Yep!","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6cde8962576ac6971892476999b4a6d7d1e03a97","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def _validateChecksum(self, path):"},{"line_number":300,"context_line":"        h \u003d hashlib.sha256()"},{"line_number":301,"context_line":"        with open(path, \u0027rb\u0027) as f:"},{"line_number":302,"context_line":"            h.update(f.read(4096))"},{"line_number":303,"context_line":"        digest \u003d h.hexdigest()"},{"line_number":304,"context_line":"        artifact \u003d self.image_build_artifact"},{"line_number":305,"context_line":"        if digest !\u003d artifact.sha256:"}],"source_content_type":"text/x-python","patch_set":4,"id":"8cbcce03_679a79f8","line":302,"in_reply_to":"927ca177_754fccbc","updated":"2025-07-09 23:22:25.000000000","message":"Yep!","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6cde8962576ac6971892476999b4a6d7d1e03a97","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def _validateChecksum(self, path):"},{"line_number":300,"context_line":"        h \u003d hashlib.sha256()"},{"line_number":301,"context_line":"        with open(path, \u0027rb\u0027) as f:"},{"line_number":302,"context_line":"            h.update(f.read(4096))"},{"line_number":303,"context_line":"        digest \u003d h.hexdigest()"},{"line_number":304,"context_line":"        artifact \u003d self.image_build_artifact"},{"line_number":305,"context_line":"        if digest !\u003d artifact.sha256:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ca1a5bf1_6b7fa53d","line":302,"in_reply_to":"927ca177_754fccbc","updated":"2025-07-09 23:22:25.000000000","message":"Yep!","commit_id":"e69ad0fa5d3a4dab77b1f669e89db127a1b99614"}]}
