)]}'
{"keystoneauth1/_utils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96d9c103f0468c70790625e9390707e87f179d10","unresolved":true,"context_lines":[{"line_number":13,"context_line":"import datetime"},{"line_number":14,"context_line":"import json"},{"line_number":15,"context_line":"import logging"},{"line_number":16,"context_line":"import typing as ty"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import iso8601"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"84ddba1d_b9aa442e","line":16,"updated":"2026-10-15 11:30:21.000000000","message":"Can you import objects directly from typing rather than importing the module (there\u0027s a carve out in HACKING for this)","commit_id":"da6de273f00416a7db23885f6064ce60ef46d60c"}],"keystoneauth1/session.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96d9c103f0468c70790625e9390707e87f179d10","unresolved":true,"context_lines":[{"line_number":628,"context_line":"                try:"},{"line_number":629,"context_line":"                    data \u003d data.decode(\"ascii\")"},{"line_number":630,"context_line":"                except UnicodeDecodeError:"},{"line_number":631,"context_line":"                    data \u003d \"\u003cbinary_data\u003e\""},{"line_number":632,"context_line":"            else:"},{"line_number":633,"context_line":"                data \u003d utils.mask_sensitive_string(data)"},{"line_number":634,"context_line":"            string_parts.append(f\"-d \u0027{data}\u0027\")"},{"line_number":635,"context_line":""},{"line_number":636,"context_line":"        _logger.debug(\u0027 \u0027.join(string_parts))"}],"source_content_type":"text/x-python","patch_set":1,"id":"f8ae4131_20caa8be","line":633,"range":{"start_line":631,"start_character":42,"end_line":633,"end_character":56},"updated":"2026-10-15 11:30:21.000000000","message":"Don\u0027t we want to do this on the decoded string also?\n\n\n\n```suggestion\n                    data \u003d \"\u003cbinary_data\u003e\"\n            data \u003d utils.mask_sensitive_string(data)\n```","commit_id":"da6de273f00416a7db23885f6064ce60ef46d60c"}],"keystoneauth1/tests/unit/test_session.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96d9c103f0468c70790625e9390707e87f179d10","unresolved":true,"context_lines":[{"line_number":382,"context_line":"            self.assertEqual(v, resp.headers[k])"},{"line_number":383,"context_line":"            self.assertNotIn(v, self.logger.output)"},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"    def test_session_debug_output_masks_sensitive_json(self):"},{"line_number":386,"context_line":"        session \u003d client_session.Session(verify\u003dFalse)"},{"line_number":387,"context_line":"        password \u003d \u0027a12345\u0027"},{"line_number":388,"context_line":"        post_data \u003d json.dumps("}],"source_content_type":"text/x-python","patch_set":1,"id":"87818ed8_85ee776c","line":385,"updated":"2026-10-15 11:30:21.000000000","message":"```suggestion\n    def test_session_debug_output_masks_sensitive_data(self):\n```","commit_id":"da6de273f00416a7db23885f6064ce60ef46d60c"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"96d9c103f0468c70790625e9390707e87f179d10","unresolved":true,"context_lines":[{"line_number":397,"context_line":"        self.assertIn(\u0027***\u0027, self.logger.output)"},{"line_number":398,"context_line":"        self.assertNotIn(password, self.logger.output)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def test_session_debug_output_masks_sensitive_json_kwarg(self):"},{"line_number":401,"context_line":"        session \u003d client_session.Session(verify\u003dFalse)"},{"line_number":402,"context_line":"        password \u003d \u0027a12345\u0027"},{"line_number":403,"context_line":"        post_json \u003d {"}],"source_content_type":"text/x-python","patch_set":1,"id":"b0806584_0c2929bb","line":400,"updated":"2026-10-15 11:30:21.000000000","message":"```suggestion\n    def test_session_debug_output_masks_sensitive_json(self):\n```","commit_id":"da6de273f00416a7db23885f6064ce60ef46d60c"}]}
