)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0d485f587995453906eb4da17ffd6f6cf89e88aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0d8b3a19_97e23c91","updated":"2023-08-21 21:56:25.000000000","message":"I see no reason to hold up the rest of the chain on some docstring changes in tests.","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"9956717468f0d51a2a317e42d9dd31d99e249398","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2fb8f3c6_3a397fe2","updated":"2023-08-18 19:01:17.000000000","message":"The doc string is very efficient at describing the intent behind ref: https://review.opendev.org/c/openstack/swift/+/889785","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f945a4682fe0d4a8aea86ea29b61649cc7a6857c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"0295d21a_129cdd01","updated":"2023-08-18 19:28:21.000000000","message":"i\u0027m torn about updating the doc and restacking the chain - maybe just land it and do another follow up to make the documentation more thorough/explicit?","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"}],"test/unit/common/middleware/helpers.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"88076eca1389aa720ec4d1fade815e5bcb2ec9ea","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    A ``PUT`` request that matches a registered ``PUT`` request will create an"},{"line_number":96,"context_line":"    entry in the ``uploaded`` object cache that is keyed by the received"},{"line_number":97,"context_line":"    request\u0027s path, excluding query string. A subsequent ``GET`` or ``HEAD``"},{"line_number":98,"context_line":"    request that does not match a registered request will match an ``uploaded``"},{"line_number":99,"context_line":"    object based on the ``GET`` or ``HEAD`` request\u0027s path, excluding query"},{"line_number":100,"context_line":"    string."}],"source_content_type":"text/x-python","patch_set":2,"id":"159960e9_5af60c6a","line":97,"range":{"start_line":97,"start_character":19,"end_line":97,"end_character":42},"updated":"2023-08-22 09:52:04.000000000","message":"this is not true until the subsequent https://review.opendev.org/c/openstack/swift/+/891977/2?usp\u003drelated-change commit\n\nI knew there something nagging me about not merging this! NM, the whole chain has merged.","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0d485f587995453906eb4da17ffd6f6cf89e88aa","unresolved":true,"context_lines":[{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    A ``POST`` request whose path, excluding query string, matches an object in"},{"line_number":103,"context_line":"    the ``uploaded`` cache will modify the metadata of the object in the"},{"line_number":104,"context_line":"    ``uploaded`` cache. However, the ``POST`` request must first match a"},{"line_number":105,"context_line":"    registered ``POST`` request."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    Examples:"},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ea509bc9_dcecc92e","line":105,"range":{"start_line":104,"start_character":24,"end_line":105,"end_character":32},"updated":"2023-08-21 21:56:25.000000000","message":"This seems slightly surprising, now that I see it spelled out... like, we\u0027d match out of the uploaded cache just fine on GET/HEAD, specifically **because** we didn\u0027t register it for GET/HEAD.","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"918c6b61cd7020ea18b40dc5dd3758d8291271cf","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"      * received ``GET /v1/a/c/o`` will match registered ``GET /v1/a/c/o``"},{"line_number":110,"context_line":"      * received ``GET /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o``"},{"line_number":111,"context_line":"      * received ``HEAD /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o``"},{"line_number":112,"context_line":"      * received ``GET /v1/a/c/o`` will NOT match registered"},{"line_number":113,"context_line":"        ``GET /v1/a/c/o?x\u003dy``"},{"line_number":114,"context_line":"      * received ``PUT /v1/a/c/o?x\u003dy``, if it matches a registered ``PUT``,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5870c3be_d2227d18","line":111,"updated":"2023-08-18 19:09:00.000000000","message":"This could be refactored from:\n\n* received ``HEAD /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o?x\u003dy``\n\nI mean ofcourse the doctsrings prove its transitively valid but might be nice to be explicit especially with the test seen here, ref: https://review.opendev.org/c/openstack/swift/+/891979/2/test/unit/common/middleware/test_helpers.py","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"b76cdbfebc32e5f1ad5134a74982a097eba5d3b3","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"      * received ``GET /v1/a/c/o`` will match registered ``GET /v1/a/c/o``"},{"line_number":110,"context_line":"      * received ``GET /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o``"},{"line_number":111,"context_line":"      * received ``HEAD /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o``"},{"line_number":112,"context_line":"      * received ``GET /v1/a/c/o`` will NOT match registered"},{"line_number":113,"context_line":"        ``GET /v1/a/c/o?x\u003dy``"},{"line_number":114,"context_line":"      * received ``PUT /v1/a/c/o?x\u003dy``, if it matches a registered ``PUT``,"}],"source_content_type":"text/x-python","patch_set":2,"id":"94e7ccc0_42d196f6","line":111,"in_reply_to":"13f3c3e6_4aee0623","updated":"2023-08-21 16:12:20.000000000","message":"Yes, i meant \"extend\".","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"f945a4682fe0d4a8aea86ea29b61649cc7a6857c","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"      * received ``GET /v1/a/c/o`` will match registered ``GET /v1/a/c/o``"},{"line_number":110,"context_line":"      * received ``GET /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o``"},{"line_number":111,"context_line":"      * received ``HEAD /v1/a/c/o?x\u003dy`` will match registered ``GET /v1/a/c/o``"},{"line_number":112,"context_line":"      * received ``GET /v1/a/c/o`` will NOT match registered"},{"line_number":113,"context_line":"        ``GET /v1/a/c/o?x\u003dy``"},{"line_number":114,"context_line":"      * received ``PUT /v1/a/c/o?x\u003dy``, if it matches a registered ``PUT``,"}],"source_content_type":"text/x-python","patch_set":2,"id":"13f3c3e6_4aee0623","line":111,"in_reply_to":"5870c3be_d2227d18","updated":"2023-08-18 19:28:21.000000000","message":"I understood \"refactor\" here as \"extend\" - like the three listed are coorect and we could add a fourth for compleateness.","commit_id":"8bd21db25aac5059b3abffc9f5273c886b566fb6"}]}
