)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18464,"name":"Richard Avelar","email":"csravelar@gmail.com","username":"razone"},"change_message_id":"a3945ad8218716862cc92f3681448ce9c88b5c9a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move access token to DocumentedRuleDefault"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The overall goal is to define a richer policy for deployers"},{"line_number":10,"context_line":"and operators[0]. To achieve that goal a new policy"},{"line_number":11,"context_line":"class was introduce that requires additional parameters"},{"line_number":12,"context_line":"when defining policy objects."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This patch switches our access token revocation  policy object to"},{"line_number":15,"context_line":"the policy.DocumentedRuleDefault and fills the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfeb2761_b3d27d5b","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":29},"updated":"2017-04-03 13:17:52.000000000","message":"For consistency, I think we should update this commit as well according to lance\u0027s previous comment: https://review.openstack.org/#/c/449341/3..6//COMMIT_MSG\nOtherwise, this is looking good.","commit_id":"65794a926ba8cbe7a38fc3903f9f1c90600852a0"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a1f807c5a792be078645f60a7e7be611a3caeae1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Move access token to DocumentedRuleDefault"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"A new policy class was introduce that requires"},{"line_number":10,"context_line":"additional parameters when defining policy objects."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch switches our access token revocation  policy object to"},{"line_number":13,"context_line":"the policy.DocumentedRuleDefault and fills the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"dfeb2761_df726dad","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":50},"updated":"2017-04-04 18:01:35.000000000","message":"same comment as https://review.openstack.org/#/c/449233/","commit_id":"45a1610df466a41494f343d4c2569509aa087f14"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"a1f807c5a792be078645f60a7e7be611a3caeae1","unresolved":false,"context_lines":[{"line_number":9,"context_line":"A new policy class was introduce that requires"},{"line_number":10,"context_line":"additional parameters when defining policy objects."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch switches our access token revocation  policy object to"},{"line_number":13,"context_line":"the policy.DocumentedRuleDefault and fills the"},{"line_number":14,"context_line":"required policy parameters as needed."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"dfeb2761_9f962593","line":12,"range":{"start_line":12,"start_character":24,"end_line":12,"end_character":62},"updated":"2017-04-04 18:01:35.000000000","message":"OAUTH1 access token extension","commit_id":"45a1610df466a41494f343d4c2569509aa087f14"}],"keystone/common/policies/access_token.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"11935935e93b9b2dc81a16a5bc277167044266a7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        name\u003dbase.IDENTITY % \u0027authorize_request_token\u0027,"},{"line_number":20,"context_line":"        check_str\u003dbase.RULE_ADMIN_REQUIRED,"},{"line_number":21,"context_line":"        description\u003d\u0027Authorize request token\u0027,"},{"line_number":22,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-OAUTH1/authorize/{request_token_id}\u0027,"},{"line_number":23,"context_line":"                     \u0027method\u0027: \u0027PUT\u0027}]),"},{"line_number":24,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":25,"context_line":"        name\u003dbase.IDENTITY % \u0027get_access_token\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_a785b3af","line":22,"updated":"2017-03-25 01:49:03.000000000","message":"These doc strings seem inconsistent with what\u0027s being proposed here [0], which is fine but we should probably update them in a separate patch set. Documenting it here since I stumbled across it in this review.\n\n[0] https://github.com/openstack/keystone/blob/62a0d2f295793928527530ae6540fe7e210dcd43/keystone/oauth1/routers.py#L60-L62","commit_id":"1afa5651e4ac6021d112f62a11e3fa1cc6bfa824"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"11935935e93b9b2dc81a16a5bc277167044266a7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":25,"context_line":"        name\u003dbase.IDENTITY % \u0027get_access_token\u0027,"},{"line_number":26,"context_line":"        check_str\u003dbase.RULE_ADMIN_REQUIRED,"},{"line_number":27,"context_line":"        description\u003d\u0027Get access token\u0027,"},{"line_number":28,"context_line":"        operations\u003d[{\u0027path\u0027: (\u0027/v3/users/{user_id}/OS-OAUTH1/access_tokens/\u0027"},{"line_number":29,"context_line":"                              \u0027{access_token_id}\u0027),"},{"line_number":30,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_073b3feb","line":27,"updated":"2017-03-25 01:49:03.000000000","message":"Get access token for user by access token ID.*","commit_id":"1afa5651e4ac6021d112f62a11e3fa1cc6bfa824"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"11935935e93b9b2dc81a16a5bc277167044266a7","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        name\u003dbase.IDENTITY % \u0027get_access_token_role\u0027,"},{"line_number":33,"context_line":"        check_str\u003dbase.RULE_ADMIN_REQUIRED,"},{"line_number":34,"context_line":"        description\u003d\u0027Get access token role\u0027,"},{"line_number":35,"context_line":"        operations\u003d[{\u0027path\u0027: (\u0027/v3/users/{user_id}/OS-OAUTH1/access_tokens/\u0027"},{"line_number":36,"context_line":"                              \u0027{access_token_id}/roles/{role_id}\u0027),"},{"line_number":37,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_07469f7d","line":34,"updated":"2017-03-25 01:49:03.000000000","message":"Get roles for user access token.*","commit_id":"1afa5651e4ac6021d112f62a11e3fa1cc6bfa824"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"11935935e93b9b2dc81a16a5bc277167044266a7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":39,"context_line":"        name\u003dbase.IDENTITY % \u0027list_access_tokens\u0027,"},{"line_number":40,"context_line":"        check_str\u003dbase.RULE_ADMIN_REQUIRED,"},{"line_number":41,"context_line":"        description\u003d\u0027List access tokens\u0027,"},{"line_number":42,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/users/{user_id}/OS-OAUTH1/access_tokens\u0027,"},{"line_number":43,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"},{"line_number":44,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffe62b97_677d6bb0","line":41,"updated":"2017-03-25 01:49:03.000000000","message":"List access tokens for user*","commit_id":"1afa5651e4ac6021d112f62a11e3fa1cc6bfa824"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5471badc55bf60313838a376891da9348e80b499","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        name\u003dbase.IDENTITY % \u0027get_access_token_role\u0027,"},{"line_number":33,"context_line":"        check_str\u003dbase.RULE_ADMIN_REQUIRED,"},{"line_number":34,"context_line":"        description\u003d\u0027Get roles for user access token.\u0027,"},{"line_number":35,"context_line":"        operations\u003d[{\u0027path\u0027: (\u0027/v3/users/{user_id}/OS-OAUTH1/access_tokens/\u0027"},{"line_number":36,"context_line":"                              \u0027{access_token_id}/roles/{role_id}\u0027),"},{"line_number":37,"context_line":"                     \u0027method\u0027: \u0027GET\u0027}]),"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffe62b97_e1977944","line":34,"range":{"start_line":34,"start_character":25,"end_line":34,"end_character":30},"updated":"2017-03-29 19:28:03.000000000","message":"isn\u0027t this on a single role? given the /roles/{role_id} at the end of the url","commit_id":"65794a926ba8cbe7a38fc3903f9f1c90600852a0"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"145779c3e9b6906ed243b7ee1194da2f47380e34","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":19,"context_line":"        name\u003dbase.IDENTITY % \u0027authorize_request_token\u0027,"},{"line_number":20,"context_line":"        check_str\u003dbase.RULE_ADMIN_REQUIRED,"},{"line_number":21,"context_line":"        description\u003d\u0027Authorize request token.\u0027,"},{"line_number":22,"context_line":"        operations\u003d[{\u0027path\u0027: \u0027/v3/OS-OAUTH1/authorize/{request_token_id}\u0027,"},{"line_number":23,"context_line":"                     \u0027method\u0027: \u0027PUT\u0027}]),"},{"line_number":24,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_32858eae","line":21,"range":{"start_line":21,"start_character":21,"end_line":21,"end_character":45},"updated":"2017-04-05 18:37:08.000000000","message":"Please make it explicit it\u0027s dealing with *OAUTH1* tokens.\n\nFor example:\n\n    Authorize OAUTH1 request token.\n    Get OAUTH1 access token for user by access token ID.\n    List OAUTH1 access tokens for user.\n    ...","commit_id":"45a1610df466a41494f343d4c2569509aa087f14"}]}
