)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1955,"name":"Alan Pevec","email":"alan.pevec@redhat.com","username":"apevec"},"change_message_id":"ae7bcdf92944da51b9c5e14252223b8f56b54ba8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     9056b66a (Merge \"list_revoked_tokens sql speedup for havana\" into stable/havana)"},{"line_number":2,"context_line":"Author:     Sascha Peilicke \u003csaschpe@gmx.de\u003e"},{"line_number":3,"context_line":"AuthorDate: 2014-01-30 13:49:44 +0100"},{"line_number":4,"context_line":"Commit:     Sascha Peilicke \u003csaschpe@gmx.de\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-02-03 16:42:40 +0100"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAUX%2F%2F7Jc%3D","line":2,"updated":"2014-02-09 16:58:53.000000000","message":"Backport should keep master Author\t\nMatthieu Huin\u003cmhu@enovance.com\u003e2013-12-02 10:43","commit_id":"ddd7ed4ae51862e0c9eba901cd3b50a3feb18f19"}],"keystone/contrib/oauth1/controllers.py":[{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"d8e1b6a6340eaa00cb708332a130cede69f43c6c","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        request_verifier \u003d oauth1.RequestTokenEndpoint("},{"line_number":186,"context_line":"            request_validator\u003dvalidator.OAuthValidator(),"},{"line_number":187,"context_line":"            token_generator\u003doauth1.token_generator)"},{"line_number":188,"context_line":"        h, b, s \u003d request_verifier.create_request_token_response("},{"line_number":189,"context_line":"            url,"},{"line_number":190,"context_line":"            http_method\u003d\u0027POST\u0027,"},{"line_number":191,"context_line":"            body\u003dcontext[\u0027query_string\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F1cQ%3D","line":188,"updated":"2014-03-13 14:14:52.000000000","message":"if there is trouble with specifying the version of oauthlib in requirements.txt as another reviewer seems to point out, you might want to test the signature of create_request_token_response in a try ... except block, since previous versions of the lib actually return 4 values instead of 3, see https://github.com/idan/oauthlib/blob/0.5.1/oauthlib/oauth1/rfc5849/endpoints/request_token.py#L45\nJust to be on the side of caution.","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"},{"author":{"_account_id":7186,"name":"Matthieu Huin","email":"mhuin@redhat.com","username":"mhu"},"change_message_id":"d8e1b6a6340eaa00cb708332a130cede69f43c6c","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        access_verifier \u003d oauth1.AccessTokenEndpoint("},{"line_number":249,"context_line":"            request_validator\u003dvalidator.OAuthValidator(),"},{"line_number":250,"context_line":"            token_generator\u003doauth1.token_generator)"},{"line_number":251,"context_line":"        h, b, s \u003d access_verifier.create_access_token_response("},{"line_number":252,"context_line":"            url,"},{"line_number":253,"context_line":"            http_method\u003d\u0027POST\u0027,"},{"line_number":254,"context_line":"            body\u003dcontext[\u0027query_string\u0027],"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2F1cA%3D","line":251,"updated":"2014-03-13 14:14:52.000000000","message":"Same remark as above.","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"}],"keystone/contrib/oauth1/validator.py":[{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"8404c5c25090a8f32fb4844e065a9054f2fb8b54","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        return True"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    # The following save_XXX methods are called to create tokens. I chose to"},{"line_number":160,"context_line":"    # keep the original logic, but the comments below show how that could be"},{"line_number":161,"context_line":"    # implemented. The real implementation logic is in the backend."},{"line_number":162,"context_line":"    def save_access_token(self, token, request):"},{"line_number":163,"context_line":"        pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FkSA%3D","line":160,"updated":"2014-02-25 21:56:32.000000000","message":"instead of \"show how that\" did you mean \"show how they\"?","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"8404c5c25090a8f32fb4844e065a9054f2fb8b54","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    # implemented. The real implementation logic is in the backend."},{"line_number":162,"context_line":"    def save_access_token(self, token, request):"},{"line_number":163,"context_line":"        pass"},{"line_number":164,"context_line":"#        token_duration \u003d CONF.oauth1.request_token_duration"},{"line_number":165,"context_line":"#        request_token_id \u003d request.client_key"},{"line_number":166,"context_line":"#        self.oauth_api.create_access_token(request_token_id,"},{"line_number":167,"context_line":"#                                           token_duration,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FkRo%3D","line":164,"updated":"2014-02-25 21:56:32.000000000","message":"why are these comments formatted so funny? Also should they really be here?  Maybe this should go in the oauth docs instead?","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"},{"author":{"_account_id":6460,"name":"Brad Topol","email":"btopol@us.ibm.com","username":"btopol"},"change_message_id":"8404c5c25090a8f32fb4844e065a9054f2fb8b54","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def save_request_token(self, token, request):"},{"line_number":172,"context_line":"        pass"},{"line_number":173,"context_line":"#        project_id \u003d request.headers.get(\u0027Requested-Project-Id\u0027)"},{"line_number":174,"context_line":"#        token_duration \u003d CONF.oauth1.request_token_duration"},{"line_number":175,"context_line":"#        self.oauth_api.create_request_token(request.client_key,"},{"line_number":176,"context_line":"#                                            project_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FkRc%3D","line":173,"updated":"2014-02-25 21:56:32.000000000","message":"why are these comments formatted so funny? Also should they really be here?  Maybe this should go in the oauth docs instead?","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"}],"keystone/tests/test_v3_oauth1.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d2b4cd348125d71c3cddc0a4d825b79aaa8328f1","unresolved":false,"context_lines":[{"line_number":439,"context_line":"        keystone_token_uuid \u003d cms.cms_hash_token(self.keystone_token_id)"},{"line_number":440,"context_line":"        self.assertTrue(len(tokens) \u003e 0)"},{"line_number":441,"context_line":"        self.assertTrue(keystone_token_uuid in tokens)"},{"line_number":442,"context_line":"        #self.token_api.get_token(self.keystone_token_id)"},{"line_number":443,"context_line":"        #self.token_api.delete_tokens(self.user_id,"},{"line_number":444,"context_line":"        #                             consumer_id\u003dself.consumer[\u0027key\u0027])"},{"line_number":445,"context_line":"        #self.assertRaises(exception.TokenNotFound, self.token_api.get_token,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUX%2F%2F0Go%3D","line":442,"updated":"2014-02-10 16:59:00.000000000","message":"Seems like between the releases the \u0027test_list_keystone_tokens_by_consumers\u0027 was changed to \u0027test for delete_keystone_token_by_consumer_id\u0027.\n\nI think the stuff in comments is only applicable to the latter, if you don\u0027t need it here, then remove it.","commit_id":"0f8238fc78cf004b4c9c21395b9c5dd6febfd0da"}],"requirements.txt":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2511549f05c4479f752cd3d22f22d62e746305e6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.3.2"},{"line_number":17,"context_line":"oslo.config\u003e\u003d1.2.0"},{"line_number":18,"context_line":"Babel\u003e\u003d1.3"},{"line_number":19,"context_line":"oauthlib"},{"line_number":20,"context_line":"dogpile.cache\u003e\u003d0.5.0"}],"source_content_type":"text/plain","patch_set":1,"id":"AAAAUX%2F%2F%2Bwk%3D","line":19,"updated":"2014-02-08 00:33:32.000000000","message":"these changes actually require a recent version of oauthlib -- oauthlib\u003e\u003d0.6","commit_id":"ddd7ed4ae51862e0c9eba901cd3b50a3feb18f19"},{"author":{"_account_id":1955,"name":"Alan Pevec","email":"alan.pevec@redhat.com","username":"apevec"},"change_message_id":"ae7bcdf92944da51b9c5e14252223b8f56b54ba8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.3.2"},{"line_number":17,"context_line":"oslo.config\u003e\u003d1.2.0"},{"line_number":18,"context_line":"Babel\u003e\u003d1.3"},{"line_number":19,"context_line":"oauthlib"},{"line_number":20,"context_line":"dogpile.cache\u003e\u003d0.5.0"}],"source_content_type":"text/plain","patch_set":1,"id":"AAAAUX%2F%2F7JQ%3D","line":19,"in_reply_to":"AAAAUX%2F%2F%2Bwk%3D","updated":"2014-02-09 16:58:53.000000000","message":"It should be then applied in Keystone master first.\nAlso minimal version was applied to requirements master branch https://review.openstack.org/67900 but not to stable/havana?","commit_id":"ddd7ed4ae51862e0c9eba901cd3b50a3feb18f19"},{"author":{"_account_id":1955,"name":"Alan Pevec","email":"alan.pevec@redhat.com","username":"apevec"},"change_message_id":"06b85bd67e3328e93376ee7b0f46f058937346b0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.3.2"},{"line_number":17,"context_line":"oslo.config\u003e\u003d1.2.0"},{"line_number":18,"context_line":"Babel\u003e\u003d1.3"},{"line_number":19,"context_line":"oauthlib\u003e\u003d0.6"},{"line_number":20,"context_line":"dogpile.cache\u003e\u003d0.5.0"}],"source_content_type":"text/plain","patch_set":3,"id":"AAAAVn%2F%2FI0g%3D","line":19,"updated":"2014-03-08 11:03:06.000000000","message":"This is not in stable/havana requirements, not sure why check job didn\u0027t catch that.\n\nMaster requirements changes for oauthlib are:\nI1c14c71fb37d8e164585d785c7755eccb4c9c51e\nIba4beddc8d6e62d1657b68740fcca9d9a8fc7351\n\nNote that stable/havana requirements is blocked on Trove stable/havana Ia8eafb4a5c8b950ae807464b166d44b435b824ad","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"},{"author":{"_account_id":1955,"name":"Alan Pevec","email":"alan.pevec@redhat.com","username":"apevec"},"change_message_id":"c6f0824ef06112e26b4526d2f4be109d3e23dbd3","unresolved":false,"context_lines":[{"line_number":16,"context_line":"python-keystoneclient\u003e\u003d0.3.2"},{"line_number":17,"context_line":"oslo.config\u003e\u003d1.2.0"},{"line_number":18,"context_line":"Babel\u003e\u003d1.3"},{"line_number":19,"context_line":"oauthlib\u003e\u003d0.6"},{"line_number":20,"context_line":"dogpile.cache\u003e\u003d0.5.0"}],"source_content_type":"text/plain","patch_set":3,"id":"AAAAWH%2F%2B1G4%3D","line":19,"in_reply_to":"AAAAVn%2F%2FI0g%3D","updated":"2014-03-23 23:13:33.000000000","message":"I\u0027ve proposed stable/havana requirements change under the same changeid:\n https://review.openstack.org/82401","commit_id":"b64d8b27a5b7722d5baecc477be5f1d7fb7930ea"}]}
