)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"2e45e8516e2379b041bb9c949ab8be31a48a4100","unresolved":false,"context_lines":[{"line_number":18,"context_line":"the request to the controller signature had been missed, which"},{"line_number":19,"context_line":"are also corrected here."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Partially implements: microversions"},{"line_number":22,"context_line":"Change-Id: Ie99f1c0aa8b3c8ff80082496389ed5446384f69b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f515b1d_8cd35d04","line":21,"range":{"start_line":21,"start_character":10,"end_line":21,"end_character":20},"updated":"2017-09-29 16:51:40.000000000","message":"Missing link here, add bp microversions\n\nAlso, we should complete this card and document it in this commit message prior to merging this.\n\nhttps://trello.com/c/3AtmXIUs/11-microversions-assessment","commit_id":"3c4e10003ac29e4377ec07f8a0597f931d4400c4"}],"keystone/common/wsgi.py":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"8671a8d5a77bbdd6294bc0e5c9e615b15e0afb7b","unresolved":false,"context_lines":[{"line_number":814,"context_line":"        # context. Also, its OK to pass the environemt as it is read-only in"},{"line_number":815,"context_line":"        # Application.base_url()"},{"line_number":816,"context_line":"        local_context \u003d {}"},{"line_number":817,"context_line":"        if request:"},{"line_number":818,"context_line":"            local_context \u003d {\u0027environment\u0027: request.environ}"},{"line_number":819,"context_line":"        elif context and \u0027environment\u0027 in context:"},{"line_number":820,"context_line":"            local_context \u003d {\u0027environment\u0027: context[\u0027environment\u0027]}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_cd598990","line":817,"range":{"start_line":817,"start_character":11,"end_line":817,"end_character":19},"updated":"2016-06-16 17:47:12.000000000","message":"need to check that this test doesn\u0027t need changing for cases here we used to not pass a request","commit_id":"d912ea7cb168da6bb37fd9a033e71dd022e0e133"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"230d4a11fd9be7fa87f453f917d168fc3ee4ad4f","unresolved":false,"context_lines":[{"line_number":814,"context_line":"        # context. Also, its OK to pass the environemt as it is read-only in"},{"line_number":815,"context_line":"        # Application.base_url()"},{"line_number":816,"context_line":"        local_context \u003d {}"},{"line_number":817,"context_line":"        if request:"},{"line_number":818,"context_line":"            local_context \u003d {\u0027environment\u0027: request.environ}"},{"line_number":819,"context_line":"        elif context and \u0027environment\u0027 in context:"},{"line_number":820,"context_line":"            local_context \u003d {\u0027environment\u0027: context[\u0027environment\u0027]}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_3ea99ce0","line":817,"range":{"start_line":817,"start_character":11,"end_line":817,"end_character":19},"in_reply_to":"7aa08908_cd598990","updated":"2016-06-27 19:03:02.000000000","message":"++ as request will likely be always being passed.. perhaps the if/elif won\u0027t be needed anymore ?","commit_id":"d912ea7cb168da6bb37fd9a033e71dd022e0e133"}],"keystone/tests/unit/test_exception.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c9b21734131fff2dcc1cede03c5a1af393fca623","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        return req"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def assertValidJsonRendering(self, e):"},{"line_number":43,"context_line":"        req \u003d self._make_request(url\u003d\u0027/\u0027)"},{"line_number":44,"context_line":"        resp \u003d wsgi.render_exception(e, req)"},{"line_number":45,"context_line":"        self.assertEqual(e.code, resp.status_int)"},{"line_number":46,"context_line":"        self.assertEqual(\u0027%s %s\u0027 % (e.code, e.title), resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_cdbf98fa","line":43,"range":{"start_line":43,"start_character":33,"end_line":43,"end_character":40},"updated":"2016-12-09 17:46:26.000000000","message":"(nit) no need to specify here as it is the same as the default value in the function","commit_id":"8670aac265b74a6485362746c685ffba9da73d85"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3c8acec1b974ab7c0d64b8ad2aeadda543505707","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        return req"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def assertValidJsonRendering(self, e):"},{"line_number":43,"context_line":"        req \u003d self._make_request(url\u003d\u0027/\u0027)"},{"line_number":44,"context_line":"        resp \u003d wsgi.render_exception(e, req)"},{"line_number":45,"context_line":"        self.assertEqual(e.code, resp.status_int)"},{"line_number":46,"context_line":"        self.assertEqual(\u0027%s %s\u0027 % (e.code, e.title), resp.status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f2577a7_07ad2ee8","line":43,"range":{"start_line":43,"start_character":33,"end_line":43,"end_character":40},"in_reply_to":"3a71b18c_cdbf98fa","updated":"2017-09-21 13:23:59.000000000","message":"Done","commit_id":"8670aac265b74a6485362746c685ffba9da73d85"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"c9b21734131fff2dcc1cede03c5a1af393fca623","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        self.assertIn(target, six.text_type(e))"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_forbidden_title(self):"},{"line_number":86,"context_line":"        req \u003d self._make_request(url\u003d\u0027/\u0027)"},{"line_number":87,"context_line":"        e \u003d exception.Forbidden()"},{"line_number":88,"context_line":"        resp \u003d wsgi.render_exception(e, req)"},{"line_number":89,"context_line":"        j \u003d jsonutils.loads(resp.body)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a71b18c_0dba700a","line":86,"range":{"start_line":86,"start_character":33,"end_line":86,"end_character":40},"updated":"2016-12-09 17:46:26.000000000","message":"ditto","commit_id":"8670aac265b74a6485362746c685ffba9da73d85"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3c8acec1b974ab7c0d64b8ad2aeadda543505707","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        self.assertIn(target, six.text_type(e))"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_forbidden_title(self):"},{"line_number":86,"context_line":"        req \u003d self._make_request(url\u003d\u0027/\u0027)"},{"line_number":87,"context_line":"        e \u003d exception.Forbidden()"},{"line_number":88,"context_line":"        resp \u003d wsgi.render_exception(e, req)"},{"line_number":89,"context_line":"        j \u003d jsonutils.loads(resp.body)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f2577a7_e7b58233","line":86,"range":{"start_line":86,"start_character":33,"end_line":86,"end_character":40},"in_reply_to":"3a71b18c_0dba700a","updated":"2017-09-21 13:23:59.000000000","message":"Done","commit_id":"8670aac265b74a6485362746c685ffba9da73d85"}]}
