)]}'
{"rally/common/db/sqlalchemy/api.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"046520cc222a772e0dc212ed596b9fad7663287d","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    def subtask_create(self, task_uuid, values):"},{"line_number":414,"context_line":"        subtask \u003d models.Subtask(task_uuid\u003dtask_uuid)"},{"line_number":415,"context_line":"        subtask.update({"},{"line_number":416,"context_line":"            \"title\": values[\"title\"],"},{"line_number":417,"context_line":"            \"description\": values.get(\"description\"),"},{"line_number":418,"context_line":"            \"context\": values.get(\"context\", {}),"},{"line_number":419,"context_line":"        })"},{"line_number":420,"context_line":"        subtask.save()"},{"line_number":421,"context_line":"        return subtask"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_cc0e6a8b","line":418,"range":{"start_line":416,"start_character":13,"end_line":418,"end_character":49},"updated":"2016-11-28 17:13:32.000000000","message":"We do not have a lot of values, so we can list them as function arguments.","commit_id":"e446229699620d6746ece7851b7c4596f019e8e1"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"2570fb4ec870be9f1c601384be1f6ffb33a08393","unresolved":false,"context_lines":[{"line_number":413,"context_line":"    def subtask_create(self, task_uuid, values):"},{"line_number":414,"context_line":"        subtask \u003d models.Subtask(task_uuid\u003dtask_uuid)"},{"line_number":415,"context_line":"        subtask.update({"},{"line_number":416,"context_line":"            \"title\": values[\"title\"],"},{"line_number":417,"context_line":"            \"description\": values.get(\"description\"),"},{"line_number":418,"context_line":"            \"context\": values.get(\"context\", {}),"},{"line_number":419,"context_line":"        })"},{"line_number":420,"context_line":"        subtask.save()"},{"line_number":421,"context_line":"        return subtask"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_a27bd2bc","line":418,"range":{"start_line":416,"start_character":13,"end_line":418,"end_character":49},"in_reply_to":"5a74a57a_cc0e6a8b","updated":"2016-11-29 11:46:11.000000000","message":"Done","commit_id":"e446229699620d6746ece7851b7c4596f019e8e1"}],"rally/task/engine.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"046520cc222a772e0dc212ed596b9fad7663287d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.load_finished_at \u003d 0"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.sla_checker \u003d sla.SLAChecker(key[\"kw\"])"},{"line_number":72,"context_line":"        self.hook_executor \u003d hook.HookExecutor(key[\"kw\"], self.task)"},{"line_number":73,"context_line":"        self.abort_on_sla_failure \u003d abort_on_sla_failure"},{"line_number":74,"context_line":"        self.is_done \u003d threading.Event()"},{"line_number":75,"context_line":"        self.unexpected_failure \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_2cfc3e3d","line":72,"range":{"start_line":72,"start_character":58,"end_line":72,"end_character":68},"updated":"2016-11-28 17:13:32.000000000","message":"Do we need here task or subtask?","commit_id":"e446229699620d6746ece7851b7c4596f019e8e1"},{"author":{"_account_id":19011,"name":"Anton Studenov","email":"tohin1332@gmail.com","username":"tohin"},"change_message_id":"713bf7fe7fc77db7f7a95dc4930d37507c847e80","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        self.load_finished_at \u003d 0"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        self.sla_checker \u003d sla.SLAChecker(key[\"kw\"])"},{"line_number":72,"context_line":"        self.hook_executor \u003d hook.HookExecutor(key[\"kw\"], self.task)"},{"line_number":73,"context_line":"        self.abort_on_sla_failure \u003d abort_on_sla_failure"},{"line_number":74,"context_line":"        self.is_done \u003d threading.Event()"},{"line_number":75,"context_line":"        self.unexpected_failure \u003d {}"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a74a57a_0f95b485","line":72,"range":{"start_line":72,"start_character":58,"end_line":72,"end_character":68},"in_reply_to":"5a74a57a_2cfc3e3d","updated":"2016-11-28 17:22:14.000000000","message":"task is required here for logging and hook plugins","commit_id":"e446229699620d6746ece7851b7c4596f019e8e1"}]}
