)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a6a00326838cae34ceb7bfe82d39eff49328548e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"66e2af55_308b3d0e","updated":"2022-03-21 00:40:07.000000000","message":"Func test is pretty solid, but could use unit tests as well.","commit_id":"d60886b85f4e2bca591bc5f54dd4136550b4a141"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"7cb311d18933a970e0930b3db8828d066aee54c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4919a34c_07344238","updated":"2022-03-23 16:37:07.000000000","message":"This seems great!","commit_id":"d60886b85f4e2bca591bc5f54dd4136550b4a141"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"39563dc77a629e13af4aad3a318f16fa8c542daf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"02de235d_f13e67c4","updated":"2022-03-27 20:22:03.000000000","message":"Thanks for the bug and tests!","commit_id":"1c4acf2d8f7ab5a3170ab958290c5124920a6d1f"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fd37cee02941982a752d97fb9e3d3c5748e50ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"736d1cce_375c0af3","updated":"2022-03-25 09:50:51.000000000","message":"added a unit test and link to a bug report","commit_id":"1c4acf2d8f7ab5a3170ab958290c5124920a6d1f"}],"swift/common/middleware/s3api/controllers/multi_upload.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a6a00326838cae34ceb7bfe82d39eff49328548e","unresolved":true,"context_lines":[{"line_number":653,"context_line":"            if _key.startswith(\u0027x-amz-meta-\u0027):"},{"line_number":654,"context_line":"                headers[\u0027x-object-meta-\u0027 + _key[11:]] \u003d val"},{"line_number":655,"context_line":"            elif _key in (\u0027content-encoding\u0027, \u0027content-language\u0027,"},{"line_number":656,"context_line":"                          \u0027content-disposition\u0027, \u0027expires\u0027, \u0027cache-control\u0027):"},{"line_number":657,"context_line":"                headers[key] \u003d val"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        hct_header \u003d sysmeta_header(\u0027object\u0027, \u0027has-content-type\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aedd733_b01708e7","line":656,"updated":"2022-03-21 00:40:07.000000000","message":"Pull this (or the header matching more generally) out.","commit_id":"d60886b85f4e2bca591bc5f54dd4136550b4a141"}],"test/functional/s3api/test_multi_upload.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"a6a00326838cae34ceb7bfe82d39eff49328548e","unresolved":true,"context_lines":[{"line_number":116,"context_line":"        keys \u003d [u\u0027obj1\\N{SNOWMAN}\u0027, u\u0027obj2\\N{SNOWMAN}\u0027, \u0027obj3\u0027]"},{"line_number":117,"context_line":"        bad_content_md5 \u003d base64.b64encode(b\u0027a\u0027 * 16).strip().decode(\u0027ascii\u0027)"},{"line_number":118,"context_line":"        headers \u003d [{\u0027Content-Type\u0027: \u0027foo/bar\u0027, \u0027x-amz-meta-baz\u0027: \u0027quux\u0027,"},{"line_number":119,"context_line":"                    \u0027Content-Encoding\u0027: \u0027gzip\u0027, \u0027Content-Language\u0027: \u0027en-US\u0027,"},{"line_number":120,"context_line":"                    \u0027Expires\u0027: \u0027Thu, 01 Dec 1994 16:00:00 GMT\u0027,"},{"line_number":121,"context_line":"                    \u0027Cache-Control\u0027: \u0027no-cache\u0027,"},{"line_number":122,"context_line":"                    \u0027Content-Disposition\u0027: \u0027attachment\u0027},"}],"source_content_type":"text/x-python","patch_set":1,"id":"04b666b9_8d834ebc","line":119,"range":{"start_line":119,"start_character":21,"end_line":119,"end_character":45},"updated":"2022-03-21 00:40:07.000000000","message":"This was the one users complained about; ought to write up a proper bug.","commit_id":"d60886b85f4e2bca591bc5f54dd4136550b4a141"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"2fd37cee02941982a752d97fb9e3d3c5748e50ab","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        keys \u003d [u\u0027obj1\\N{SNOWMAN}\u0027, u\u0027obj2\\N{SNOWMAN}\u0027, \u0027obj3\u0027]"},{"line_number":117,"context_line":"        bad_content_md5 \u003d base64.b64encode(b\u0027a\u0027 * 16).strip().decode(\u0027ascii\u0027)"},{"line_number":118,"context_line":"        headers \u003d [{\u0027Content-Type\u0027: \u0027foo/bar\u0027, \u0027x-amz-meta-baz\u0027: \u0027quux\u0027,"},{"line_number":119,"context_line":"                    \u0027Content-Encoding\u0027: \u0027gzip\u0027, \u0027Content-Language\u0027: \u0027en-US\u0027,"},{"line_number":120,"context_line":"                    \u0027Expires\u0027: \u0027Thu, 01 Dec 1994 16:00:00 GMT\u0027,"},{"line_number":121,"context_line":"                    \u0027Cache-Control\u0027: \u0027no-cache\u0027,"},{"line_number":122,"context_line":"                    \u0027Content-Disposition\u0027: \u0027attachment\u0027},"}],"source_content_type":"text/x-python","patch_set":1,"id":"c5755ade_38bb1bbd","line":119,"range":{"start_line":119,"start_character":21,"end_line":119,"end_character":45},"in_reply_to":"04b666b9_8d834ebc","updated":"2022-03-25 09:50:51.000000000","message":"Done https://bugs.launchpad.net/swift/+bug/1966396","commit_id":"d60886b85f4e2bca591bc5f54dd4136550b4a141"}],"test/unit/common/middleware/s3api/test_multi_upload.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"39563dc77a629e13af4aad3a318f16fa8c542daf","unresolved":true,"context_lines":[{"line_number":1021,"context_line":"                            swob.HTTPOk, headers, None)"},{"line_number":1022,"context_line":"        self._do_test_object_multipart_upload_complete()"},{"line_number":1023,"context_line":"        _, _, headers \u003d self.swift.calls_with_headers[-2]"},{"line_number":1024,"context_line":"        self.assertEqual(\u0027gzip\u0027, headers.get(\u0027Content-Encoding\u0027))"},{"line_number":1025,"context_line":"        self.assertEqual(\u0027de-DE\u0027, headers.get(\u0027Content-Language\u0027))"},{"line_number":1026,"context_line":"        self.assertEqual(\u0027attachment\u0027, headers.get(\u0027Content-Disposition\u0027))"},{"line_number":1027,"context_line":"        self.assertEqual(\u0027Fri, 25 Mar 2022 09:34:00 GMT\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"efdb8dd1_86004287","line":1024,"updated":"2022-03-27 20:22:03.000000000","message":"👍 Pops here without the fix.","commit_id":"1c4acf2d8f7ab5a3170ab958290c5124920a6d1f"}]}
