)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"41695da9c15688b285e27b28db930ab703eac082","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7357e649_f26202a2","updated":"2021-11-22 20:43:18.000000000","message":"Looks good, but a unit test and release note [0] are needed.\n\n[0] https://docs.openstack.org/keystone/latest/contributor/release-notes.html","commit_id":"43cebb9b81471bf6234c1b2c281dffb8726d175a"},{"author":{"_account_id":25023,"name":"Jonathan Rosser","email":"jonathan.rosser@rd.bbc.co.uk","username":"jrosser"},"change_message_id":"6ccaddce934508b4122cc1420e0dfc4f64b0c1f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e1844e1f_314b7b21","updated":"2021-11-24 16:21:03.000000000","message":"For anyone baffled by how the original tokens were generated for these tests, they can be reproduced with this code https://paste.opendev.org/show/811260/\n\nWhatever was hashed to return the string starting \"f2215\" remains unclear though.","commit_id":"36d6fc7f8f06b4b4d1af09bd56b3c17fa1a502ca"},{"author":{"_account_id":7973,"name":"Douglas Mendizábal","email":"dmendiza@redhat.com","username":"dougmendizabal"},"change_message_id":"976a8dc6c9e5f4c578c91569ebe2a901c2e7c954","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2723fcb2_165d3da4","updated":"2021-12-10 15:32:51.000000000","message":"LGTM","commit_id":"36d6fc7f8f06b4b4d1af09bd56b3c17fa1a502ca"},{"author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"change_message_id":"24f3b326965ce1aa3b3dfde419fda61d1a5a3688","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"220966b8_3a2c2ec9","updated":"2021-12-10 15:35:13.000000000","message":"Looks good to me. ","commit_id":"36d6fc7f8f06b4b4d1af09bd56b3c17fa1a502ca"},{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"4eacb82038a2c67441dd203fd866ae5e08ce66e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1d25e887_72e8f1fb","updated":"2021-12-08 16:20:05.000000000","message":"recheck","commit_id":"36d6fc7f8f06b4b4d1af09bd56b3c17fa1a502ca"}],"keystone/api/s3tokens.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"8ba74cd24dcc56aeebc027e604df31df7d8b4c35","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        raise exception.Unauthorized(message\u003d_(\u0027Invalid EC2 signature.\u0027))"},{"line_number":58,"context_line":"    scope \u003d parts[2].split(b\u0027/\u0027)"},{"line_number":59,"context_line":"    allowed_services \u003d [b\u0027s3\u0027, b\u0027iam\u0027, b\u0027sts\u0027]"},{"line_number":60,"context_line":"    if len(scope) !\u003d 4 or scope[2] not in allowed_services or scope[3] !\u003d b\u0027aws4_request\u0027:"},{"line_number":61,"context_line":"        raise exception.Unauthorized(message\u003d_(\u0027Invalid EC2 signature.\u0027))"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _sign(key, msg):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f560f44_c8097284","line":60,"updated":"2020-09-25 20:03:49.000000000","message":"pep8: E501 line too long (90 \u003e 79 characters)","commit_id":"ef342ba6462745a516d1e36d237190023c29a9de"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"41695da9c15688b285e27b28db930ab703eac082","unresolved":true,"context_lines":[{"line_number":59,"context_line":"    if len(scope) !\u003d 4 or scope[3] !\u003d b\u0027aws4_request\u0027:"},{"line_number":60,"context_line":"        raise exception.Unauthorized(message\u003d_(\u0027Invalid EC2 signature.\u0027))"},{"line_number":61,"context_line":"    allowed_services \u003d [b\u0027s3\u0027, b\u0027iam\u0027, b\u0027sts\u0027]"},{"line_number":62,"context_line":"    if scope[2] not in allowed_services:"},{"line_number":63,"context_line":"        raise exception.Unauthorized(message\u003d_(\u0027Invalid EC2 signature.\u0027))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _sign(key, msg):"}],"source_content_type":"text/x-python","patch_set":2,"id":"b8b808d5_d08650eb","line":62,"updated":"2021-11-22 20:43:18.000000000","message":"I think we could add a unit test in https://github.com/openstack/keystone/blob/master/keystone/tests/unit/test_contrib_s3_core.py","commit_id":"43cebb9b81471bf6234c1b2c281dffb8726d175a"}]}
