)]}'
{".pre-commit-config.yaml":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"5d9d82caceb523a2bb803d850fd43f2a9cae69ba","unresolved":true,"context_lines":[{"line_number":18,"context_line":"        files: .*\\.(yaml|yml)$"},{"line_number":19,"context_line":"        exclude: \u0027^zuul.d/.*$\u0027"},{"line_number":20,"context_line":"  - repo: https://github.com/astral-sh/ruff-pre-commit"},{"line_number":21,"context_line":"    rev: v0.11.11"},{"line_number":22,"context_line":"    hooks:"},{"line_number":23,"context_line":"      - id: ruff"},{"line_number":24,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"67a98eeb_95e1ef67","line":21,"updated":"2026-08-11 22:15:01.000000000","message":"That\u0027s a pretty old version now days.","commit_id":"b0499d7eb847c0f865ff9f54f9f767de0ac3954f"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"71f7933db73cdc4fc61fcbab2fcc717d0d0847e6","unresolved":true,"context_lines":[{"line_number":18,"context_line":"        files: .*\\.(yaml|yml)$"},{"line_number":19,"context_line":"        exclude: \u0027^zuul.d/.*$\u0027"},{"line_number":20,"context_line":"  - repo: https://github.com/astral-sh/ruff-pre-commit"},{"line_number":21,"context_line":"    rev: v0.11.11"},{"line_number":22,"context_line":"    hooks:"},{"line_number":23,"context_line":"      - id: ruff"},{"line_number":24,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"efef2ff5_bcbfec7f","line":21,"in_reply_to":"67a98eeb_95e1ef67","updated":"2026-09-07 12:06:43.000000000","message":"it\u0027s the one keystone still uses. Still updated to the latest","commit_id":"b0499d7eb847c0f865ff9f54f9f767de0ac3954f"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"5d9d82caceb523a2bb803d850fd43f2a9cae69ba","unresolved":true,"context_lines":[{"line_number":26,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":27,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":28,"context_line":"    hooks:"},{"line_number":29,"context_line":"    - id: bandit"},{"line_number":30,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027, \u0027-n5\u0027, \u0027-x\u0027, \u0027tests\u0027]"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"6beb4972_997872f7","line":29,"updated":"2026-08-11 22:15:01.000000000","message":"bandit rules are available via ruff","commit_id":"b0499d7eb847c0f865ff9f54f9f767de0ac3954f"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"71f7933db73cdc4fc61fcbab2fcc717d0d0847e6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":27,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":28,"context_line":"    hooks:"},{"line_number":29,"context_line":"    - id: bandit"},{"line_number":30,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027, \u0027-n5\u0027, \u0027-x\u0027, \u0027tests\u0027]"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"fab6a96e_1d57a1c4","line":29,"in_reply_to":"6beb4972_997872f7","updated":"2026-09-07 12:06:43.000000000","message":"Done","commit_id":"b0499d7eb847c0f865ff9f54f9f767de0ac3954f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"6d6647cdd7daa8b5f34ea31efa351c5e4269aa4e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2420668d_5bce5a8a","updated":"2026-09-09 05:53:38.000000000","message":"The trivial change waited for quite long, self-approving","commit_id":"40379eb763e1e861e388bd874821ec2e27e19987"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7786e75dbb23fa2cc548ea90f62efc33d6463a0b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3476ad79_f95f7053","updated":"2026-09-18 17:47:46.000000000","message":"There are multiple unrelated changes in here that means this is not a clean ruff application. I think you may have squashed https://review.opendev.org/c/openstack/keystonemiddleware/+/979374 in here by mistake.\n\nI\u0027ve proposed a revert of this at https://review.opendev.org/c/openstack/keystonemiddleware/+/1006307. A patch later in the series re-adds this.","commit_id":"40379eb763e1e861e388bd874821ec2e27e19987"}],"keystonemiddleware/auth_token/__init__.py":[{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"3534b595e9cdb60c37be6a6aef93fb931998c93b","unresolved":true,"context_lines":[{"line_number":391,"context_line":"                        # Mark it so the rejection logic returns 403 rather"},{"line_number":392,"context_line":"                        # than 401."},{"line_number":393,"context_line":"                        request._service_token_auth_failed \u003d True"},{"line_number":394,"context_line":"                        request.service_token_valid \u003d False"},{"line_number":395,"context_line":"                        self.log.info("},{"line_number":396,"context_line":"                            \"The service token did not have the required roles\""},{"line_number":397,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"137a0666_60b3131e","line":394,"updated":"2026-07-18 05:29:39.000000000","message":"This changes the behavior, should be split out to another patch","commit_id":"4792b2a945af1291a7143f93381cf52329a8464c"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"cc6bffe55dcadfa58bd163d92b5bf23396191916","unresolved":true,"context_lines":[{"line_number":391,"context_line":"                        # Mark it so the rejection logic returns 403 rather"},{"line_number":392,"context_line":"                        # than 401."},{"line_number":393,"context_line":"                        request._service_token_auth_failed \u003d True"},{"line_number":394,"context_line":"                        request.service_token_valid \u003d False"},{"line_number":395,"context_line":"                        self.log.info("},{"line_number":396,"context_line":"                            \"The service token did not have the required roles\""},{"line_number":397,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"d3f735e1_93b13554","line":394,"in_reply_to":"137a0666_60b3131e","updated":"2026-07-20 08:56:59.000000000","message":"you are very right, the change was initially created on top of https://review.opendev.org/c/openstack/keystonemiddleware/+/989646 and after I rebased it somehow the change was merged here - it is not visible on it\u0027s own in the base-PS1 diff. I have recreated everything from scratch in the following way:\n- clean master branch\n- add .pre-commit\n- run `pre-commit run -a`\n- fix 2 issues manually (renamed `l` to `_l`): \n```\nkeystonemiddleware/tests/unit/test_opts.py:72:37: E741 Ambiguous variable name: `l`\n   |\n70 |             \u0027service_type\u0027,\n71 |         ]\n72 |         opt_names \u003d [o.name for (g, l) in result_of_old_opts for o in l]\n   |                                     ^ E741\n73 |         self.assertThat(opt_names, matchers.HasLength(len(expected_opt_names)))\n   |\n\nkeystonemiddleware/tests/unit/test_opts.py:124:37: E741 Ambiguous variable name: `l`\n    |\n122 |             \u0027service_type\u0027,\n123 |         ]\n124 |         opt_names \u003d [o.name for (g, l) in result for o in l]\n    |                                     ^ E741\n125 |         self.assertThat(opt_names, matchers.HasLength(len(expected_opt_names)))\n```\n- commit","commit_id":"4792b2a945af1291a7143f93381cf52329a8464c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7786e75dbb23fa2cc548ea90f62efc33d6463a0b","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                        # Mark it so the rejection logic returns 403 rather"},{"line_number":392,"context_line":"                        # than 401."},{"line_number":393,"context_line":"                        request._service_token_auth_failed \u003d True"},{"line_number":394,"context_line":"                        request.service_token_valid \u003d False"},{"line_number":395,"context_line":"                        self.log.info("},{"line_number":396,"context_line":"                            \"The service token did not have the required roles\""},{"line_number":397,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"51987816_2f062641","line":394,"in_reply_to":"d3f735e1_93b13554","updated":"2026-09-18 17:47:46.000000000","message":"Done","commit_id":"4792b2a945af1291a7143f93381cf52329a8464c"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"3534b595e9cdb60c37be6a6aef93fb931998c93b","unresolved":true,"context_lines":[{"line_number":708,"context_line":"                            \"message\": message,"},{"line_number":709,"context_line":"                        }"},{"line_number":710,"context_line":"                    }"},{"line_number":711,"context_line":"                    raise webob.exc.HTTPForbidden("},{"line_number":712,"context_line":"                        body\u003djsonutils.dumps(body),"},{"line_number":713,"context_line":"                        charset\u003d\"UTF-8\","},{"line_number":714,"context_line":"                        content_type\u003d\"application/json\","}],"source_content_type":"text/x-python","patch_set":3,"id":"366e44ff_f18d8e14","line":711,"updated":"2026-07-18 05:29:39.000000000","message":"same - change of behavior","commit_id":"4792b2a945af1291a7143f93381cf52329a8464c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7786e75dbb23fa2cc548ea90f62efc33d6463a0b","unresolved":false,"context_lines":[{"line_number":708,"context_line":"                            \"message\": message,"},{"line_number":709,"context_line":"                        }"},{"line_number":710,"context_line":"                    }"},{"line_number":711,"context_line":"                    raise webob.exc.HTTPForbidden("},{"line_number":712,"context_line":"                        body\u003djsonutils.dumps(body),"},{"line_number":713,"context_line":"                        charset\u003d\"UTF-8\","},{"line_number":714,"context_line":"                        content_type\u003d\"application/json\","}],"source_content_type":"text/x-python","patch_set":3,"id":"e2dff20b_cb05bcca","line":711,"in_reply_to":"366e44ff_f18d8e14","updated":"2026-09-18 17:47:46.000000000","message":"Done","commit_id":"4792b2a945af1291a7143f93381cf52329a8464c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7786e75dbb23fa2cc548ea90f62efc33d6463a0b","unresolved":true,"context_lines":[{"line_number":226,"context_line":"from keystoneauth1 import discover"},{"line_number":227,"context_line":"from keystoneauth1 import exceptions as ksa_exceptions"},{"line_number":228,"context_line":"from keystoneauth1 import loading"},{"line_number":229,"context_line":"from keystoneauth1.loading import session as session_loading"},{"line_number":230,"context_line":"import oslo_cache"},{"line_number":231,"context_line":"from oslo_config import cfg"},{"line_number":232,"context_line":"from oslo_log import log as logging"},{"line_number":233,"context_line":"from oslo_serialization import jsonutils"},{"line_number":234,"context_line":"import webob.dec"}],"source_content_type":"text/x-python","patch_set":6,"id":"19b8bb58_5bb5ef7c","line":231,"range":{"start_line":229,"start_character":60,"end_line":231,"end_character":27},"updated":"2026-09-18 17:47:46.000000000","message":"This change is unrelated and shouldn\u0027t have been included in here.","commit_id":"40379eb763e1e861e388bd874821ec2e27e19987"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e1f3ccb9573712f666b641950b4ec2542a7d79c6","unresolved":true,"context_lines":[{"line_number":226,"context_line":"from keystoneauth1 import discover"},{"line_number":227,"context_line":"from keystoneauth1 import exceptions as ksa_exceptions"},{"line_number":228,"context_line":"from keystoneauth1 import loading"},{"line_number":229,"context_line":"from keystoneauth1.loading import session as session_loading"},{"line_number":230,"context_line":"import oslo_cache"},{"line_number":231,"context_line":"from oslo_config import cfg"},{"line_number":232,"context_line":"from oslo_log import log as logging"},{"line_number":233,"context_line":"from oslo_serialization import jsonutils"},{"line_number":234,"context_line":"import webob.dec"}],"source_content_type":"text/x-python","patch_set":6,"id":"588451ac_46af34d4","line":231,"range":{"start_line":229,"start_character":60,"end_line":231,"end_character":27},"in_reply_to":"19b8bb58_5bb5ef7c","updated":"2026-09-18 17:50:26.000000000","message":"Actually, this looks like a revert of I4d0538d385a88995ddddedf5beae1454ba431e6c.","commit_id":"40379eb763e1e861e388bd874821ec2e27e19987"}]}
