)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"087fd1a590bc79e3a7cb3f413e2c686999b6af51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8fb54e8a_445d343a","updated":"2026-06-16 17:22:02.000000000","message":"recheck infra-postfail","commit_id":"d287d40d3d675c01b5ab3448fc1d08814a373b6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"3bfed5afc09ff3426a37d4c007b62e0dd938ded7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"839d09c1_d4fd2b11","updated":"2026-06-11 18:52:34.000000000","message":"recheck unknown failure","commit_id":"d287d40d3d675c01b5ab3448fc1d08814a373b6d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8159f73e8e5a72ecaddb3e09f6a8450ec835cd54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2bfb78e1_d562e29b","updated":"2026-06-24 17:08:13.000000000","message":"Thanks for fixing! Single core approval as the delta is a identified merge conflict in the prior revision.","commit_id":"4103fb388b5ec7a0a1a47d5ac2c68a9598229233"}],"ironic/api/controllers/v1/node.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"706b815b045e73169758bcdb2d5d17f5b6859cfb","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"                raise exception.StepNotAllowed(step\u003dstep_id,"},{"line_number":1356,"context_line":"                                               step_type\u003d\u0027deploy\u0027)"},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"def _check_service_steps(service_steps):"},{"line_number":1359,"context_line":"    \"\"\"Ensure all necessary keys are present and correct in steps for service"},{"line_number":1360,"context_line":""},{"line_number":1361,"context_line":"    :param service_steps: a list of steps. For more details, see the"}],"source_content_type":"text/x-python","patch_set":1,"id":"739ed2bc_3c47fdf4","line":1358,"updated":"2026-06-10 18:55:21.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"449ff671b367658cdb5fc771e390ee8eb819f9a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"706b815b045e73169758bcdb2d5d17f5b6859cfb","unresolved":false,"context_lines":[{"line_number":1372,"context_line":"                raise exception.StepNotAllowed(step\u003dstep_id,"},{"line_number":1373,"context_line":"                                               step_type\u003d\u0027service\u0027)"},{"line_number":1374,"context_line":""},{"line_number":1375,"context_line":"def _check_steps(steps, step_type, schema):"},{"line_number":1376,"context_line":"    \"\"\"Ensure all necessary keys are present and correct in steps."},{"line_number":1377,"context_line":""},{"line_number":1378,"context_line":"    Check that the user-specified steps are in the expected format and include"}],"source_content_type":"text/x-python","patch_set":1,"id":"c5c01fc1_06a011ec","line":1375,"updated":"2026-06-10 18:55:21.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"449ff671b367658cdb5fc771e390ee8eb819f9a6"}],"ironic/common/exception.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"706b815b045e73169758bcdb2d5d17f5b6859cfb","unresolved":false,"context_lines":[{"line_number":990,"context_line":"class BootModeNotAllowed(Invalid):"},{"line_number":991,"context_line":"    _msg_fmt \u003d _(\"\u0027%(mode)s\u0027 boot mode is not allowed for %(op)s operation.\")"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":"class StepNotAllowed(Invalid):"},{"line_number":994,"context_line":"    _msg_fmt \u003d _(\"%(step_type)s step \u0027%(step)s\u0027 is not allowed. Disallowed \""},{"line_number":995,"context_line":"                 \"by operator configuration \""},{"line_number":996,"context_line":"                 \"[api]disallow_%(step_type)s_steps.\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"8f576001_f38f3536","line":993,"updated":"2026-06-10 18:55:21.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"449ff671b367658cdb5fc771e390ee8eb819f9a6"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"706b815b045e73169758bcdb2d5d17f5b6859cfb","unresolved":false,"context_lines":[{"line_number":996,"context_line":"                 \"[api]disallow_%(step_type)s_steps.\")"},{"line_number":997,"context_line":"    code \u003d http_client.BAD_REQUEST"},{"line_number":998,"context_line":""},{"line_number":999,"context_line":"class InvalidImage(ImageUnacceptable):"},{"line_number":1000,"context_line":"    _msg_fmt \u003d _(\"The requested image is not valid for use.\")"},{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d3c8b0dc_3cb420da","line":999,"updated":"2026-06-10 18:55:21.000000000","message":"pep8: E302 expected 2 blank lines, found 1","commit_id":"449ff671b367658cdb5fc771e390ee8eb819f9a6"}],"ironic/conf/api.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b5814aa2d31005b91f347dc0f24eff6dec880501","unresolved":true,"context_lines":[{"line_number":109,"context_line":"    cfg.StrOpt(\u0027key_file\u0027,"},{"line_number":110,"context_line":"               help\u003d\"Private key file to use when starting \""},{"line_number":111,"context_line":"                    \"the server securely.\"),"},{"line_number":112,"context_line":"    cfg.ListOpt(\u0027middleware\u0027,"},{"line_number":113,"context_line":"                default\u003d[],"},{"line_number":114,"context_line":"                help\u003d_(\u0027Comma-separated list of WSGI middleware to load \u0027"},{"line_number":115,"context_line":"                       \u0027from the ironic.api.middleware entry point namespace. \u0027"},{"line_number":116,"context_line":"                       \u0027Middleware are applied in the order specified, \u0027"},{"line_number":117,"context_line":"                       \u0027wrapping the API application. This allows operators \u0027"},{"line_number":118,"context_line":"                       \u0027to add custom request processing (validation, \u0027"},{"line_number":119,"context_line":"                       \u0027logging, \u0027"},{"line_number":120,"context_line":"                       \u0027rate limiting, etc.) without modifying Ironic code. \u0027"},{"line_number":121,"context_line":"                       \u0027External packages can register middleware by adding \u0027"},{"line_number":122,"context_line":"                       \u0027entry points to the ironic.api.middleware namespace. \u0027"},{"line_number":123,"context_line":"                       \u0027Each middleware must be a callable that accepts a \u0027"},{"line_number":124,"context_line":"                       \u0027WSGI application and returns a wrapped application.\u0027)),"},{"line_number":125,"context_line":"    cfg.ListOpt(\u0027disallow_deploy_steps\u0027,"},{"line_number":126,"context_line":"                default\u003d[],"},{"line_number":127,"context_line":"                mutable\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3b9340d5_1fb9740b","line":124,"range":{"start_line":112,"start_character":0,"end_line":124,"end_character":79},"updated":"2026-06-16 17:24:07.000000000","message":"This is a merge conflict issue, this wasn\u0027t present.","commit_id":"d287d40d3d675c01b5ab3448fc1d08814a373b6d"}],"ironic/tests/unit/conductor/test_deployments.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"706b815b045e73169758bcdb2d5d17f5b6859cfb","unresolved":false,"context_lines":[{"line_number":639,"context_line":""},{"line_number":640,"context_line":""},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"@mgr_utils.mock_record_keepalive"},{"line_number":643,"context_line":"class DoNextDeployStepTestCase(mgr_utils.ServiceSetUpMixin,"},{"line_number":644,"context_line":"                               db_base.DbTestCase):"},{"line_number":645,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"b6abeb10_8d9436f3","line":642,"updated":"2026-06-10 18:55:21.000000000","message":"pep8: E303 too many blank lines (3)","commit_id":"449ff671b367658cdb5fc771e390ee8eb819f9a6"}]}
