)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cbda4b4f7e758b0763075ce87b2d8570dfaa5488","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     ASHWIN A NAIR \u003cashnair@nvidia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-11-06 21:40:32 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"s3api: improve s3 sigv4 error responses"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We need to be as s3 compatible as possible with the"},{"line_number":10,"context_line":"new sigv4 calculations for the Authorization header."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"52dc41e9_0ad9f897","line":7,"range":{"start_line":7,"start_character":7,"end_line":7,"end_character":39},"updated":"2025-07-18 08:20:19.000000000","message":"please make the commit message title more specific - I think this patch is adding more query param validation","commit_id":"b345e119c2ac7883e19e66d681e53dad770e995d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"d09f234a06f100946d13664d415e69da31402096","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"44395fb7_d1b59241","updated":"2024-11-04 20:41:35.000000000","message":"This patch needs more s3 cross-compat tests for the errors introduced/refactored.","commit_id":"f203820e9dfeacd13fd0b248769af6611463a9b6"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"2c75d539f414dcea683449d090d7b8b47a0f91b2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"238bb313_1f025e54","updated":"2024-11-05 14:18:13.000000000","message":"This is a rough draft of the patch and its completely untested","commit_id":"53450be2163c1e68c28e498941a8d39008ecd48a"}],"swift/common/middleware/s3api/s3request.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cbda4b4f7e758b0763075ce87b2d8570dfaa5488","unresolved":true,"context_lines":[{"line_number":419,"context_line":"    def _is_query_auth(self):"},{"line_number":420,"context_line":"        if \u0027X-Amz-Credential\u0027 in self.params:"},{"line_number":421,"context_line":"            return True"},{"line_number":422,"context_line":"        return False"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"    @property"},{"line_number":425,"context_line":"    def timestamp(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"f1876dc0_d49d4e5f","line":422,"updated":"2025-07-18 08:20:19.000000000","message":"this is just more verbose than the original","commit_id":"b345e119c2ac7883e19e66d681e53dad770e995d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cbda4b4f7e758b0763075ce87b2d8570dfaa5488","unresolved":true,"context_lines":[{"line_number":581,"context_line":"        :raises: AccessDenied, MalformedCredentialDate,"},{"line_number":582,"context_line":"        AuthorizationQueryParametersError"},{"line_number":583,"context_line":"        :return: A dictionary with parsed credential components"},{"line_number":584,"context_line":"        \"\"\""},{"line_number":585,"context_line":"        parts \u003d credential_string.split(\"/\")"},{"line_number":586,"context_line":"        # credential must be in following format:"},{"line_number":587,"context_line":"        # \u003caccess-key-id\u003e/\u003cdate\u003e/\u003cAWS-region\u003e/\u003cAWS-service\u003e/aws4_request"}],"source_content_type":"text/x-python","patch_set":5,"id":"f76e19cf_781270ba","line":584,"updated":"2025-07-18 08:20:19.000000000","message":"master now has a decent docstring","commit_id":"b345e119c2ac7883e19e66d681e53dad770e995d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cbda4b4f7e758b0763075ce87b2d8570dfaa5488","unresolved":true,"context_lines":[{"line_number":586,"context_line":"        # credential must be in following format:"},{"line_number":587,"context_line":"        # \u003caccess-key-id\u003e/\u003cdate\u003e/\u003cAWS-region\u003e/\u003cAWS-service\u003e/aws4_request"},{"line_number":588,"context_line":"        # Validate the format of the credential string"},{"line_number":589,"context_line":"        if len(parts) !\u003d 5 or not parts[0]:"},{"line_number":590,"context_line":"            raise AccessDenied(reason\u003d\u0027invalid_credential\u0027)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"        access_key, date, region, service, terminal \u003d parts"}],"source_content_type":"text/x-python","patch_set":5,"id":"71d427d9_814768c5","line":589,"updated":"2025-07-18 08:20:19.000000000","message":"no behavioral change here","commit_id":"b345e119c2ac7883e19e66d681e53dad770e995d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"cbda4b4f7e758b0763075ce87b2d8570dfaa5488","unresolved":true,"context_lines":[{"line_number":1740,"context_line":""},{"line_number":1741,"context_line":"        env \u003d self.environ.copy()"},{"line_number":1742,"context_line":"        env[\u0027swift.infocache\u0027] \u003d self.environ.setdefault(\u0027swift.infocache\u0027, {})"},{"line_number":1743,"context_line":"        content_encoding \u003d env.get(\u0027HTTP_CONTENT_ENCODING\u0027, \u0027\u0027)"},{"line_number":1744,"context_line":""},{"line_number":1745,"context_line":"        if \u0027aws-chunked\u0027 in content_encoding:"},{"line_number":1746,"context_line":"            encodings \u003d list_from_csv(content_encoding)"},{"line_number":1747,"context_line":"            filtered_encodings \u003d [enc for enc in encodings if"},{"line_number":1748,"context_line":"                                  enc !\u003d \u0027aws-chunked\u0027]"},{"line_number":1749,"context_line":"            env[\u0027HTTP_CONTENT_ENCODING\u0027] \u003d \u0027, \u0027.join(filtered_encodings)"},{"line_number":1750,"context_line":"        else:"},{"line_number":1751,"context_line":"            # Handle the case where content-encoding is not \u0027aws-chunked\u0027"},{"line_number":1752,"context_line":"            env[\u0027HTTP_CONTENT_ENCODING\u0027] \u003d content_encoding"},{"line_number":1753,"context_line":""},{"line_number":1754,"context_line":"        def sanitize(value):"},{"line_number":1755,"context_line":"            if set(value).issubset(string.printable):"}],"source_content_type":"text/x-python","patch_set":5,"id":"a703dd35_ec8e17da","line":1752,"range":{"start_line":1743,"start_character":8,"end_line":1752,"end_character":59},"updated":"2025-07-18 08:20:19.000000000","message":"no behavioral change? The else clause is redundant","commit_id":"b345e119c2ac7883e19e66d681e53dad770e995d"}],"swift/common/middleware/s3api/s3response.py":[{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"f98f932ec7878bda922eb50d735cc6b6369c423c","unresolved":true,"context_lines":[{"line_number":908,"context_line":""},{"line_number":909,"context_line":""},{"line_number":910,"context_line":"class SignatureVersionNotSupported(ErrorResponse):"},{"line_number":911,"context_line":"    _status \u003d \u0027403 Bad Request\u0027"},{"line_number":912,"context_line":"    _msg \u003d (\u0027The authorization mechanism you have provided is not supported.\u0027"},{"line_number":913,"context_line":"            \u0027 Please use AWS4-HMAC-SHA256.\u0027)"},{"line_number":914,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"447d92c2_065d805b","line":911,"updated":"2024-11-04 23:35:01.000000000","message":"nit: change `403` to `400`","commit_id":"f203820e9dfeacd13fd0b248769af6611463a9b6"}]}
