)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"cf6ab808da4f09eaaf5947b7aa35958a493e34ae","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9342447f_bb4f281b","updated":"2025-11-10 21:07:43.000000000","message":"Somewhat of a nit, but you\u0027ve got a blank line between `Closes-bug:...` and the other lines at the end of the commit message, so that line technically isn\u0027t part of the \"trailer\" block from Git\u0027s perspective and may not be picked up by automated tools that expect proper commit message formatting.","commit_id":"058d4a1715dfbd79e48871a04101cb23db304f24"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"11b8d7abcabd2dccdb900c586f1f15e5f586decc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"feee7299_7c906ff2","updated":"2025-11-11 09:48:57.000000000","message":"I thought that a RN is going to be helpful here - this is the only change in the PS6","commit_id":"543ef0a944cdfddf4902ba0330f9c8cfe8df56d9"}],"keystone/token/provider.py":[{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"fd40ea55cc3102ab51707f2bfc437b226bc11af0","unresolved":true,"context_lines":[{"line_number":234,"context_line":"                user \u003d PROVIDERS.identity_api.get_user(token.user_id)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"                if user and not user.get(\u0027enabled\u0027):"},{"line_number":237,"context_line":"                    msg \u003d ("},{"line_number":238,"context_line":"                        \u0027Unable to validate token because user \u0027"},{"line_number":239,"context_line":"                        f\u0027 {token.user_id} is disabled\u0027"},{"line_number":240,"context_line":"                    )"},{"line_number":241,"context_line":"                    LOG.warn("},{"line_number":242,"context_line":"                        \u0027Unable to validate token because user \u0027"},{"line_number":243,"context_line":"                        f\u0027 {token.user_id} is disabled\u0027"},{"line_number":244,"context_line":"                    )"},{"line_number":245,"context_line":"                    raise exception.UserDisabled(user_id\u003dtoken.user_id)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"            # Token has not expired and has not been revoked."}],"source_content_type":"text/x-python","patch_set":6,"id":"14a0dd20_30484d5c","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":21},"updated":"2025-11-13 18:58:23.000000000","message":"Shouldn\u0027t this be LOG.warn(msg) ?","commit_id":"543ef0a944cdfddf4902ba0330f9c8cfe8df56d9"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"9bcb3e90bf6a3a2fdf93e39e92243920d7f4aa04","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                user \u003d PROVIDERS.identity_api.get_user(token.user_id)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"                if user and not user.get(\u0027enabled\u0027):"},{"line_number":237,"context_line":"                    msg \u003d ("},{"line_number":238,"context_line":"                        \u0027Unable to validate token because user \u0027"},{"line_number":239,"context_line":"                        f\u0027 {token.user_id} is disabled\u0027"},{"line_number":240,"context_line":"                    )"},{"line_number":241,"context_line":"                    LOG.warn("},{"line_number":242,"context_line":"                        \u0027Unable to validate token because user \u0027"},{"line_number":243,"context_line":"                        f\u0027 {token.user_id} is disabled\u0027"},{"line_number":244,"context_line":"                    )"},{"line_number":245,"context_line":"                    raise exception.UserDisabled(user_id\u003dtoken.user_id)"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"            # Token has not expired and has not been revoked."}],"source_content_type":"text/x-python","patch_set":6,"id":"bdd50c72_c3732300","line":244,"range":{"start_line":237,"start_character":0,"end_line":244,"end_character":21},"in_reply_to":"14a0dd20_30484d5c","updated":"2025-11-14 08:14:48.000000000","message":"you are very right, thanks. It was back and forth with different approaches due to the related findings.","commit_id":"543ef0a944cdfddf4902ba0330f9c8cfe8df56d9"}]}
