)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dd8f4e643359c9b42aeb287b2b2b03bd2e038d52","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"559eb9c6_580180a5","updated":"2023-09-12 08:37:31.000000000","message":"I like the look of this. Nice work. Let\u0027s get this in once oslo.context is out in the wild.","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"d5af0868f2c8d1be864ade9a560f149db40b0158","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"2e1b4d2c_907a3ed6","updated":"2024-01-12 18:27:05.000000000","message":"We\u0027re past C-2. This has missed the deadline to make the release. It\u0027s my fault; sorry about that. I\u0027ll get this revised but it will not be able to be released in Caracal.","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"be4dbca4bf94670f10acb2a6c71538f13acbaff2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b6ca3a0b_3530a432","updated":"2024-01-12 17:10:26.000000000","message":"What is the status here?","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"12030a7fa2db59c6d6ef776d3121d07bddd3d2f5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"76030bc0_14dc5153","in_reply_to":"2e1b4d2c_907a3ed6","updated":"2024-01-12 19:27:47.000000000","message":"This is wrong, I still have time. Will get this updated today.","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"},{"author":{"_account_id":31245,"name":"Daniel Bengtsson","email":"dbengt@redhat.com","username":"damani42"},"change_message_id":"70dadf765448f2bd31cbe5755f8fc70f5bf9b7f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3d4c2d8c_b07fb4af","updated":"2024-01-17 10:45:32.000000000","message":"Looks good to merge.","commit_id":"800c58826ebc0effe00664f68aa5fe929899a971"}],"oslo_messaging/notify/notifier.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c3acf3aff62f5400e015d9ac25fd9f13e3b1ffdd","unresolved":true,"context_lines":[{"line_number":175,"context_line":"    if ctxt is None or type(ctxt) is dict:"},{"line_number":176,"context_line":"        # NOTE(JayF): Logging drivers, unit tests, and some code calls"},{"line_number":177,"context_line":"        #             notifier with an emptydict or None instead of an"},{"line_number":178,"context_line":"        #             actual context. In these cases, discard the passed"},{"line_number":179,"context_line":"        #"},{"line_number":180,"context_line":"        return {}"},{"line_number":181,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"84ea38ba_660b8842","line":178,"range":{"start_line":178,"start_character":66,"end_line":178,"end_character":72},"updated":"2024-01-16 18:00:38.000000000","message":"nit: the passed...context?","commit_id":"b6c41b00a7238b7671729c387c738523fa298c79"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"a3ac601a5305614de9c76135e03a506b5ab492fe","unresolved":false,"context_lines":[{"line_number":175,"context_line":"    if ctxt is None or type(ctxt) is dict:"},{"line_number":176,"context_line":"        # NOTE(JayF): Logging drivers, unit tests, and some code calls"},{"line_number":177,"context_line":"        #             notifier with an emptydict or None instead of an"},{"line_number":178,"context_line":"        #             actual context. In these cases, discard the passed"},{"line_number":179,"context_line":"        #"},{"line_number":180,"context_line":"        return {}"},{"line_number":181,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"32e58074_14ad5da0","line":178,"range":{"start_line":178,"start_character":66,"end_line":178,"end_character":72},"in_reply_to":"84ea38ba_660b8842","updated":"2024-01-16 20:08:30.000000000","message":"Done","commit_id":"b6c41b00a7238b7671729c387c738523fa298c79"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c3acf3aff62f5400e015d9ac25fd9f13e3b1ffdd","unresolved":true,"context_lines":[{"line_number":178,"context_line":"        #             actual context. In these cases, discard the passed"},{"line_number":179,"context_line":"        #"},{"line_number":180,"context_line":"        return {}"},{"line_number":181,"context_line":"    else:"},{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            return ctxt.redacted_copy()"},{"line_number":184,"context_line":"        except AttributeError:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ed833e29_a28f2d26","line":181,"updated":"2024-01-16 18:00:38.000000000","message":"nit: don\u0027t need the `else` since we\u0027ve an early return above","commit_id":"b6c41b00a7238b7671729c387c738523fa298c79"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"a3ac601a5305614de9c76135e03a506b5ab492fe","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        #             actual context. In these cases, discard the passed"},{"line_number":179,"context_line":"        #"},{"line_number":180,"context_line":"        return {}"},{"line_number":181,"context_line":"    else:"},{"line_number":182,"context_line":"        try:"},{"line_number":183,"context_line":"            return ctxt.redacted_copy()"},{"line_number":184,"context_line":"        except AttributeError:"}],"source_content_type":"text/x-python","patch_set":5,"id":"15beba10_9d7817ea","line":181,"in_reply_to":"ed833e29_a28f2d26","updated":"2024-01-16 20:08:30.000000000","message":"Done","commit_id":"b6c41b00a7238b7671729c387c738523fa298c79"}],"oslo_messaging/tests/notify/test_listener.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"3d9d557af7335fe633731fbe8e1a0da6b8d6bdf0","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        notifier \u003d self._setup_notifier(transport)"},{"line_number":192,"context_line":"        cxt \u003d test_utils.TestContext()"},{"line_number":193,"context_line":"        for _ in range(12):"},{"line_number":194,"context_line":"            notifier.info(cxt, \u0027an_event.start\u0027, \u0027test message\u0027)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        self.wait_for_messages(3)"},{"line_number":197,"context_line":"        self.assertFalse(listener_thread.stop())"}],"source_content_type":"text/x-python","patch_set":1,"id":"18a0d2f5_85890da8","line":194,"updated":"2023-09-11 19:57:55.000000000","message":"Question: For cases like this, where the context itself is not really under test, should we just be passing None?","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dd8f4e643359c9b42aeb287b2b2b03bd2e038d52","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        notifier \u003d self._setup_notifier(transport)"},{"line_number":192,"context_line":"        cxt \u003d test_utils.TestContext()"},{"line_number":193,"context_line":"        for _ in range(12):"},{"line_number":194,"context_line":"            notifier.info(cxt, \u0027an_event.start\u0027, \u0027test message\u0027)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        self.wait_for_messages(3)"},{"line_number":197,"context_line":"        self.assertFalse(listener_thread.stop())"}],"source_content_type":"text/x-python","patch_set":1,"id":"6b6d2af2_70249c31","line":194,"in_reply_to":"18a0d2f5_85890da8","updated":"2023-09-12 08:37:31.000000000","message":"Let\u0027s try to match the signature as best as possible, even if it\u0027s irrelevant info.","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"99ffe469fbd2717be39d79993b13663eb6682439","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        notifier \u003d self._setup_notifier(transport)"},{"line_number":192,"context_line":"        cxt \u003d test_utils.TestContext()"},{"line_number":193,"context_line":"        for _ in range(12):"},{"line_number":194,"context_line":"            notifier.info(cxt, \u0027an_event.start\u0027, \u0027test message\u0027)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        self.wait_for_messages(3)"},{"line_number":197,"context_line":"        self.assertFalse(listener_thread.stop())"}],"source_content_type":"text/x-python","patch_set":1,"id":"dcbf89e8_7a6b56db","line":194,"in_reply_to":"6b6d2af2_70249c31","updated":"2024-01-12 20:08:00.000000000","message":"Acknowledged","commit_id":"8ab1171d46afd1d1d743974e45f2ae3417e4b94b"}],"oslo_messaging/tests/test_utils.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"dd8f4e643359c9b42aeb287b2b2b03bd2e038d52","unresolved":true,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_messaging._drivers import common"},{"line_number":17,"context_line":"from oslo_messaging import _utils as utils"},{"line_number":18,"context_line":"from oslo_messaging.tests import utils as test_utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"fc66cb5b_731652e8","side":"PARENT","line":15,"updated":"2023-09-12 08:37:31.000000000","message":"Irrelevant (I wouldn\u0027t normally call these out, but this is the opposite of what we probably want to do?)","commit_id":"7705b4f3023e0e63f3b37e9a25c774f309fec55e"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"99ffe469fbd2717be39d79993b13663eb6682439","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_messaging._drivers import common"},{"line_number":17,"context_line":"from oslo_messaging import _utils as utils"},{"line_number":18,"context_line":"from oslo_messaging.tests import utils as test_utils"}],"source_content_type":"text/x-python","patch_set":1,"id":"95bbf686_20af6807","side":"PARENT","line":15,"in_reply_to":"fc66cb5b_731652e8","updated":"2024-01-12 20:08:00.000000000","message":"Done","commit_id":"7705b4f3023e0e63f3b37e9a25c774f309fec55e"}]}
