)]}'
{"app/js/controllers/grouped-runs.js":[{"author":{"_account_id":18158,"name":"Bruno Tavares","email":"btavare@thoughtworks.com","username":"bltavares"},"change_message_id":"d5b51e996d86ad25a9820e5ee824d76561c7062b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"  vm.searchJob \u003d \u0027\u0027;"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"  // Updates the page title based on the selected runMetadataKey"},{"line_number":15,"context_line":"  pageTitleService.update(runMetadataKey);"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"  // decodeURI is needed here because project names contains slash as part"},{"line_number":18,"context_line":"  // of the name. As this come from an URL part and URL can be encoded,"}],"source_content_type":"text/javascript","patch_set":6,"id":"ba8a016a_69211bb4","line":15,"updated":"2015-11-17 16:20:07.000000000","message":"Should the argument be decoded before updating the title, as it is happening of the following lines?","commit_id":"265105efbd2299b8ce28cfc4285395198b5cd2cd"}],"openstack_health/api.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e29102e386a934e3ef1aa535e689eb7fb11cb578","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        status_code \u003d 400"},{"line_number":226,"context_line":"        return abort(make_response(message, status_code))"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"    runs \u003d (api.get_time_series_runs_by_key_value(run_metadata_key,"},{"line_number":229,"context_line":"                                                  value,"},{"line_number":230,"context_line":"                                                  start_date,"},{"line_number":231,"context_line":"                                                  stop_date,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_ad858807","line":228,"updated":"2015-11-18 17:54:44.000000000","message":"Nit: You don\u0027t need to wrap this in () the function call already has a set of paren which you can use for putting the args on new lines.","commit_id":"d7651991899e621314964e58cae89e2932e8b9d9"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"e29102e386a934e3ef1aa535e689eb7fb11cb578","unresolved":false,"context_lines":[{"line_number":237,"context_line":"    # Group runs by the chosen data_range."},{"line_number":238,"context_line":"    # That does not apply when you choose \u0027sec\u0027 since runs are already grouped"},{"line_number":239,"context_line":"    # by it."},{"line_number":240,"context_line":"    aggregated_runs \u003d \\"},{"line_number":241,"context_line":"        RunAggregator(runs_by_build_name).aggregate(datetime_resolution)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    return jsonify(_aggregate_runs(aggregated_runs))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_edbdd0b7","line":240,"updated":"2015-11-18 17:54:44.000000000","message":"you don\u0027t need to use \\ here for the new line just start a new line after the paren in RunAggregator or aggregate and indent the new line","commit_id":"d7651991899e621314964e58cae89e2932e8b9d9"}],"openstack_health/run_aggregator.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"da996e6db81e089441d1ea03031a639aeea1035b","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def _update_datetime_to_fit_resolution(self, execution_datetime):"},{"line_number":22,"context_line":"        if self.datetime_resolution \u003d\u003d \u0027sec\u0027:"},{"line_number":23,"context_line":"            return execution_datetime.isoformat()"},{"line_number":24,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027min\u0027:"},{"line_number":25,"context_line":"            return (execution_datetime"},{"line_number":26,"context_line":"                    .replace(second\u003d0, microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_18f9d2c8","line":23,"updated":"2015-11-13 20:11:04.000000000","message":"Not really a bug with this patch, but you probably need to actually use sec resolution here with .replace(microsecond\u003d0)","commit_id":"3ac67346a687d6e679fd80b3aaaeb3bf6e57f55c"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"46f323747478a8d6cb91d8e75b352fd2d8c089c9","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def _update_datetime_to_fit_resolution(self, execution_datetime):"},{"line_number":22,"context_line":"        if self.datetime_resolution \u003d\u003d \u0027sec\u0027:"},{"line_number":23,"context_line":"            return execution_datetime.isoformat()"},{"line_number":24,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027min\u0027:"},{"line_number":25,"context_line":"            return (execution_datetime"},{"line_number":26,"context_line":"                    .replace(second\u003d0, microsecond\u003d0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_039ab563","line":23,"in_reply_to":"da85f559_18f9d2c8","updated":"2015-11-17 13:40:48.000000000","message":"Done","commit_id":"3ac67346a687d6e679fd80b3aaaeb3bf6e57f55c"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"da996e6db81e089441d1ea03031a639aeea1035b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        if self.datetime_resolution \u003d\u003d \u0027sec\u0027:"},{"line_number":23,"context_line":"            return execution_datetime.isoformat()"},{"line_number":24,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027min\u0027:"},{"line_number":25,"context_line":"            return (execution_datetime"},{"line_number":26,"context_line":"                    .replace(second\u003d0, microsecond\u003d0)"},{"line_number":27,"context_line":"                    .isoformat())"},{"line_number":28,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027hour\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_f8c40e60","line":25,"updated":"2015-11-13 20:11:04.000000000","message":"Nit: You don\u0027t actually need to wrap the whole thing in paren here, just split the param line on the comma and isoformat will fit in one line. I think that\u0027ll be cleaner.","commit_id":"3ac67346a687d6e679fd80b3aaaeb3bf6e57f55c"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"46f323747478a8d6cb91d8e75b352fd2d8c089c9","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        if self.datetime_resolution \u003d\u003d \u0027sec\u0027:"},{"line_number":23,"context_line":"            return execution_datetime.isoformat()"},{"line_number":24,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027min\u0027:"},{"line_number":25,"context_line":"            return (execution_datetime"},{"line_number":26,"context_line":"                    .replace(second\u003d0, microsecond\u003d0)"},{"line_number":27,"context_line":"                    .isoformat())"},{"line_number":28,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027hour\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_239d7959","line":25,"in_reply_to":"da85f559_f8c40e60","updated":"2015-11-17 13:40:48.000000000","message":"Done","commit_id":"3ac67346a687d6e679fd80b3aaaeb3bf6e57f55c"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"da996e6db81e089441d1ea03031a639aeea1035b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                    .replace(second\u003d0, microsecond\u003d0)"},{"line_number":27,"context_line":"                    .isoformat())"},{"line_number":28,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027hour\u0027:"},{"line_number":29,"context_line":"            return (execution_datetime"},{"line_number":30,"context_line":"                    .replace(minute\u003d0, second\u003d0, microsecond\u003d0)"},{"line_number":31,"context_line":"                    .isoformat())"},{"line_number":32,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027day\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_58aafa86","line":29,"updated":"2015-11-13 20:11:04.000000000","message":"Ditto","commit_id":"3ac67346a687d6e679fd80b3aaaeb3bf6e57f55c"},{"author":{"_account_id":17995,"name":"Glauco Oliveira","email":"gvinici@thoughtworks.com","username":"glauco"},"change_message_id":"46f323747478a8d6cb91d8e75b352fd2d8c089c9","unresolved":false,"context_lines":[{"line_number":26,"context_line":"                    .replace(second\u003d0, microsecond\u003d0)"},{"line_number":27,"context_line":"                    .isoformat())"},{"line_number":28,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027hour\u0027:"},{"line_number":29,"context_line":"            return (execution_datetime"},{"line_number":30,"context_line":"                    .replace(minute\u003d0, second\u003d0, microsecond\u003d0)"},{"line_number":31,"context_line":"                    .isoformat())"},{"line_number":32,"context_line":"        elif self.datetime_resolution \u003d\u003d \u0027day\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba8a016a_e39f714e","line":29,"in_reply_to":"da85f559_58aafa86","updated":"2015-11-17 13:40:48.000000000","message":"Done","commit_id":"3ac67346a687d6e679fd80b3aaaeb3bf6e57f55c"}]}
