)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"de7886394822f5d73beac1f18927208de3d9fd0d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     pengyuesheng \u003cpengyuesheng@gohighsec.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-10-25 15:54:17 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Delete gateway ip error message"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In the Create Subnet page, enter a special symbol"},{"line_number":10,"context_line":"for the gateway address, for example *.,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_f614fc43","line":7,"updated":"2018-10-28 10:39:41.000000000","message":"I think the right summary would be \"Ignore error msg for gateway IP when gateway is disabled\".\n\n\"Delete gateway ip error message\" is too implemented detail and it is not easy to understand the commit message.","commit_id":"8ab1aa65b8cfb3109a3cb30754f99fed7c6eab52"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"de7886394822f5d73beac1f18927208de3d9fd0d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In the Create Subnet page, enter a special symbol"},{"line_number":10,"context_line":"for the gateway address, for example *.,"},{"line_number":11,"context_line":"check Disable Gateway and click Next."},{"line_number":12,"context_line":"Therefore, when the gateway is disabled,"},{"line_number":13,"context_line":"Delete gateway ip error message."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Result: Clicking the \"Next\" button has no effect."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_563850c9","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":32},"updated":"2018-10-28 10:39:41.000000000","message":"Could you explain the root cause? Otherwise \"Therefore\" does not make sense.","commit_id":"8ab1aa65b8cfb3109a3cb30754f99fed7c6eab52"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"9651dc9434cb5c15cd8487a6b733792a07ab969b","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In the Create Subnet page, enter a special symbol"},{"line_number":10,"context_line":"for the gateway address, for example *.,"},{"line_number":11,"context_line":"check Disable Gateway and click Next."},{"line_number":12,"context_line":"Therefore, when the gateway is disabled,"},{"line_number":13,"context_line":"Delete gateway ip error message."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Result: Clicking the \"Next\" button has no effect."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_98eb5ca3","line":13,"range":{"start_line":12,"start_character":0,"end_line":13,"end_character":32},"in_reply_to":"3f79a3b5_563850c9","updated":"2018-10-30 08:42:52.000000000","message":"Not addressed in patch set 2.","commit_id":"8ab1aa65b8cfb3109a3cb30754f99fed7c6eab52"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"de7886394822f5d73beac1f18927208de3d9fd0d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Therefore, when the gateway is disabled,"},{"line_number":13,"context_line":"Delete gateway ip error message."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Result: Clicking the \"Next\" button has no effect."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I8d13819175701885412ab4813e19aba0ac63a3c3"},{"line_number":18,"context_line":"Closes-Bug: #1799896"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_363d94bb","line":15,"updated":"2018-10-28 10:39:41.000000000","message":"The previous behavior here should be described just after L.11. Otherwise, L.15 is confusing.","commit_id":"8ab1aa65b8cfb3109a3cb30754f99fed7c6eab52"}],"openstack_dashboard/test/helpers.py":[{"author":{"_account_id":25946,"name":"Wangliangyu","email":"wangly2097@chinaunicom.cn","username":"wangliangyu"},"change_message_id":"8c82e5e71b20e34706db38f8c03dc24427189246","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        mocked_method.assert_has_calls([expected_call] * count)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def assertNoWorkflowErrors(self, response, context_name\u003d\"workflow\"):"},{"line_number":389,"context_line":"        \"\"\"Checks for no form errors."},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        Asserts that the response either does not contain a form in its"},{"line_number":392,"context_line":"        context, or that if it does, that form has no errors."}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_170a121d","line":389,"range":{"start_line":389,"start_character":11,"end_line":389,"end_character":37},"updated":"2018-11-07 09:39:06.000000000","message":"The description of the method is not correct.","commit_id":"765fc1c78ef5f2d8bb6b166ecc4b9f685945fd56"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"d0619662e91d5cf1713cb8346c929ed66cc24567","unresolved":false,"context_lines":[{"line_number":396,"context_line":"            return True"},{"line_number":397,"context_line":"        errors \u003d [step.action._errors for step in"},{"line_number":398,"context_line":"                  response.context[context_name].steps]"},{"line_number":399,"context_line":"        assert len(errors) \u003d\u003d 0, \\"},{"line_number":400,"context_line":"            \"Unexpected errors were found on the workflow: %s\" % errors"},{"line_number":401,"context_line":""},{"line_number":402,"context_line":"    def assertWorkflowErrors(self, response, count\u003d0, message\u003dNone,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_cff7098e","line":399,"range":{"start_line":399,"start_character":8,"end_line":399,"end_character":32},"updated":"2018-11-08 11:34:06.000000000","message":"Could you use assertEqual or similar stuff? This is the way we usually do in this repository.\n\nThis applies to other assert too.","commit_id":"24ccfc8635755471e9f1926bf3203da3152487f9"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"35b931139fe9e8aa5a0bb221f428eaaa25097ea3","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            0, len(errors),"},{"line_number":401,"context_line":"            \"Unexpected errors were found on the workflow: %s\" % errors)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def assertWorkflowErrors(self, response, count\u003d0, message\u003dNone,"},{"line_number":404,"context_line":"                             context_name\u003d\"workflow\"):"},{"line_number":405,"context_line":"        \"\"\"Check for workflow errors."},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_3b6ee62c","line":403,"updated":"2018-11-09 12:02:28.000000000","message":"This method doesn\u0027t seem to be used anywhere.","commit_id":"cb5e120830be630115c39f2e585d839776bceb0b"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"94c49b94382b1fa2cae5483cf5ad0f7195a54e04","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            0, len(errors),"},{"line_number":401,"context_line":"            \"Unexpected errors were found on the workflow: %s\" % errors)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def assertWorkflowErrors(self, response, count\u003d0, message\u003dNone,"},{"line_number":404,"context_line":"                             context_name\u003d\"workflow\"):"},{"line_number":405,"context_line":"        \"\"\"Check for workflow errors."},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_bc3f3321","line":403,"in_reply_to":"3f79a3b5_027288e4","updated":"2018-11-12 10:05:51.000000000","message":"I can see that it could be useful, but perhaps it should be added together with the code that uses it, when it is actually needed. Like this, it\u0027s just dead code that increases maintenance costs without a benefit.","commit_id":"cb5e120830be630115c39f2e585d839776bceb0b"},{"author":{"_account_id":27822,"name":"pengyuesheng","email":"pengyuesheng@gohighsec.com","username":"pengyuesheng"},"change_message_id":"921d2f47b37c42b915adbf5eb1e47519747b3599","unresolved":false,"context_lines":[{"line_number":400,"context_line":"            0, len(errors),"},{"line_number":401,"context_line":"            \"Unexpected errors were found on the workflow: %s\" % errors)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def assertWorkflowErrors(self, response, count\u003d0, message\u003dNone,"},{"line_number":404,"context_line":"                             context_name\u003d\"workflow\"):"},{"line_number":405,"context_line":"        \"\"\"Check for workflow errors."},{"line_number":406,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_027288e4","line":403,"in_reply_to":"3f79a3b5_3b6ee62c","updated":"2018-11-12 01:48:00.000000000","message":"Although it is not used, I think it should be added, it is to check the workflow","commit_id":"cb5e120830be630115c39f2e585d839776bceb0b"}]}
