)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"42594f7c8a22d6a947d80ba4440b0c07f6c9b6f5","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yong Sheng Gong \u003cgongysh@unitedstack.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-29 15:08:14 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add quotes to enclose url of curl commands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If9e6c13b75fa4d457d78619bdd4f92ad46911bb1"},{"line_number":10,"context_line":"Closes-Bug: #1255912"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2B34M%3D","line":7,"updated":"2014-01-21 08:25:21.000000000","message":"a bit more info please as description, if nothing else just describe briefly the bug this fixes","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"02cc2cbfbfab75f1596697420aa65b23b4936962","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yong Sheng Gong \u003cgongysh@unitedstack.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-11-29 15:08:14 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add quotes to enclose url of curl commands"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: If9e6c13b75fa4d457d78619bdd4f92ad46911bb1"},{"line_number":10,"context_line":"Closes-Bug: #1255912"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUX%2F%2Bq5c%3D","line":7,"in_reply_to":"AAAAUH%2F%2B34M%3D","updated":"2014-02-19 21:44:27.000000000","message":"This subject is sufficient.","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"}],"neutronclient/common/utils.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"02cc2cbfbfab75f1596697420aa65b23b4936962","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        :param strdict: key1\u003dvalue1,key2\u003dvalue2"},{"line_number":147,"context_line":"        \u0027\u0027\u0027"},{"line_number":148,"context_line":"        _info \u003d {}"},{"line_number":149,"context_line":"        for kv_str in strdict.split(\u0027,\u0027):"},{"line_number":150,"context_line":"            k, v \u003d kv_str.split(\u0027\u003d\u0027, 1)"},{"line_number":151,"context_line":"            _info.update({k: v})"},{"line_number":152,"context_line":"        return _info"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Bq44%3D","line":149,"updated":"2014-02-19 21:44:27.000000000","message":"This change is necessary and unrelated to the bug.","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"02cc2cbfbfab75f1596697420aa65b23b4936962","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        \u0027\u0027\u0027"},{"line_number":148,"context_line":"        _info \u003d {}"},{"line_number":149,"context_line":"        for kv_str in strdict.split(\u0027,\u0027):"},{"line_number":150,"context_line":"            k, v \u003d kv_str.split(\u0027\u003d\u0027, 1)"},{"line_number":151,"context_line":"            _info.update({k: v})"},{"line_number":152,"context_line":"        return _info"},{"line_number":153,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Bq40%3D","line":150,"updated":"2014-02-19 21:44:27.000000000","message":"same as above","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"02cc2cbfbfab75f1596697420aa65b23b4936962","unresolved":false,"context_lines":[{"line_number":171,"context_line":"        # -d must use single quote since the content contains double quote"},{"line_number":172,"context_line":"        string_parts.append(\" -d \u0027%s\u0027\" % (kwargs[\u0027body\u0027]))"},{"line_number":173,"context_line":"    string_parts \u003d safe_encode_list(string_parts)"},{"line_number":174,"context_line":"    _logger.debug(\u0027\\nREQ: %s\\n\u0027 % \u0027\u0027.join(string_parts))"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"def http_log_resp(_logger, resp, body):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Bq4s%3D","line":174,"updated":"2014-02-19 21:44:27.000000000","message":"This is change is unnecessary and unrelated to the bug.","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"02cc2cbfbfab75f1596697420aa65b23b4936962","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"def http_log_resp(_logger, resp, body):"},{"line_number":178,"context_line":"    if not _logger.isEnabledFor(logging.DEBUG):"},{"line_number":179,"context_line":"        return"},{"line_number":180,"context_line":"    _logger.debug(\u0027RESP:%s %s\\n\u0027, resp, body)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Bq4o%3D","line":179,"updated":"2014-02-19 21:44:27.000000000","message":"this change unnecessary and unrelated to the bug","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"}],"neutronclient/tests/unit/test_utils.py":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"02cc2cbfbfab75f1596697420aa65b23b4936962","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        args \u003d utils.safe_encode_list(args)"},{"line_number":118,"context_line":"        kargs \u003d utils.safe_encode_dict(kargs)"},{"line_number":119,"context_line":"        utils.http_log_req(mock_logger, args, kargs)"},{"line_number":120,"context_line":"        req_str \u003d \u0027curl -i \"http://localhost:9696/v2.0/ports.json?xxx\"\u0027"},{"line_number":121,"context_line":"        req_str +\u003d \u0027 -X POST -H \"Content-Type: application/json\"\u0027"},{"line_number":122,"context_line":"        req_str +\u003d \u0027 -H \"Accept: application/json\" -H \"User-Agent: test\"\u0027"},{"line_number":123,"context_line":"        req_str +\u003d \" -d \u0027%s\u0027\" % kargs[\u0027body\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUX%2F%2Bq4E%3D","line":120,"updated":"2014-02-19 21:44:27.000000000","message":"You do not need to the use string concatenation here.  Just wrap the parts in parenthesis and python will concat them for your.\n\nreq_str \u003d (\n    \u0027part 1\u0027\n    \u0027part 2\u0027\n    \u0027part 3\u0027\n)","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"}],"test-requirements.txt":[{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"42594f7c8a22d6a947d80ba4440b0c07f6c9b6f5","unresolved":false,"context_lines":[{"line_number":5,"context_line":"discover"},{"line_number":6,"context_line":"fixtures\u003e\u003d0.3.14"},{"line_number":7,"context_line":"mox\u003e\u003d0.5.3"},{"line_number":8,"context_line":"mock\u003e\u003d1.0"},{"line_number":9,"context_line":"python-subunit"},{"line_number":10,"context_line":"sphinx\u003e\u003d1.1.2"},{"line_number":11,"context_line":"testrepository\u003e\u003d0.0.17"}],"source_content_type":"text/plain","patch_set":3,"id":"AAAAUH%2F%2B33c%3D","line":8,"updated":"2014-01-21 08:25:21.000000000","message":"adding a requirement is pretty important - please mention it in the commit msg","commit_id":"34351edaf7d7e5cb67709ff5a250d96f85132d06"}]}
