)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"fca70494f0268e17f4f58f2f3cc421f9aba2a55d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix url_path valid check"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Close-bug: #1701456"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ia4595413d9f08e0b0198fba2b3c4932abec7a67a"},{"line_number":12,"context_line":"Signed-off-by: cheng \u003ctangch318@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ff346bd7_b7a2404a","line":9,"updated":"2017-07-26 05:44:02.000000000","message":"Should we fix this to \"Closes-Bug\" or I guess we could manually track?","commit_id":"89ab5549a51ee50a17e12d4d36120057773a2896"}],"octavia/common/exceptions.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7d2dd8594a10d1380cdbc6323e3cf4fdd7fe5b28","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    message \u003d _(\u0027Not a valid URL: %(url)s\u0027)"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"class InvalidURLPath(OctaviaException):"},{"line_number":243,"context_line":"    message \u003d _(\u0027Not a valid URLPath: %(url_path)s\u0027)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_3130c956","line":242,"range":{"start_line":242,"start_character":21,"end_line":242,"end_character":37},"updated":"2017-06-30 14:05:11.000000000","message":"This will be raised in the API so it should be an APIException with msg instead of message and a code (400)","commit_id":"ae5275eb8f8bf9f6e0e7ea5bbfb3c58330a3d100"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"2267d506a8dcd5ffd07836d48581d22606cddfa8","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"class InvalidURLPath(APIException):"},{"line_number":243,"context_line":"    message \u003d _(\u0027Not a valid URLPath: %(url_path)s\u0027)"},{"line_number":244,"context_line":"    code \u003d 400"},{"line_number":245,"context_line":""},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f1d235d_1851370f","line":243,"range":{"start_line":243,"start_character":4,"end_line":243,"end_character":11},"updated":"2017-07-03 20:23:22.000000000","message":"Unfortunately, this should be \"msg\" for APIExceptions","commit_id":"b71a07a1fdaaa2eabeba6027879d7f8ecbbd42c7"}],"octavia/common/validate.py":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7d2dd8594a10d1380cdbc6323e3cf4fdd7fe5b28","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if ("},{"line_number":55,"context_line":"            p_url.scheme or p_url.user_info or p_url.host or"},{"line_number":56,"context_line":"            p_url.port or p_url.query or p_url.fragment or"},{"line_number":57,"context_line":"            p_url.path is None"},{"line_number":58,"context_line":"        ):"},{"line_number":59,"context_line":"            raise exceptions.InvalidURLPath(url_path\u003durl_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_f1eb71ad","line":56,"range":{"start_line":56,"start_character":26,"end_line":56,"end_character":55},"updated":"2017-06-30 14:05:11.000000000","message":"Do we need to exclude these?  Does haproxy not support these?","commit_id":"ae5275eb8f8bf9f6e0e7ea5bbfb3c58330a3d100"},{"author":{"_account_id":21950,"name":"cheng","email":"tangch318@gmail.com","username":"cheng"},"change_message_id":"88173e7ea42d0302a24a73c0cdd18c2a82c09af4","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if ("},{"line_number":55,"context_line":"            p_url.scheme or p_url.user_info or p_url.host or"},{"line_number":56,"context_line":"            p_url.port or p_url.query or p_url.fragment or"},{"line_number":57,"context_line":"            p_url.path is None"},{"line_number":58,"context_line":"        ):"},{"line_number":59,"context_line":"            raise exceptions.InvalidURLPath(url_path\u003durl_path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f1d235d_261d1f66","line":56,"range":{"start_line":56,"start_character":26,"end_line":56,"end_character":55},"in_reply_to":"3f1d235d_f1eb71ad","updated":"2017-07-01 08:36:00.000000000","message":"yes, I think need check this. from RFC3986. URI path is not include query and fragment.\nThe bug https://bugs.launchpad.net/octavia/+bug/1692460 address the url query.","commit_id":"ae5275eb8f8bf9f6e0e7ea5bbfb3c58330a3d100"},{"author":{"_account_id":21950,"name":"cheng","email":"tangch318@gmail.com","username":"cheng"},"change_message_id":"48d90a9f2dce3a9cbec9c3e338d9bf2437d916f6","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"        if ("},{"line_number":55,"context_line":"            p_url.scheme or p_url.userinfo or p_url.host or"},{"line_number":56,"context_line":"            p_url.port or p_url.query or p_url.fragment or"},{"line_number":57,"context_line":"            p_url.path is None"},{"line_number":58,"context_line":"        ):"},{"line_number":59,"context_line":"            raise exceptions.InvalidURLPath(url_path\u003durl_path)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_27d4ce1f","line":56,"range":{"start_line":56,"start_character":26,"end_line":56,"end_character":55},"updated":"2017-07-04 02:52:19.000000000","message":"I\u0027d like to skip this check. :)","commit_id":"b9226c234b812c50bf97b2768112c58790d0cb69"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"fca70494f0268e17f4f58f2f3cc421f9aba2a55d","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        if ("},{"line_number":55,"context_line":"            p_url.scheme or p_url.userinfo or p_url.host or"},{"line_number":56,"context_line":"            p_url.port or"},{"line_number":57,"context_line":"            p_url.path is None"},{"line_number":58,"context_line":"        ):"},{"line_number":59,"context_line":"            raise exceptions.InvalidURLPath(url_path\u003durl_path)"},{"line_number":60,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_17646c21","line":57,"updated":"2017-07-26 05:44:02.000000000","message":"Wait, we WANT a scheme? I thought the *problem* was that the other version ALLOWED a scheme... What exactly are we trying to solve? I don\u0027t really understand the bug.","commit_id":"89ab5549a51ee50a17e12d4d36120057773a2896"},{"author":{"_account_id":10273,"name":"Adam Harwell","email":"flux.adam@gmail.com","username":"rm_you"},"change_message_id":"b73ccb070436a9bfd0330848177d0c389eb79002","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        if ("},{"line_number":55,"context_line":"            p_url.scheme or p_url.userinfo or p_url.host or"},{"line_number":56,"context_line":"            p_url.port or"},{"line_number":57,"context_line":"            p_url.path is None"},{"line_number":58,"context_line":"        ):"},{"line_number":59,"context_line":"            raise exceptions.InvalidURLPath(url_path\u003durl_path)"},{"line_number":60,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff346bd7_84f12498","line":57,"in_reply_to":"ff346bd7_17646c21","updated":"2017-07-26 22:59:20.000000000","message":"Nevermind, got it.","commit_id":"89ab5549a51ee50a17e12d4d36120057773a2896"}]}
