)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"a727e4eaa7783d852400e5064167dcc57a389e42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"243ea3dd_04891ca5","updated":"2025-07-28 04:54:43.000000000","message":"重构时可以先看一下有没有没有单元测试，如果没有，就加上。以保证重构前后接口和功能逻辑一致。\nWhen refactoring, you can first check if there are any unit tests. If not, add them. This ensures that the interfaces and functional logic remain consistent before and after refactoring.","commit_id":"0f46c921014eb3855a620be4144f4b7cc553a258"}],"skyline_apiserver/api/v1/extension.py":[{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"a727e4eaa7783d852400e5064167dcc57a389e42","unresolved":true,"context_lines":[{"line_number":232,"context_line":"        ser_image_mapping \u003d ser_image_mappings.get(server[\"id\"])"},{"line_number":233,"context_line":"        if ser_image_mapping:"},{"line_number":234,"context_line":"            server.update(ser_image_mapping)"},{"line_number":235,"context_line":"        else:"},{"line_number":236,"context_line":"            image_info \u003d image_mappings.get(server[\"image\"], {}) if server[\"image\"] else {}"},{"line_number":237,"context_line":"            server[\"image_name\"] \u003d image_info.get(\"name\")"},{"line_number":238,"context_line":"            server[\"image_os_distro\"] \u003d image_info.get(\"image_os_distro\")"},{"line_number":239,"context_line":"    if all_projects:"},{"line_number":240,"context_line":"        projects \u003d keystone.list_projects("},{"line_number":241,"context_line":"            profile\u003dprofile,"}],"source_content_type":"text/x-python","patch_set":1,"id":"4d822029_10b62e41","line":238,"range":{"start_line":235,"start_character":8,"end_line":238,"end_character":73},"updated":"2025-07-28 04:54:43.000000000","message":"这里的优化是有损的。和原来的 API 实现逻辑不完全一致。除非能确定前端兼容，否则先不要动。\nThe optimization here is lossy. Its implementation logic is not entirely consistent with the original API. Do not modify it unless it is confirmed that the frontend is compatible.","commit_id":"0f46c921014eb3855a620be4144f4b7cc553a258"},{"author":{"_account_id":6282,"name":"Wu Wenxiang","email":"wu.wenxiang@algoblu.com","username":"wu-wenxiang"},"change_message_id":"a89a1ecd2c77412a1a4fac6e8bb5a4d2dc26fc1a","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        ser_image_mapping \u003d ser_image_mappings.get(server[\"id\"])"},{"line_number":233,"context_line":"        if ser_image_mapping:"},{"line_number":234,"context_line":"            server.update(ser_image_mapping)"},{"line_number":235,"context_line":"        else:"},{"line_number":236,"context_line":"            image_info \u003d image_mappings.get(server[\"image\"], {}) if server[\"image\"] else {}"},{"line_number":237,"context_line":"            server[\"image_name\"] \u003d image_info.get(\"name\")"},{"line_number":238,"context_line":"            server[\"image_os_distro\"] \u003d image_info.get(\"image_os_distro\")"},{"line_number":239,"context_line":"    if all_projects:"},{"line_number":240,"context_line":"        projects \u003d keystone.list_projects("},{"line_number":241,"context_line":"            profile\u003dprofile,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ca16795_888ab755","line":238,"range":{"start_line":235,"start_character":8,"end_line":238,"end_character":73},"in_reply_to":"4d822029_10b62e41","updated":"2025-07-29 05:04:36.000000000","message":"Done","commit_id":"0f46c921014eb3855a620be4144f4b7cc553a258"}]}
