)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"e5765850f08e8e5128c57fcc656fd59241e15131","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"a817db47_b3201ad1","updated":"2021-11-29 14:53:00.000000000","message":"Executing the merging as we agreed during today\u0027s meeting.","commit_id":"8949ffebb821a6fd1645c61b0e12914ee7a27d8d"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"4f9d9f573e02998fc9558ff3e0fc92487027bf80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7b625feb_128f0c7d","updated":"2021-11-29 18:13:52.000000000","message":"recheck","commit_id":"8949ffebb821a6fd1645c61b0e12914ee7a27d8d"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"df09eb2c00b4a770522a51d280c2fba3a7ce7c9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"b497abe1_9972e877","updated":"2021-12-02 12:56:58.000000000","message":"Let\u0027s see if it merges now","commit_id":"6ba9d45ea69ea308ae21052e45a8d114c39145da"}],"cloudkitty/api/v2/summary/summary.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"0940c60dd2ce851e2b87900389c696260b60d2d0","unresolved":true,"context_lines":[{"line_number":97,"context_line":"            response[\u0027columns\u0027] \u003d columns"},{"line_number":98,"context_line":"            response[\u0027results\u0027] \u003d [list(res.values())"},{"line_number":99,"context_line":"                                   for res in total[\u0027results\u0027]]"},{"line_number":100,"context_line":"        if response_format \u003d\u003d OBJECT_RESPONSE_FORMAT:"},{"line_number":101,"context_line":"            response[\u0027results\u0027] \u003d total[\u0027results\u0027]"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        response[\u0027format\u0027] \u003d response_format"}],"source_content_type":"text/x-python","patch_set":8,"id":"eccded9a_c93e240d","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":10},"updated":"2021-10-04 14:13:27.000000000","message":"Nit: could be an `elif`.","commit_id":"a492d566fa26fa71674ceb44e4686609531b0441"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"97554c06a5e648aaa725c5aa4f7e21b97bcedeb4","unresolved":false,"context_lines":[{"line_number":97,"context_line":"            response[\u0027columns\u0027] \u003d columns"},{"line_number":98,"context_line":"            response[\u0027results\u0027] \u003d [list(res.values())"},{"line_number":99,"context_line":"                                   for res in total[\u0027results\u0027]]"},{"line_number":100,"context_line":"        if response_format \u003d\u003d OBJECT_RESPONSE_FORMAT:"},{"line_number":101,"context_line":"            response[\u0027results\u0027] \u003d total[\u0027results\u0027]"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        response[\u0027format\u0027] \u003d response_format"}],"source_content_type":"text/x-python","patch_set":8,"id":"f33c3c95_4c6132ef","line":100,"range":{"start_line":100,"start_character":8,"end_line":100,"end_character":10},"in_reply_to":"eccded9a_c93e240d","updated":"2021-10-04 19:21:30.000000000","message":"Done","commit_id":"a492d566fa26fa71674ceb44e4686609531b0441"}],"cloudkitty/storage/v2/influx.py":[{"author":{"_account_id":25277,"name":"Mariusz Karpiarz","email":"mariusz.karpiarz@codethink.co.uk","username":"mkarpiarz"},"change_message_id":"dffe8f086a0376b29f7456dc5a3d0bbddb9fb9aa","unresolved":true,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        self.validate_custom_fields(custom_fields)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        # We validate the SQL statements. Therefore, we can ignore this"},{"line_number":196,"context_line":"        # bandit warning here."},{"line_number":197,"context_line":"        query \u003d \u0027SELECT %s FROM \"dataframes\"\u0027 % custom_fields  # nosec"},{"line_number":198,"context_line":"        query +\u003d self._get_time_query(begin, end)"}],"source_content_type":"text/x-python","patch_set":2,"id":"e9319e3e_e24043a5","line":195,"updated":"2021-03-04 14:14:21.000000000","message":"This also doesn\u0027t seem to be relevant to the v2 summary API.","commit_id":"67f709813ed99943ab48081ba9512b4eef687cac"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"d3e45dae3eae74e152a12dc79a46eb7fe68fa97d","unresolved":true,"context_lines":[{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        self.validate_custom_fields(custom_fields)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        # We validate the SQL statements. Therefore, we can ignore this"},{"line_number":196,"context_line":"        # bandit warning here."},{"line_number":197,"context_line":"        query \u003d \u0027SELECT %s FROM \"dataframes\"\u0027 % custom_fields  # nosec"},{"line_number":198,"context_line":"        query +\u003d self._get_time_query(begin, end)"}],"source_content_type":"text/x-python","patch_set":2,"id":"b8e8762b_59dc69e9","line":195,"in_reply_to":"e9319e3e_e24043a5","updated":"2021-03-05 14:56:52.000000000","message":"I do not see a problem here. I just added this one in this patch because I noticed while working in this patch that bandit was broken due to the missing #nosec here. That is why I added. I can remove and add in another patch, but then, it seems something so small, to be on its own patch.","commit_id":"67f709813ed99943ab48081ba9512b4eef687cac"}],"doc/source/_static/cloudkitty.conf.sample":[{"author":{"_account_id":25277,"name":"Mariusz Karpiarz","email":"mariusz.karpiarz@codethink.co.uk","username":"mkarpiarz"},"change_message_id":"dffe8f086a0376b29f7456dc5a3d0bbddb9fb9aa","unresolved":true,"context_lines":[{"line_number":1212,"context_line":"# heartbeat. (integer value)"},{"line_number":1213,"context_line":"#heartbeat_rate \u003d 2"},{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"# DEPRECATED: (DEPRECATED) Enable/Disable the RabbitMQ mandatory flag"},{"line_number":1216,"context_line":"# for direct send. The direct send is used as reply, so the"},{"line_number":1217,"context_line":"# MessageUndeliverable exception is raised in case the client queue"},{"line_number":1218,"context_line":"# does not exist.This flag is deprecated and it will not be possible"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"9abc5d19_b6e7a412","line":1215,"updated":"2021-03-04 14:14:21.000000000","message":"Wouldn\u0027t it be better to submit this change as a separate patch? From what I can see this has nothing to do with the v2 summary API.","commit_id":"67f709813ed99943ab48081ba9512b4eef687cac"},{"author":{"_account_id":25277,"name":"Mariusz Karpiarz","email":"mariusz.karpiarz@codethink.co.uk","username":"mkarpiarz"},"change_message_id":"4ecbae6ad73497b4c77e19119902bc80546d2d02","unresolved":true,"context_lines":[{"line_number":1212,"context_line":"# heartbeat. (integer value)"},{"line_number":1213,"context_line":"#heartbeat_rate \u003d 2"},{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"# DEPRECATED: (DEPRECATED) Enable/Disable the RabbitMQ mandatory flag"},{"line_number":1216,"context_line":"# for direct send. The direct send is used as reply, so the"},{"line_number":1217,"context_line":"# MessageUndeliverable exception is raised in case the client queue"},{"line_number":1218,"context_line":"# does not exist.This flag is deprecated and it will not be possible"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"eafeddd4_da02398d","line":1215,"in_reply_to":"567b3e10_6dc09a71","updated":"2021-03-05 17:54:59.000000000","message":"No, it\u0027s nothing important, just a personal preference. Let\u0027s leave this code there.","commit_id":"67f709813ed99943ab48081ba9512b4eef687cac"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"d3e45dae3eae74e152a12dc79a46eb7fe68fa97d","unresolved":true,"context_lines":[{"line_number":1212,"context_line":"# heartbeat. (integer value)"},{"line_number":1213,"context_line":"#heartbeat_rate \u003d 2"},{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"# DEPRECATED: (DEPRECATED) Enable/Disable the RabbitMQ mandatory flag"},{"line_number":1216,"context_line":"# for direct send. The direct send is used as reply, so the"},{"line_number":1217,"context_line":"# MessageUndeliverable exception is raised in case the client queue"},{"line_number":1218,"context_line":"# does not exist.This flag is deprecated and it will not be possible"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"567b3e10_6dc09a71","line":1215,"in_reply_to":"9abc5d19_b6e7a412","updated":"2021-03-05 14:56:52.000000000","message":"It was alto generated when I ran some of the DOCs tasks from TOX. I see no problem in this going together with this patch. However, if you think it is important to separate these, I can do so.","commit_id":"67f709813ed99943ab48081ba9512b4eef687cac"}],"doc/source/api-reference/v2/summary/summary_parameters.yml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"d93be1d617cbbb579c8ee9f9eadbeac772ad7687","unresolved":true,"context_lines":[{"line_number":67,"context_line":"response_format:"},{"line_number":68,"context_line":"  in: query"},{"line_number":69,"context_line":"  description: |"},{"line_number":70,"context_line":"    Optional attribute to define the object structure used in the response."},{"line_number":71,"context_line":"    Both responses will be JSON objects. Possible values are `table` or"},{"line_number":72,"context_line":"    `object`."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    The default value is `table` object structure, where one has the"},{"line_number":75,"context_line":"    attributes `total`, which indicates the total number of entries in the"},{"line_number":76,"context_line":"    response; `results`, which is a list of lists, where the nested list"},{"line_number":77,"context_line":"    contains the values of each entry; and, `columns`, which is the attribute"},{"line_number":78,"context_line":"    that describes all of the available columns. Then, each index in this"},{"line_number":79,"context_line":"    list (`columns`) corresponds to the metadata of the values in the `results`"},{"line_number":80,"context_line":"    list."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    The structure for the `object` option uses a dictionary. The response still"},{"line_number":83,"context_line":"    has the `total` attribute. However, in the `results` attribute, one will"},{"line_number":84,"context_line":"    find a list of objects, instead of a list of lists of values that we see"},{"line_number":85,"context_line":"    in the `table` option. This facilitates the processing of some use cases."},{"line_number":86,"context_line":"  type: string"},{"line_number":87,"context_line":"  required: false"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":9,"id":"578ae6a2_2812fee8","line":85,"range":{"start_line":70,"start_character":0,"end_line":85,"end_character":77},"updated":"2021-11-29 14:07:30.000000000","message":"I think you want to use double ticks instead of single, like in custom_fields.","commit_id":"03732dfe113e67346af220f7faedddd03167d0ac"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"8ad36f2d6d7ef5c98490657203b74899db069084","unresolved":false,"context_lines":[{"line_number":67,"context_line":"response_format:"},{"line_number":68,"context_line":"  in: query"},{"line_number":69,"context_line":"  description: |"},{"line_number":70,"context_line":"    Optional attribute to define the object structure used in the response."},{"line_number":71,"context_line":"    Both responses will be JSON objects. Possible values are `table` or"},{"line_number":72,"context_line":"    `object`."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    The default value is `table` object structure, where one has the"},{"line_number":75,"context_line":"    attributes `total`, which indicates the total number of entries in the"},{"line_number":76,"context_line":"    response; `results`, which is a list of lists, where the nested list"},{"line_number":77,"context_line":"    contains the values of each entry; and, `columns`, which is the attribute"},{"line_number":78,"context_line":"    that describes all of the available columns. Then, each index in this"},{"line_number":79,"context_line":"    list (`columns`) corresponds to the metadata of the values in the `results`"},{"line_number":80,"context_line":"    list."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    The structure for the `object` option uses a dictionary. The response still"},{"line_number":83,"context_line":"    has the `total` attribute. However, in the `results` attribute, one will"},{"line_number":84,"context_line":"    find a list of objects, instead of a list of lists of values that we see"},{"line_number":85,"context_line":"    in the `table` option. This facilitates the processing of some use cases."},{"line_number":86,"context_line":"  type: string"},{"line_number":87,"context_line":"  required: false"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":9,"id":"adb4d3c1_339fff5a","line":85,"range":{"start_line":70,"start_character":0,"end_line":85,"end_character":77},"in_reply_to":"578ae6a2_2812fee8","updated":"2021-11-29 14:11:12.000000000","message":"done","commit_id":"03732dfe113e67346af220f7faedddd03167d0ac"}],"lower-constraints.txt":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"7be25aa597af11aceb19166f4eb991ba60e3fa2f","unresolved":true,"context_lines":[{"line_number":32,"context_line":"cotyledon\u003d\u003d1.7.3 # Apache-2.0"},{"line_number":33,"context_line":"futurist\u003d\u003d2.3.0 # Apache-2.0"},{"line_number":34,"context_line":"bandit\u003e\u003d1.6.0 # Apache-2.0"},{"line_number":35,"context_line":"Werkzeug\u003c2.0.0 # BSD"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# test-requirements"},{"line_number":38,"context_line":"coverage\u003d\u003d5.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":6,"id":"2e590a55_b516cb6b","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":20},"updated":"2021-05-31 15:25:38.000000000","message":"As discussed, this should be a separate patch.","commit_id":"3c3805225ec15474d0fef6aeb51f4370a83a49c2"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"9011397ff6f5586655d4a6c9f9f3a2b7729d8c8e","unresolved":true,"context_lines":[{"line_number":32,"context_line":"cotyledon\u003d\u003d1.7.3 # Apache-2.0"},{"line_number":33,"context_line":"futurist\u003d\u003d2.3.0 # Apache-2.0"},{"line_number":34,"context_line":"bandit\u003e\u003d1.6.0 # Apache-2.0"},{"line_number":35,"context_line":"Werkzeug\u003c2.0.0 # BSD"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"# test-requirements"},{"line_number":38,"context_line":"coverage\u003d\u003d5.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":6,"id":"95caf919_4d59ef33","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":20},"in_reply_to":"2e590a55_b516cb6b","updated":"2021-06-02 13:05:19.000000000","message":"Done.","commit_id":"3c3805225ec15474d0fef6aeb51f4370a83a49c2"}],"releasenotes/notes/response_format-v2-summary-api-270facdb01d9202b.yaml":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"0940c60dd2ce851e2b87900389c696260b60d2d0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduce \"response_format\" option for the V2 summary API."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"3b8e7fe6_4cda0d2c","line":4,"updated":"2021-10-04 14:13:27.000000000","message":"I would add that it also introduces the \"object\" format, which is easier to parse.","commit_id":"a492d566fa26fa71674ceb44e4686609531b0441"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"97554c06a5e648aaa725c5aa4f7e21b97bcedeb4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduce \"response_format\" option for the V2 summary API."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"8f64acd4_1d1071ab","line":4,"in_reply_to":"3b8e7fe6_4cda0d2c","updated":"2021-10-04 19:21:30.000000000","message":"Done","commit_id":"a492d566fa26fa71674ceb44e4686609531b0441"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"09da6596dcf0b0eeeeacc123dbd9e93beabfe8e4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduce \"response_format\" option for the V2 summary API, which can"},{"line_number":5,"context_line":"    facilitate the parse of the response."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"ee3aa76e_27411e4e","line":4,"range":{"start_line":4,"start_character":14,"end_line":4,"end_character":31},"updated":"2021-11-29 14:08:39.000000000","message":"the ``response_format``","commit_id":"03732dfe113e67346af220f7faedddd03167d0ac"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"dd0764f4bb21f1a228358804d4d67446803e2198","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduce \"response_format\" option for the V2 summary API, which can"},{"line_number":5,"context_line":"    facilitate the parse of the response."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"81c5c60a_1a3004e1","line":4,"range":{"start_line":4,"start_character":14,"end_line":4,"end_character":31},"in_reply_to":"ee3aa76e_27411e4e","updated":"2021-11-29 14:13:52.000000000","message":"Done","commit_id":"03732dfe113e67346af220f7faedddd03167d0ac"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"09da6596dcf0b0eeeeacc123dbd9e93beabfe8e4","unresolved":true,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduce \"response_format\" option for the V2 summary API, which can"},{"line_number":5,"context_line":"    facilitate the parse of the response."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5412110b_d895f1e6","line":5,"range":{"start_line":5,"start_character":15,"end_line":5,"end_character":40},"updated":"2021-11-29 14:08:39.000000000","message":"parsing the response","commit_id":"03732dfe113e67346af220f7faedddd03167d0ac"},{"author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"change_message_id":"dd0764f4bb21f1a228358804d4d67446803e2198","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Introduce \"response_format\" option for the V2 summary API, which can"},{"line_number":5,"context_line":"    facilitate the parse of the response."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"dd97b5ef_c062a894","line":5,"range":{"start_line":5,"start_character":15,"end_line":5,"end_character":40},"in_reply_to":"5412110b_d895f1e6","updated":"2021-11-29 14:13:52.000000000","message":"Done","commit_id":"03732dfe113e67346af220f7faedddd03167d0ac"}]}
