)]}'
{"openstack_health/api.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"9b9727341f78dc4f186cad1a058613d450aed5dc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    return jsonify({\u0027runs\u0027: runs})"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"@app.route(\u0027/projects/runs\u0027, methods\u003d[\u0027GET\u0027])"},{"line_number":40,"context_line":"def get_runs_by_date():"},{"line_number":41,"context_line":"    global Session"},{"line_number":42,"context_line":"    session \u003d Session()"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba15a1d1_8049deb9","line":39,"updated":"2015-09-21 20:11:47.000000000","message":"The only problem I see with this approach is that the object we\u0027re querying here is a metadata key which may or may not be there (in theory).\n\nBesides, if we go down this route, we would end up having to implement a separate API for each metadata item we want to group our runs or tests or test runs by.\n\nMy proposal would be to have something like:\n\n/run-groups?group-by\u003dproiect","commit_id":"877830fc0d9627d8ea45dd207253a7626ac6e134"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"ca42792e59fd53924711f56294ae170cefee35c9","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            corr_res \u003d run.replace(minute\u003d0, second\u003d0, microsecond\u003d0)"},{"line_number":47,"context_line":"        elif date_res \u003d\u003d \u0027day\u0027:"},{"line_number":48,"context_line":"            corr_res \u003d run.date()"},{"line_number":49,"context_line":"        # Vuild runs dict with correct resolution"},{"line_number":50,"context_line":"        if corr_res in runs:"},{"line_number":51,"context_line":"            for local_run in sec_runs[run]:"},{"line_number":52,"context_line":"                if runs[corr_res].get(local_run, None):"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba15a1d1_c9c5c13d","line":49,"updated":"2015-09-21 21:18:13.000000000","message":"NIT: s/Vuild/Build","commit_id":"79cc0c13d408c24e9a93c124035733e851b270b6"},{"author":{"_account_id":18158,"name":"Bruno Tavares","email":"btavare@thoughtworks.com","username":"bltavares"},"change_message_id":"e8234bc4232cbfa8932da6edf5899c1e5246c27c","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            corr_res \u003d run.replace(minute\u003d0, second\u003d0, microsecond\u003d0)"},{"line_number":47,"context_line":"        elif date_res \u003d\u003d \u0027day\u0027:"},{"line_number":48,"context_line":"            corr_res \u003d run.date()"},{"line_number":49,"context_line":"        # Vuild runs dict with correct resolution"},{"line_number":50,"context_line":"        if corr_res in runs:"},{"line_number":51,"context_line":"            for local_run in sec_runs[run]:"},{"line_number":52,"context_line":"                if runs[corr_res].get(local_run, None):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_43095a2b","line":49,"updated":"2015-09-22 19:58:00.000000000","message":"Minor typo","commit_id":"d26d008dcaa7044406473a0728edcc17c13fcaac"},{"author":{"_account_id":18158,"name":"Bruno Tavares","email":"btavare@thoughtworks.com","username":"bltavares"},"change_message_id":"e8234bc4232cbfa8932da6edf5899c1e5246c27c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        runs \u003d sec_runs"},{"line_number":74,"context_line":"    else:"},{"line_number":75,"context_line":"        runs \u003d {}"},{"line_number":76,"context_line":"        if date_range not in [\u0027sec\u0027, \u0027min\u0027, \u0027hour\u0027, \u0027day\u0027]:"},{"line_number":77,"context_line":"            return (\u0027Datetime resolution: %s, is not a valid\u0027"},{"line_number":78,"context_line":"                    \u0027 choice\u0027 % date_range), 400"},{"line_number":79,"context_line":"        elif date_range is not \u0027sec\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_e38bce66","line":76,"updated":"2015-09-22 19:58:00.000000000","message":"I think it would be interesting to move this validation right after getting the argument from the request and short circuit if there is a date_range.\n\nThis would prevent we go on the API to then return an error and speedup the rsponse","commit_id":"d26d008dcaa7044406473a0728edcc17c13fcaac"},{"author":{"_account_id":18158,"name":"Bruno Tavares","email":"btavare@thoughtworks.com","username":"bltavares"},"change_message_id":"c9c26caeeebd1b880ea030f70f7279ed3951153c","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        runs \u003d sec_runs"},{"line_number":74,"context_line":"    else:"},{"line_number":75,"context_line":"        runs \u003d {}"},{"line_number":76,"context_line":"        if date_range not in [\u0027sec\u0027, \u0027min\u0027, \u0027hour\u0027, \u0027day\u0027]:"},{"line_number":77,"context_line":"            return (\u0027Datetime resolution: %s, is not a valid\u0027"},{"line_number":78,"context_line":"                    \u0027 choice\u0027 % date_range), 400"},{"line_number":79,"context_line":"        elif date_range is not \u0027sec\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_189f4c51","line":76,"in_reply_to":"ba15a1d1_23cd465d","updated":"2015-09-22 20:49:38.000000000","message":"Fair enough.","commit_id":"d26d008dcaa7044406473a0728edcc17c13fcaac"},{"author":{"_account_id":11682,"name":"Ryan Moats","email":"rmoats@us.ibm.com","username":"regXboi"},"change_message_id":"41a286892d10bb5fe853c61d8746402e7b79dba7","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        runs \u003d sec_runs"},{"line_number":74,"context_line":"    else:"},{"line_number":75,"context_line":"        runs \u003d {}"},{"line_number":76,"context_line":"        if date_range not in [\u0027sec\u0027, \u0027min\u0027, \u0027hour\u0027, \u0027day\u0027]:"},{"line_number":77,"context_line":"            return (\u0027Datetime resolution: %s, is not a valid\u0027"},{"line_number":78,"context_line":"                    \u0027 choice\u0027 % date_range), 400"},{"line_number":79,"context_line":"        elif date_range is not \u0027sec\u0027:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba15a1d1_23cd465d","line":76,"in_reply_to":"ba15a1d1_e38bce66","updated":"2015-09-22 20:03:14.000000000","message":"I\u0027m of the opinion of getting stuff merged and working and then address things like this in a subsequent patch","commit_id":"d26d008dcaa7044406473a0728edcc17c13fcaac"}]}
