)]}'
{".pre-commit-config.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6872b41221fa42181cf27b147673d9ec9965eae8","unresolved":true,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1aa358c7_d324c7b8","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"updated":"2026-06-25 23:16:13.000000000","message":"As a follow-up, the [`S` rules in ruff](https://docs.astral.sh/ruff/rules/#flake8-bandit-s) cover everything bandit do and are much faster. You could enable those and remove this.","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"2f141577b0891874e780fa3450ff4e1ad542a70b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c9ef6d2f_6a83668a","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"in_reply_to":"1aa358c7_d324c7b8","updated":"2026-06-26 19:01:15.000000000","message":"Good point, done!","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5fa28a32c18ea3f1e6b47429abda4b0175c68539","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ca61da4c_46320f5e","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"in_reply_to":"80025093_f90157b0","updated":"2026-06-29 11:41:24.000000000","message":"when you do the follow-up, you can just replace `nosec` with `noqa` (or ideally, `noqa: SXXX` where `XXX` is the code)","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"021008d44823a9518920e764541cba1ec4b602d0","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"4ed5b19a_87a0738b","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"in_reply_to":"9073a109_6f197936","updated":"2026-06-29 18:56:03.000000000","message":"Follow-up https://review.opendev.org/c/openstack/keystone/+/995402/1","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"6674656891a38391b2f7cd10a48442ee5989e06d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"80025093_f90157b0","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"in_reply_to":"bc5b5f66_4da4e132","updated":"2026-06-26 21:52:19.000000000","message":"Looks like I will need to revert because ruff\u0027s bandit does not yet support `nosec` comments; see https://github.com/astral-sh/ruff/issues/12743","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"64881f97dfb6bb385108ea92324d78fee535c67e","unresolved":true,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"bc5b5f66_4da4e132","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"in_reply_to":"c9ef6d2f_6a83668a","updated":"2026-06-26 19:02:28.000000000","message":"Oh... I just realized you said \"as a follow-up\"... should I revert the edit and make a separate patch? Or you can re-review this one since votes were cleared anyway.","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"},{"author":{"_account_id":36482,"name":"Oria Weng","display_name":"0weng","email":"oweng@osuosl.org","username":"0weng"},"change_message_id":"7d19a4bab35b71919122f5ac6232acc5d483c285","unresolved":false,"context_lines":[{"line_number":28,"context_line":"      - id: ruff"},{"line_number":29,"context_line":"        args: [\u0027--fix\u0027, \u0027--unsafe-fixes\u0027]"},{"line_number":30,"context_line":"      - id: ruff-format"},{"line_number":31,"context_line":"  - repo: https://github.com/PyCQA/bandit"},{"line_number":32,"context_line":"    rev: \u00271.8.3\u0027"},{"line_number":33,"context_line":"    hooks:"},{"line_number":34,"context_line":"    - id: bandit"},{"line_number":35,"context_line":"      args: [\u0027-c\u0027, \u0027pyproject.toml\u0027]"},{"line_number":36,"context_line":"      additional_dependencies: [\".[toml]\"]"},{"line_number":37,"context_line":"  - repo: https://opendev.org/openstack/hacking"},{"line_number":38,"context_line":"    rev: 7.0.0"},{"line_number":39,"context_line":"    hooks:"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9073a109_6f197936","line":36,"range":{"start_line":31,"start_character":0,"end_line":36,"end_character":42},"in_reply_to":"ca61da4c_46320f5e","updated":"2026-06-29 18:23:12.000000000","message":"Ah I didn\u0027t realize there was a way to only ignore individual rules, sounds good!","commit_id":"1b91abcb4b7642a36131ed489fb8b8388426fb7f"}]}
