)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove unneeded revocation events"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instad of revoking upon Project deactivat ion and so on"},{"line_number":10,"context_line":"this does a live check upon token validation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Some of the role apis are a little more forgiving."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9aed3d3a_8da104fb","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":6},"updated":"2016-02-29 17:31:57.000000000","message":"Instead","commit_id":"04e7413d19b9e641d1e706537d4b64c304ea7af8"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove unneeded revocation events"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instad of revoking upon Project deactivat ion and so on"},{"line_number":10,"context_line":"this does a live check upon token validation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Some of the role apis are a little more forgiving."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9aed3d3a_8d88e472","line":9,"range":{"start_line":9,"start_character":32,"end_line":9,"end_character":45},"updated":"2016-02-29 17:31:57.000000000","message":"deactivation","commit_id":"04e7413d19b9e641d1e706537d4b64c304ea7af8"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Some of the role apis are a little more forgiving."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"If a user loses a role, it is ipoosible that the token will"},{"line_number":15,"context_line":"still validate, just with a lesser set of roles.  However,"},{"line_number":16,"context_line":"if the role removed is the last role, the tokek will still"},{"line_number":17,"context_line":"be invalid."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9aed3d3a_2d98b8bf","line":14,"range":{"start_line":14,"start_character":30,"end_line":14,"end_character":39},"updated":"2016-02-29 17:31:57.000000000","message":"impossible","commit_id":"04e7413d19b9e641d1e706537d4b64c304ea7af8"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"If a user loses a role, it is ipoosible that the token will"},{"line_number":15,"context_line":"still validate, just with a lesser set of roles.  However,"},{"line_number":16,"context_line":"if the role removed is the last role, the tokek will still"},{"line_number":17,"context_line":"be invalid."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Trustee pass word change no longer invalidates a token. It"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9aed3d3a_4de25c30","line":16,"range":{"start_line":16,"start_character":42,"end_line":16,"end_character":47},"updated":"2016-02-29 17:31:57.000000000","message":"token","commit_id":"04e7413d19b9e641d1e706537d4b64c304ea7af8"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"3d93d3940b21a60883c2778ad14ff9bdc341aa36","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Remove unneeded revocation events"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Instad of revoking upon Project deactivat ion and so on"},{"line_number":10,"context_line":"this does a live check upon token validation."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Some of the role apis are a little more forgiving."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"1a122d0e_93f4ef87","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":5},"updated":"2016-04-18 12:37:59.000000000","message":"Instead of... deactivation","commit_id":"a749c12f2200d3686251c51824a5100308b8fcb0"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"REBASING: Still broken"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Instad of revoking upon Project deactivat ion and so on"},{"line_number":12,"context_line":"this does a live check upon token validation."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Some of the role apis are a little more forgiving."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a98d1f4_d67a6f23","line":11,"range":{"start_line":11,"start_character":32,"end_line":11,"end_character":45},"updated":"2016-10-03 16:15:25.000000000","message":"*deactivation","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Some of the role apis are a little more forgiving."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"If a user loses a role, it is ipoosible that the token will"},{"line_number":17,"context_line":"still validate, just with a lesser set of roles.  However,"},{"line_number":18,"context_line":"if the role removed is the last role, the tokek will still"},{"line_number":19,"context_line":"be invalid."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a98d1f4_b6a6c3ab","line":16,"range":{"start_line":16,"start_character":30,"end_line":16,"end_character":39},"updated":"2016-10-03 16:15:25.000000000","message":"*possible?","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"If a user loses a role, it is ipoosible that the token will"},{"line_number":17,"context_line":"still validate, just with a lesser set of roles.  However,"},{"line_number":18,"context_line":"if the role removed is the last role, the tokek will still"},{"line_number":19,"context_line":"be invalid."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Trustee pass word change no longer invalidates a token. It"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a98d1f4_16a85776","line":18,"range":{"start_line":18,"start_character":42,"end_line":18,"end_character":47},"updated":"2016-10-03 16:15:25.000000000","message":"*token","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"if the role removed is the last role, the tokek will still"},{"line_number":19,"context_line":"be invalid."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Trustee pass word change no longer invalidates a token. It"},{"line_number":22,"context_line":"never should have, as the Trustee is not involved during"},{"line_number":23,"context_line":"trust execution."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3a98d1f4_b6fb2378","line":21,"range":{"start_line":21,"start_character":8,"end_line":21,"end_character":17},"updated":"2016-10-03 16:15:25.000000000","message":"*password","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"}],"etc/keystone.conf.sample":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"[DEFAULT]"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# From keystone"}],"source_content_type":"application/octet-stream","patch_set":10,"id":"3a98d1f4_b670830c","line":1,"updated":"2016-10-03 16:15:25.000000000","message":"Why are you making changes here?","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"}],"keystone/auth/controllers.py":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def authenticate_for_token(self, context, auth\u003dNone):"},{"line_number":388,"context_line":"        \"\"\"Authenticate user and issue a token.\"\"\""},{"line_number":389,"context_line":"        include_catalog \u003d \u0027nocatalog\u0027 not in context[\u0027query_string\u0027]"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        try:"},{"line_number":392,"context_line":"            auth_info \u003d AuthInfo.create(context, auth\u003dauth)"},{"line_number":393,"context_line":"            auth_context \u003d AuthContext(extras\u003d{},"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_0df854c2","side":"PARENT","line":390,"updated":"2016-02-29 17:31:57.000000000","message":"unnecessary change?","commit_id":"7c6556ce18eb170fd8102168b33a50272b22ec5a"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":409,"context_line":"            metadata_ref \u003d None"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"            token_audit_id \u003d auth_context.get(\u0027audit_id\u0027)"},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"            (token_id, token_data) \u003d self.token_provider_api.issue_v3_token("},{"line_number":414,"context_line":"                auth_context[\u0027user_id\u0027], method_names, expires_at, project_id,"},{"line_number":415,"context_line":"                domain_id, auth_context, trust, metadata_ref, include_catalog,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_8d32a4a5","side":"PARENT","line":412,"updated":"2016-02-29 17:31:57.000000000","message":"and here","commit_id":"7c6556ce18eb170fd8102168b33a50272b22ec5a"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"8c3f496fd0921da3c062bc3c3a059a5863d68f8a","unresolved":false,"context_lines":[{"line_number":387,"context_line":"    def authenticate_for_token(self, context, auth\u003dNone):"},{"line_number":388,"context_line":"        \"\"\"Authenticate user and issue a token.\"\"\""},{"line_number":389,"context_line":"        include_catalog \u003d \u0027nocatalog\u0027 not in context[\u0027query_string\u0027]"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        try:"},{"line_number":392,"context_line":"            auth_info \u003d AuthInfo.create(context, auth\u003dauth)"},{"line_number":393,"context_line":"            auth_context \u003d AuthContext(extras\u003d{},"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_2c60e7a4","side":"PARENT","line":390,"updated":"2016-04-19 12:13:48.000000000","message":"I don\u0027t think these line are relevant to the change","commit_id":"2995748b6374fe8921d2998075116076152f036e"}],"keystone/revoke/backends/sql.py":[{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"2f94ac656410f69219be83e99c0374ab213ed828","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    # The id field is not going to be exposed to the outside world."},{"line_number":25,"context_line":"    # It is, however, necessary for SQLAlchemy."},{"line_number":26,"context_line":"    # THe table may have many other columns but they are no longer used"},{"line_number":27,"context_line":"    id \u003d sql.Column(sql.String(64), primary_key\u003dTrue)"},{"line_number":28,"context_line":"    user_id \u003d sql.Column(sql.String(64))"},{"line_number":29,"context_line":"    issued_before \u003d sql.Column(sql.DateTime(), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_f9bf125e","line":26,"updated":"2016-02-26 17:28:18.000000000","message":"nit: The","commit_id":"80d462cfd3fdd92e340606f25c9ba9515d0da40f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    # The id field is not going to be exposed to the outside world."},{"line_number":25,"context_line":"    # It is, however, necessary for SQLAlchemy."},{"line_number":26,"context_line":"    # THe table may have many other columns but they are no longer used"},{"line_number":27,"context_line":"    id \u003d sql.Column(sql.String(64), primary_key\u003dTrue)"},{"line_number":28,"context_line":"    user_id \u003d sql.Column(sql.String(64))"},{"line_number":29,"context_line":"    issued_before \u003d sql.Column(sql.DateTime(), nullable\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_0d1fb408","line":26,"range":{"start_line":26,"start_character":6,"end_line":26,"end_character":10},"updated":"2016-02-29 17:31:57.000000000","message":"The","commit_id":"04e7413d19b9e641d1e706537d4b64c304ea7af8"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_db import api as oslo_db_api"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"class RevocationEvent(sql.ModelBase, sql.ModelDictMixin):"},{"line_number":21,"context_line":"    __tablename__ \u003d \u0027revocation_event\u0027"},{"line_number":22,"context_line":"    attributes \u003d revoke_model.REVOKE_KEYS"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3a98d1f4_d6234fbb","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":21},"updated":"2016-10-03 16:15:25.000000000","message":"Doesn\u0027t removing these columns change the API, in that we still need to return a list of revocation events (list_events)?","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"}],"keystone/token/provider.py":[{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"2f94ac656410f69219be83e99c0374ab213ed828","unresolved":false,"context_lines":[{"line_number":266,"context_line":"            except exception.Forbidden:"},{"line_number":267,"context_line":"                raise exception.TokenNotFound(_(\u0027Failed to validate token\u0027))"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"        project \u003d token_data.get(\u0027project\u0027, token_data.get(\u0027tenant\u0027))"},{"line_number":270,"context_line":"        if project is not None:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                self.resource_api.assert_project_enabled("}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_74a66911","line":269,"updated":"2016-02-26 17:28:18.000000000","message":"This is only for V3, there is no need to attempt to fall back to V2. \ntoken_data.get(\u0027project\u0027, None)","commit_id":"80d462cfd3fdd92e340606f25c9ba9515d0da40f"},{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"2f94ac656410f69219be83e99c0374ab213ed828","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        project \u003d token_data.get(\u0027project\u0027, token_data.get(\u0027tenant\u0027))"},{"line_number":270,"context_line":"        if project is not None:"},{"line_number":271,"context_line":"            try:"},{"line_number":272,"context_line":"                self.resource_api.assert_project_enabled("},{"line_number":273,"context_line":"                    project[\u0027id\u0027])"},{"line_number":274,"context_line":"                self.resource_api.assert_domain_enabled("},{"line_number":275,"context_line":"                    project[\u0027domain\u0027][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_343861a0","line":272,"updated":"2016-02-26 17:28:18.000000000","message":"A comment would be helpful saying that this also checks the enabled status of the project\u0027s domain.","commit_id":"80d462cfd3fdd92e340606f25c9ba9515d0da40f"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"ea499a24834abbaccc33fc3898216c184d8d350a","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        self._is_valid_token(token_ref)"},{"line_number":302,"context_line":"        return token_ref"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"#    @MEMOIZE"},{"line_number":305,"context_line":"    def _validate_token(self, token_id):"},{"line_number":306,"context_line":"        if not token_id:"},{"line_number":307,"context_line":"            raise exception.TokenNotFound(_(\u0027No token in the request\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aed3d3a_ad4b2886","line":304,"updated":"2016-02-29 17:31:57.000000000","message":"remove this lines?","commit_id":"04e7413d19b9e641d1e706537d4b64c304ea7af8"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"c690acd6eb736b77ea9adca168959fd4e5666bcd","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        project \u003d token_data.get(\u0027project\u0027, token_data.get(\u0027tenant\u0027))"},{"line_number":272,"context_line":"        if project is not None:"},{"line_number":273,"context_line":"            try:"},{"line_number":274,"context_line":"                self.resource_api.assert_project_enabled("},{"line_number":275,"context_line":"                    project[\u0027id\u0027])"},{"line_number":276,"context_line":"                self.resource_api.assert_domain_enabled("}],"source_content_type":"text/x-python","patch_set":10,"id":"3a98d1f4_51a109f7","line":273,"range":{"start_line":273,"start_character":12,"end_line":273,"end_character":16},"updated":"2016-10-03 16:15:25.000000000","message":"Missing check for role assignment","commit_id":"8f4b2aec386fcdaf709c56fa2202e25682324965"}],"keystone/token/providers/common.py":[{"author":{"_account_id":13152,"name":"Jorge Munoz","email":"elkidster@gmail.com","username":"jmunoz"},"change_message_id":"2f94ac656410f69219be83e99c0374ab213ed828","unresolved":false,"context_lines":[{"line_number":798,"context_line":"            bind \u003d token_data.get(\u0027bind\u0027)"},{"line_number":799,"context_line":"            audit \u003d token_data.get(\u0027audit_ids\u0027)"},{"line_number":800,"context_line":""},{"line_number":801,"context_line":"        token_data \u003d self.v3_token_data_helper.get_token_data("},{"line_number":802,"context_line":"            user_id,"},{"line_number":803,"context_line":"            [\u0027password\u0027, \u0027token\u0027],"},{"line_number":804,"context_line":"            project_id\u003dproject_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_94f4cd87","line":801,"updated":"2016-02-26 17:28:18.000000000","message":"Will this fail if the token can\u0027t be rebuild? Will it bubble up the correct exception?","commit_id":"80d462cfd3fdd92e340606f25c9ba9515d0da40f"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"8c3f496fd0921da3c062bc3c3a059a5863d68f8a","unresolved":false,"context_lines":[{"line_number":520,"context_line":"            # TODO(ayoung): This is a work around for the bind"},{"line_number":521,"context_line":"            # data coming back as a tuple sometimes.  Why?"},{"line_number":522,"context_line":"            try:"},{"line_number":523,"context_line":"                bind_data \u003d bind[0]"},{"line_number":524,"context_line":"            except KeyError:"},{"line_number":525,"context_line":"                bind_data \u003d bind"},{"line_number":526,"context_line":"            if bind_data:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_c94965b9","line":523,"updated":"2016-04-19 12:13:48.000000000","message":"If bind is a string bind_data will be just the first char.","commit_id":"a749c12f2200d3686251c51824a5100308b8fcb0"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"8c3f496fd0921da3c062bc3c3a059a5863d68f8a","unresolved":false,"context_lines":[{"line_number":773,"context_line":"                token\u003dtoken_dict,"},{"line_number":774,"context_line":"                access_token\u003daccess_token,"},{"line_number":775,"context_line":"                audit_info\u003daudit_ids)"},{"line_number":776,"context_line":"        except exception.NotFound:"},{"line_number":777,"context_line":"            raise exception.TokenNotFound(token_id\u003dtoken_id)"},{"line_number":778,"context_line":"        except exception.Unauthorized:"},{"line_number":779,"context_line":"            raise exception.TokenNotFound(token_id\u003dtoken_id)"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a122d0e_0c2d2b95","line":776,"updated":"2016-04-19 12:13:48.000000000","message":"except (exception.NotFound, exception.Unauthorized, exception.Forbidden)","commit_id":"a749c12f2200d3686251c51824a5100308b8fcb0"}]}
