)]}'
{"cyborg/common/exception.py":[{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"ff0ee4a605899d8ae7e46e533847668dd41d218e","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"class Forbidden(CyborgException):"},{"line_number":90,"context_line":"    msg_fmt \u003d _(\"Forbidden\")"},{"line_number":91,"context_line":"    code \u003d 403"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class ARQInvalidState(CyborgException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_9ed8a6f0","line":91,"range":{"start_line":91,"start_character":11,"end_line":91,"end_character":14},"updated":"2019-08-29 02:47:04.000000000","message":"change 403 to http_client.FORBIDDEN","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"076de7471a11cab232f69805354b402c4e4b25aa","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"class Forbidden(CyborgException):"},{"line_number":90,"context_line":"    msg_fmt \u003d _(\"Forbidden\")"},{"line_number":91,"context_line":"    code \u003d 403"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class ARQInvalidState(CyborgException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_634d0e3a","line":91,"range":{"start_line":91,"start_character":11,"end_line":91,"end_character":14},"in_reply_to":"7faddb67_9ed8a6f0","updated":"2019-08-29 06:04:13.000000000","message":"Done","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"80f085c991d56497d33a28f1c8c5e2eba531dc4b","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"class Forbidden(CyborgException):"},{"line_number":90,"context_line":"    msg_fmt \u003d _(\"Forbidden\")"},{"line_number":91,"context_line":"    code \u003d 403"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"class ARQInvalidState(CyborgException):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_a0345ce0","line":91,"range":{"start_line":91,"start_character":11,"end_line":91,"end_character":14},"in_reply_to":"7faddb67_9ed8a6f0","updated":"2019-08-29 03:02:47.000000000","message":"Thanks. I will update it.","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"ff0ee4a605899d8ae7e46e533847668dd41d218e","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"class NotAuthorized(CyborgException):"},{"line_number":180,"context_line":"    _msg_fmt \u003d _(\"Not authorized.\")"},{"line_number":181,"context_line":"    code \u003d http_client.FORBIDDEN"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class HTTPForbidden(NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_feeafa71","line":181,"range":{"start_line":181,"start_character":23,"end_line":181,"end_character":32},"updated":"2019-08-29 02:47:04.000000000","message":"please also change this to http_client.UNAUTHORIZED","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"076de7471a11cab232f69805354b402c4e4b25aa","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"class NotAuthorized(CyborgException):"},{"line_number":180,"context_line":"    _msg_fmt \u003d _(\"Not authorized.\")"},{"line_number":181,"context_line":"    code \u003d http_client.FORBIDDEN"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class HTTPForbidden(NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_435252e0","line":181,"range":{"start_line":181,"start_character":23,"end_line":181,"end_character":32},"in_reply_to":"7faddb67_feeafa71","updated":"2019-08-29 06:04:13.000000000","message":"Done","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"80f085c991d56497d33a28f1c8c5e2eba531dc4b","unresolved":false,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"class NotAuthorized(CyborgException):"},{"line_number":180,"context_line":"    _msg_fmt \u003d _(\"Not authorized.\")"},{"line_number":181,"context_line":"    code \u003d http_client.FORBIDDEN"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class HTTPForbidden(NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_403328f7","line":181,"range":{"start_line":181,"start_character":23,"end_line":181,"end_character":32},"in_reply_to":"7faddb67_feeafa71","updated":"2019-08-29 03:02:47.000000000","message":"Ok.","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":14107,"name":"zhurong","email":"aaronzhu1121@gmail.com","username":"zhurong"},"change_message_id":"ff0ee4a605899d8ae7e46e533847668dd41d218e","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    code \u003d http_client.FORBIDDEN"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class HTTPForbidden(NotAuthorized):"},{"line_number":185,"context_line":"    _msg_fmt \u003d _(\"Access was denied to the following resource: %(resource)s\")"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_9e5d064a","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":33},"updated":"2019-08-29 02:47:04.000000000","message":"this inherit to Forbidden","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"076de7471a11cab232f69805354b402c4e4b25aa","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    code \u003d http_client.FORBIDDEN"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class HTTPForbidden(NotAuthorized):"},{"line_number":185,"context_line":"    _msg_fmt \u003d _(\"Access was denied to the following resource: %(resource)s\")"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_83484a2e","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":33},"in_reply_to":"7faddb67_9e5d064a","updated":"2019-08-29 06:04:13.000000000","message":"Done","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"},{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"80f085c991d56497d33a28f1c8c5e2eba531dc4b","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    code \u003d http_client.FORBIDDEN"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class HTTPForbidden(NotAuthorized):"},{"line_number":185,"context_line":"    _msg_fmt \u003d _(\"Access was denied to the following resource: %(resource)s\")"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7faddb67_602e648d","line":184,"range":{"start_line":184,"start_character":20,"end_line":184,"end_character":33},"in_reply_to":"7faddb67_9e5d064a","updated":"2019-08-29 03:02:47.000000000","message":"Ok.","commit_id":"48d1c71179cf3b6634b2f2801e9dbc0d8efec340"}],"cyborg/context.py":[{"author":{"_account_id":28748,"name":"chenker","email":"chen.ke14@zte.com.cn","username":"chenke"},"change_message_id":"f3508e23ae134474ef2ef29f08577426d80ab7ff","unresolved":false,"context_lines":[{"line_number":151,"context_line":"    admin context."},{"line_number":152,"context_line":"    \"\"\""},{"line_number":153,"context_line":"    if not ctxt.is_admin and not is_user_context(ctxt):"},{"line_number":154,"context_line":"        raise exception.Forbidden()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"def authorize_project_context(context, project_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_c35722ca","line":154,"range":{"start_line":154,"start_character":14,"end_line":154,"end_character":35},"updated":"2019-08-29 06:06:18.000000000","message":"Because Line 154 needs to use Forbidden class, so we define this class in common/exception.py","commit_id":"9a339e18d45c347c39281a7c7eba948e7d8075ae"}]}
