)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"997959e9d93eea9446e1222c22e2bd59f4c567f6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a space after the hash for block comments"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Automatic enforcement of this rule will be added in a"},{"line_number":10,"context_line":"later commit."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"bp more-code-style-automation"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAVn%2F%2Fi24%3D","line":10,"updated":"2014-03-05 14:08:25.000000000","message":"Can we add the review to the commit message now that it is up?","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f614eac0c8c7b4f2301aebde15fce11a2e3b24a6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a space after the hash for block comments"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Automatic enforcement of this rule will be added in a"},{"line_number":10,"context_line":"later commit."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"bp more-code-style-automation"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAAVn%2F%2Fh4w%3D","line":10,"in_reply_to":"AAAAVn%2F%2Fi24%3D","updated":"2014-03-05 16:00:34.000000000","message":"Done","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"}],"keystone/assignment/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"de15dd31a1cf40803fcf7f79d3528b253e0a9310","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        \"\"\""},{"line_number":951,"context_line":"        raise exception.NotImplemented()"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"# TODO(ayoung): determine what else these two functions raise"},{"line_number":954,"context_line":"    @abc.abstractmethod"},{"line_number":955,"context_line":"    def delete_user(self, user_id):"},{"line_number":956,"context_line":"        \"\"\"Deletes all assignments for a user."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fiho%3D","line":953,"updated":"2014-03-05 14:40:14.000000000","message":"nit, move this over.","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f614eac0c8c7b4f2301aebde15fce11a2e3b24a6","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        \"\"\""},{"line_number":951,"context_line":"        raise exception.NotImplemented()"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"# TODO(ayoung): determine what else these two functions raise"},{"line_number":954,"context_line":"    @abc.abstractmethod"},{"line_number":955,"context_line":"    def delete_user(self, user_id):"},{"line_number":956,"context_line":"        \"\"\"Deletes all assignments for a user."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FiJI%3D","line":953,"in_reply_to":"AAAAVn%2F%2Fiho%3D","updated":"2014-03-05 16:00:34.000000000","message":"Done. This is the problem with automating code transformations. You just get substitute the human eye.","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0c8ad0179b40dc2ddfde4ba8f8658389eccfb83a","unresolved":false,"context_lines":[{"line_number":950,"context_line":"        \"\"\""},{"line_number":951,"context_line":"        raise exception.NotImplemented()"},{"line_number":952,"context_line":""},{"line_number":953,"context_line":"# TODO(ayoung): determine what else these two functions raise"},{"line_number":954,"context_line":"    @abc.abstractmethod"},{"line_number":955,"context_line":"    def delete_user(self, user_id):"},{"line_number":956,"context_line":"        \"\"\"Deletes all assignments for a user."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2Fhbw%3D","line":953,"updated":"2014-03-05 16:12:24.000000000","message":"this doesn\u0027t seem to be moved","commit_id":"0ddd16e5284c1222f008400de5b343a8bcc3ed85"}],"keystone/auth/plugins/token.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"de15dd31a1cf40803fcf7f79d3528b253e0a9310","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"            # New tokens are not allowed to extend the expiration"},{"line_number":60,"context_line":"            # time of an old token, otherwise, they could be extened"},{"line_number":61,"context_line":"            # forever.   The expiration value was stored at different"},{"line_number":62,"context_line":"            # locations in v2 and v3 tokens."},{"line_number":63,"context_line":"            expires_at \u003d token_ref.get(\u0027expires_at\u0027)"},{"line_number":64,"context_line":"            if not expires_at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fig8%3D","line":61,"updated":"2014-03-05 14:40:14.000000000","message":"nit: you fixed the double space at line 40, suggest fix it here, too","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f614eac0c8c7b4f2301aebde15fce11a2e3b24a6","unresolved":false,"context_lines":[{"line_number":58,"context_line":""},{"line_number":59,"context_line":"            # New tokens are not allowed to extend the expiration"},{"line_number":60,"context_line":"            # time of an old token, otherwise, they could be extened"},{"line_number":61,"context_line":"            # forever.   The expiration value was stored at different"},{"line_number":62,"context_line":"            # locations in v2 and v3 tokens."},{"line_number":63,"context_line":"            expires_at \u003d token_ref.get(\u0027expires_at\u0027)"},{"line_number":64,"context_line":"            if not expires_at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fh44%3D","line":61,"in_reply_to":"AAAAVn%2F%2Fig8%3D","updated":"2014-03-05 16:00:34.000000000","message":"Done","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"0c8ad0179b40dc2ddfde4ba8f8658389eccfb83a","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"            # Do not allow tokens used for delegation to"},{"line_number":45,"context_line":"            # create another token, or perform any changes of"},{"line_number":46,"context_line":"            # state in Keystone. TO do so is to invite elevation of"},{"line_number":47,"context_line":"            # privilege attacks"},{"line_number":48,"context_line":"            if \u0027OS-TRUST:trust\u0027 in token_ref:"},{"line_number":49,"context_line":"                raise exception.Forbidden()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVn%2F%2FhbE%3D","line":46,"updated":"2014-03-05 16:12:24.000000000","message":"nit: Is the \u0027o\u0027 in To capitalized?","commit_id":"0ddd16e5284c1222f008400de5b343a8bcc3ed85"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"08592f2388af238691b064f81fcccab88c6c1dc7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            token_id \u003d auth_payload[\u0027id\u0027]"},{"line_number":39,"context_line":"            response \u003d self.provider.validate_token(token_id)"},{"line_number":40,"context_line":"            # For V3 tokens, the essential data is under the \u0027token\u0027 value."},{"line_number":41,"context_line":"            # For V2, the comparable data was nested under \u0027access\u0027."},{"line_number":42,"context_line":"            token_ref \u003d response.get(\u0027token\u0027, response.get(\u0027access\u0027))"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"            # Do not allow tokens used for delegation to"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F%2FxGk%3D","line":41,"updated":"2014-03-13 23:07:39.000000000","message":"the tool is going to check for . too?","commit_id":"74df0b6e9a6bf3f1e47d38ffd67b0938e6fcf704"}],"keystone/tests/test_v3_identity.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"de15dd31a1cf40803fcf7f79d3528b253e0a9310","unresolved":false,"context_lines":[{"line_number":732,"context_line":""},{"line_number":733,"context_line":"        # FIXME(gyee): this test is no longer valid as user"},{"line_number":734,"context_line":"        # have no role in the project. Can\u0027t get a scoped token"},{"line_number":735,"context_line":"        # self.delete(member_url)"},{"line_number":736,"context_line":"        # r \u003d self.get(collection_url)"},{"line_number":737,"context_line":"        # self.assertValidRoleListResponse(r, expected_length\u003d0)"},{"line_number":738,"context_line":"        # self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FifE%3D","line":735,"updated":"2014-03-05 14:40:14.000000000","message":"nit: delete the commented code","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"60844f984c298bcd6aed153dca19c8c510455677","unresolved":false,"context_lines":[{"line_number":732,"context_line":""},{"line_number":733,"context_line":"        # FIXME(gyee): this test is no longer valid as user"},{"line_number":734,"context_line":"        # have no role in the project. Can\u0027t get a scoped token"},{"line_number":735,"context_line":"        # self.delete(member_url)"},{"line_number":736,"context_line":"        # r \u003d self.get(collection_url)"},{"line_number":737,"context_line":"        # self.assertValidRoleListResponse(r, expected_length\u003d0)"},{"line_number":738,"context_line":"        # self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2Fha0%3D","line":735,"in_reply_to":"AAAAVn%2F%2FiKM%3D","updated":"2014-03-05 16:12:34.000000000","message":"cool with me","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"f614eac0c8c7b4f2301aebde15fce11a2e3b24a6","unresolved":false,"context_lines":[{"line_number":732,"context_line":""},{"line_number":733,"context_line":"        # FIXME(gyee): this test is no longer valid as user"},{"line_number":734,"context_line":"        # have no role in the project. Can\u0027t get a scoped token"},{"line_number":735,"context_line":"        # self.delete(member_url)"},{"line_number":736,"context_line":"        # r \u003d self.get(collection_url)"},{"line_number":737,"context_line":"        # self.assertValidRoleListResponse(r, expected_length\u003d0)"},{"line_number":738,"context_line":"        # self.assertIn(collection_url, r.result[\u0027links\u0027][\u0027self\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAVn%2F%2FiKM%3D","line":735,"in_reply_to":"AAAAVn%2F%2FifE%3D","updated":"2014-03-05 16:00:34.000000000","message":"I think i\u0027ll follow up with a commit to delete commented out code.","commit_id":"3ac8f48bf4fdcbe09fd497b949120d66a86b3730"}]}
