)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"48d938b8569cd2ab6f9d40d27b743c04fa68415d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"59d06407_ff566e8e","updated":"2026-06-04 14:20:48.000000000","message":"just text updates","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a5f3d044957baa0bb8565c0b2cf1ac2012e61ffc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"918d1c4c_c5f06db6","updated":"2026-06-04 15:49:35.000000000","message":"looks ok, please check Brian\u0027s comments","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"3e60f7705a4cc85f428ad404db7e65ed0683fd7c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"116faae6_d7419a58","updated":"2026-06-05 11:05:29.000000000","message":"recheck neutron-ovs-grenade-multinode","commit_id":"bc8a55497fdf224e4f9672088a196a9b8cd0ed12"}],"neutron/tests/unit/services/conntrack_helper/test_plugin.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"48d938b8569cd2ab6f9d40d27b743c04fa68415d","unresolved":true,"context_lines":[{"line_number":235,"context_line":"        self.assertRaises("},{"line_number":236,"context_line":"            cth_exc.ConntrackHelperNotFound,"},{"line_number":237,"context_line":"            self.cth_plugin.update_router_conntrack_helper,"},{"line_number":238,"context_line":"            self.ctxt, \u0027cth_id\u0027, \u0027attacker-router\u0027, **cth_input)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @mock.patch.object(conntrack_helper.ConntrackHelper, \u0027get_object\u0027)"},{"line_number":241,"context_line":"    def test_get_conntrack_helper(self, get_object_mock):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a6949591_78185481","line":238,"range":{"start_line":238,"start_character":34,"end_line":238,"end_character":42},"updated":"2026-06-04 14:20:48.000000000","message":"maybe change to \u0027other-router\u0027 ?","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7265b4f66659a83d9ebf77b2e7583256d2e2343a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        self.assertRaises("},{"line_number":236,"context_line":"            cth_exc.ConntrackHelperNotFound,"},{"line_number":237,"context_line":"            self.cth_plugin.update_router_conntrack_helper,"},{"line_number":238,"context_line":"            self.ctxt, \u0027cth_id\u0027, \u0027attacker-router\u0027, **cth_input)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    @mock.patch.object(conntrack_helper.ConntrackHelper, \u0027get_object\u0027)"},{"line_number":241,"context_line":"    def test_get_conntrack_helper(self, get_object_mock):"}],"source_content_type":"text/x-python","patch_set":1,"id":"95901d13_26d4b784","line":238,"range":{"start_line":238,"start_character":34,"end_line":238,"end_character":42},"in_reply_to":"a6949591_78185481","updated":"2026-06-04 18:34:53.000000000","message":"pffff we already commented that and I didn\u0027t change it... my bad, sorry","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"48d938b8569cd2ab6f9d40d27b743c04fa68415d","unresolved":true,"context_lines":[{"line_number":259,"context_line":"        self.assertRaises("},{"line_number":260,"context_line":"            cth_exc.ConntrackHelperNotFound,"},{"line_number":261,"context_line":"            self.cth_plugin.get_router_conntrack_helper,"},{"line_number":262,"context_line":"            self.ctxt, \u0027cth_id\u0027, \u0027attacker-router\u0027, fields\u003dNone)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    @mock.patch.object(conntrack_helper.ConntrackHelper, \u0027get_objects\u0027)"},{"line_number":265,"context_line":"    def test_get_conntrack_helpers(self, get_objects_mock):"}],"source_content_type":"text/x-python","patch_set":1,"id":"c41388f0_6df2a0d8","line":262,"range":{"start_line":262,"start_character":34,"end_line":262,"end_character":42},"updated":"2026-06-04 14:20:48.000000000","message":"same","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7265b4f66659a83d9ebf77b2e7583256d2e2343a","unresolved":false,"context_lines":[{"line_number":259,"context_line":"        self.assertRaises("},{"line_number":260,"context_line":"            cth_exc.ConntrackHelperNotFound,"},{"line_number":261,"context_line":"            self.cth_plugin.get_router_conntrack_helper,"},{"line_number":262,"context_line":"            self.ctxt, \u0027cth_id\u0027, \u0027attacker-router\u0027, fields\u003dNone)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    @mock.patch.object(conntrack_helper.ConntrackHelper, \u0027get_objects\u0027)"},{"line_number":265,"context_line":"    def test_get_conntrack_helpers(self, get_objects_mock):"}],"source_content_type":"text/x-python","patch_set":1,"id":"779405f6_8a963e3c","line":262,"range":{"start_line":262,"start_character":34,"end_line":262,"end_character":42},"in_reply_to":"c41388f0_6df2a0d8","updated":"2026-06-04 18:34:53.000000000","message":"Done","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"48d938b8569cd2ab6f9d40d27b743c04fa68415d","unresolved":true,"context_lines":[{"line_number":295,"context_line":"        get_object_mock.return_value \u003d mock.Mock(router_id\u003d\u0027victim-router\u0027)"},{"line_number":296,"context_line":"        self.assertRaises(cth_exc.ConntrackHelperNotFound,"},{"line_number":297,"context_line":"                          self.cth_plugin.delete_router_conntrack_helper,"},{"line_number":298,"context_line":"                          self.ctxt, \u0027cth_id\u0027, \u0027attacker-router\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"63d06074_65e6acb8","line":298,"range":{"start_line":298,"start_character":48,"end_line":298,"end_character":56},"updated":"2026-06-04 14:20:48.000000000","message":"same","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7265b4f66659a83d9ebf77b2e7583256d2e2343a","unresolved":false,"context_lines":[{"line_number":295,"context_line":"        get_object_mock.return_value \u003d mock.Mock(router_id\u003d\u0027victim-router\u0027)"},{"line_number":296,"context_line":"        self.assertRaises(cth_exc.ConntrackHelperNotFound,"},{"line_number":297,"context_line":"                          self.cth_plugin.delete_router_conntrack_helper,"},{"line_number":298,"context_line":"                          self.ctxt, \u0027cth_id\u0027, \u0027attacker-router\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"a09d4833_5a54db10","line":298,"range":{"start_line":298,"start_character":48,"end_line":298,"end_character":56},"in_reply_to":"63d06074_65e6acb8","updated":"2026-06-04 18:34:53.000000000","message":"Done","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"}],"releasenotes/notes/fix-router-conntrack-helper-cross-project-access-ba1425c06abc45d5.yaml":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"48d938b8569cd2ab6f9d40d27b743c04fa68415d","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed a vulnerability in the router conntrack helper API where a project"},{"line_number":5,"context_line":"    member authorized on one router could read, update, or delete another"},{"line_number":6,"context_line":"    project\u0027s conntrack helper by supplying the victim helper ID under their"},{"line_number":7,"context_line":"    own router ID in the request URL. Singleton operations now verify that"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c07877d4_08ce5d90","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":25},"updated":"2026-06-04 14:20:48.000000000","message":"I guess I would have used \u0027issue\u0027 since there are AI bots watching reviews","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7265b4f66659a83d9ebf77b2e7583256d2e2343a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed a vulnerability in the router conntrack helper API where a project"},{"line_number":5,"context_line":"    member authorized on one router could read, update, or delete another"},{"line_number":6,"context_line":"    project\u0027s conntrack helper by supplying the victim helper ID under their"},{"line_number":7,"context_line":"    own router ID in the request URL. Singleton operations now verify that"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"36d096db_76ddd36f","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":25},"in_reply_to":"ba69dfcb_3df99c74","updated":"2026-06-04 18:34:53.000000000","message":"Much better","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a5f3d044957baa0bb8565c0b2cf1ac2012e61ffc","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed a vulnerability in the router conntrack helper API where a project"},{"line_number":5,"context_line":"    member authorized on one router could read, update, or delete another"},{"line_number":6,"context_line":"    project\u0027s conntrack helper by supplying the victim helper ID under their"},{"line_number":7,"context_line":"    own router ID in the request URL. Singleton operations now verify that"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"ba69dfcb_3df99c74","line":4,"range":{"start_line":4,"start_character":12,"end_line":4,"end_character":25},"in_reply_to":"c07877d4_08ce5d90","updated":"2026-06-04 15:49:35.000000000","message":"😀","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"48d938b8569cd2ab6f9d40d27b743c04fa68415d","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed a vulnerability in the router conntrack helper API where a project"},{"line_number":5,"context_line":"    member authorized on one router could read, update, or delete another"},{"line_number":6,"context_line":"    project\u0027s conntrack helper by supplying the victim helper ID under their"},{"line_number":7,"context_line":"    own router ID in the request URL. Singleton operations now verify that"},{"line_number":8,"context_line":"    the conntrack helper belongs to the router specified in the URL."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"52a2acad_e51faa9c","line":6,"range":{"start_line":6,"start_character":48,"end_line":6,"end_character":54},"updated":"2026-06-04 14:20:48.000000000","message":"same here","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"7265b4f66659a83d9ebf77b2e7583256d2e2343a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Fixed a vulnerability in the router conntrack helper API where a project"},{"line_number":5,"context_line":"    member authorized on one router could read, update, or delete another"},{"line_number":6,"context_line":"    project\u0027s conntrack helper by supplying the victim helper ID under their"},{"line_number":7,"context_line":"    own router ID in the request URL. Singleton operations now verify that"},{"line_number":8,"context_line":"    the conntrack helper belongs to the router specified in the URL."}],"source_content_type":"text/x-yaml","patch_set":1,"id":"c2fc1261_e0f86de4","line":6,"range":{"start_line":6,"start_character":48,"end_line":6,"end_character":54},"in_reply_to":"52a2acad_e51faa9c","updated":"2026-06-04 18:34:53.000000000","message":"Done","commit_id":"340293f443d8078a7ea4d4a07da20de01839855c"}]}
