)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6816,"name":"Jesse Pretorius","email":"jesse@odyssey4.me","username":"jesse-pretorius"},"change_message_id":"a0bcfa8385124cc21e21b599f8a5fc8e335f5ad4","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for Federation Protocols"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Requires: https://review.opendev.org/714120"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I6b60b8ce6f3650adff4732f06b212da787866183"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df33271e_1b24200d","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":8},"updated":"2020-03-23 14:29:30.000000000","message":"I think this may need to be \u0027Depends-On\u0027","commit_id":"7ece1575ff7f77e745ae6521e5606b794bd18e2d"}],"openstack/identity/v3/_proxy.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2f05544213f88a2afd4bd21425b1d0e5bf79160","unresolved":false,"context_lines":[{"line_number":1377,"context_line":"        return self._find(_federation_protocol.FederationProtocol, name_or_id,"},{"line_number":1378,"context_line":"                          ignore_missing\u003dignore_missing, idp_id\u003didp_id)"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":"    def get_federation_protocol(self, idp_id, protocol):"},{"line_number":1381,"context_line":"        \"\"\"Get a single federation protocol"},{"line_number":1382,"context_line":""},{"line_number":1383,"context_line":"        :param idp_id: The ID of the identity provider the protocol is"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_9d04a0c8","line":1380,"range":{"start_line":1380,"start_character":38,"end_line":1380,"end_character":54},"updated":"2020-03-23 18:53:27.000000000","message":"I found the order of these unintuitive but I see that\u0027s the order in the API so this is probably best","commit_id":"650350a7ff366e85495dfce980ef419bde02d72f"},{"author":{"_account_id":14369,"name":"Mark Chappell","email":"mchappel@redhat.com","username":"tremble"},"change_message_id":"23b777dda6f2ceea9e6d3aabdd913a4274e3ae79","unresolved":false,"context_lines":[{"line_number":1377,"context_line":"        return self._find(_federation_protocol.FederationProtocol, name_or_id,"},{"line_number":1378,"context_line":"                          ignore_missing\u003dignore_missing, idp_id\u003didp_id)"},{"line_number":1379,"context_line":""},{"line_number":1380,"context_line":"    def get_federation_protocol(self, idp_id, protocol):"},{"line_number":1381,"context_line":"        \"\"\"Get a single federation protocol"},{"line_number":1382,"context_line":""},{"line_number":1383,"context_line":"        :param idp_id: The ID of the identity provider the protocol is"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_9d19408a","line":1380,"range":{"start_line":1380,"start_character":38,"end_line":1380,"end_character":54},"in_reply_to":"df33271e_9d04a0c8","updated":"2020-03-23 19:43:16.000000000","message":"I also found it unintuative, but the other examples I could find did it this way around:  For example get_application_credential","commit_id":"650350a7ff366e85495dfce980ef419bde02d72f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"af2500199764b3ef328024d09f4bba32f03cf19a","unresolved":false,"context_lines":[{"line_number":1337,"context_line":"        \"\"\""},{"line_number":1338,"context_line":"        return self._create(_federation_protocol.FederationProtocol, **attrs)"},{"line_number":1339,"context_line":""},{"line_number":1340,"context_line":"    def delete_federation_protocol(self, idp_id, protocol,"},{"line_number":1341,"context_line":"                                   ignore_missing\u003dTrue):"},{"line_number":1342,"context_line":"        \"\"\"Delete a federation protocol"},{"line_number":1343,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_7c76dda6","line":1340,"range":{"start_line":1340,"start_character":49,"end_line":1340,"end_character":57},"updated":"2020-03-25 11:50:33.000000000","message":"I\u0027d suggest using consistent naming here: either name_or_id everywhere or protocol","commit_id":"8e12d07c8c6c5a76c3d2cb5464bdfd8f3ed88f8c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"af2500199764b3ef328024d09f4bba32f03cf19a","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"                                   ignore_missing\u003dTrue):"},{"line_number":1342,"context_line":"        \"\"\"Delete a federation protocol"},{"line_number":1343,"context_line":""},{"line_number":1344,"context_line":"        :param idp_id: The ID of the identity provider the protocol is"},{"line_number":1345,"context_line":"            attached to."},{"line_number":1346,"context_line":"        :param protocol: The ID of a federation protocol or a"},{"line_number":1347,"context_line":"            :class:`~openstack.identity.v3.federation_protocol."},{"line_number":1348,"context_line":"            FederationProtocol` instance."}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_dc6449e8","line":1345,"range":{"start_line":1344,"start_character":23,"end_line":1345,"end_character":24},"updated":"2020-03-25 11:50:33.000000000","message":"A thought for the future: allow IdentityProvider objects (assuming we have or will have them).\n\nOh, and it can be None, worth documenting it.","commit_id":"8e12d07c8c6c5a76c3d2cb5464bdfd8f3ed88f8c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"af2500199764b3ef328024d09f4bba32f03cf19a","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"        :returns: ``None``"},{"line_number":1356,"context_line":"        \"\"\""},{"line_number":1357,"context_line":"        cls \u003d _federation_protocol.FederationProtocol"},{"line_number":1358,"context_line":"        if (idp_id is None) and (isinstance(protocol, cls)):"},{"line_number":1359,"context_line":"            idp_id \u003d protocol.idp_id"},{"line_number":1360,"context_line":"        self._delete(cls, protocol,"},{"line_number":1361,"context_line":"                     ignore_missing\u003dignore_missing, idp_id\u003didp_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"df33271e_3cb9f52d","line":1358,"updated":"2020-03-25 11:50:33.000000000","message":"nit: redundant brackets (similarly below)","commit_id":"8e12d07c8c6c5a76c3d2cb5464bdfd8f3ed88f8c"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c16247325a4fda0b23ed84b95e3d35b03f54a5bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"df33271e_539f845e","updated":"2020-03-25 16:24:26.000000000","message":"This file could use unit tests, I think","commit_id":"49c3bba90609d28e2d2d86255ff07656c27ca64a"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c16247325a4fda0b23ed84b95e3d35b03f54a5bb","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"        cls \u003d _federation_protocol.FederationProtocol"},{"line_number":1371,"context_line":"        if idp_id is None and isinstance(protocol, cls):"},{"line_number":1372,"context_line":"            idp_id \u003d protocol.idp_id"},{"line_number":1373,"context_line":"        idp_cls \u003d _identity_provider.IdentityProvider"},{"line_number":1374,"context_line":"        if isinstance(idp_id, idp_cls):"},{"line_number":1375,"context_line":"            idp_id \u003d idp_id.id"},{"line_number":1376,"context_line":"        self._delete(cls, protocol,"}],"source_content_type":"text/x-python","patch_set":7,"id":"df33271e_b387f00f","line":1373,"updated":"2020-03-25 16:24:26.000000000","message":"nit: these variables with classes feel redundant to me","commit_id":"49c3bba90609d28e2d2d86255ff07656c27ca64a"}],"openstack/identity/v3/federation_protocol.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2f05544213f88a2afd4bd21425b1d0e5bf79160","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    )"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Properties"},{"line_number":36,"context_line":"    #: name of the role *Type: string*"},{"line_number":37,"context_line":"    name \u003d resource.Body(\u0027id\u0027)"},{"line_number":38,"context_line":"    #: The ID of the identity provider the protocol is attached to."},{"line_number":39,"context_line":"    #  *Type: string*"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_7dd6fc51","line":36,"range":{"start_line":36,"start_character":19,"end_line":36,"end_character":23},"updated":"2020-03-23 18:53:27.000000000","message":"not a role","commit_id":"650350a7ff366e85495dfce980ef419bde02d72f"},{"author":{"_account_id":14369,"name":"Mark Chappell","email":"mchappel@redhat.com","username":"tremble"},"change_message_id":"23b777dda6f2ceea9e6d3aabdd913a4274e3ae79","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    )"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Properties"},{"line_number":36,"context_line":"    #: name of the role *Type: string*"},{"line_number":37,"context_line":"    name \u003d resource.Body(\u0027id\u0027)"},{"line_number":38,"context_line":"    #: The ID of the identity provider the protocol is attached to."},{"line_number":39,"context_line":"    #  *Type: string*"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_3d0f532f","line":36,"range":{"start_line":36,"start_character":19,"end_line":36,"end_character":23},"in_reply_to":"df33271e_7dd6fc51","updated":"2020-03-23 19:43:16.000000000","message":"Will get that fixed.","commit_id":"650350a7ff366e85495dfce980ef419bde02d72f"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"e2f05544213f88a2afd4bd21425b1d0e5bf79160","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Properties"},{"line_number":36,"context_line":"    #: name of the role *Type: string*"},{"line_number":37,"context_line":"    name \u003d resource.Body(\u0027id\u0027)"},{"line_number":38,"context_line":"    #: The ID of the identity provider the protocol is attached to."},{"line_number":39,"context_line":"    #  *Type: string*"},{"line_number":40,"context_line":"    idp_id \u003d resource.URI(\u0027idp_id\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_ddcbc8a2","line":37,"updated":"2020-03-23 18:53:27.000000000","message":"I think this needs to be id, not name - trying to use name fails","commit_id":"650350a7ff366e85495dfce980ef419bde02d72f"},{"author":{"_account_id":14369,"name":"Mark Chappell","email":"mchappel@redhat.com","username":"tremble"},"change_message_id":"23b777dda6f2ceea9e6d3aabdd913a4274e3ae79","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # Properties"},{"line_number":36,"context_line":"    #: name of the role *Type: string*"},{"line_number":37,"context_line":"    name \u003d resource.Body(\u0027id\u0027)"},{"line_number":38,"context_line":"    #: The ID of the identity provider the protocol is attached to."},{"line_number":39,"context_line":"    #  *Type: string*"},{"line_number":40,"context_line":"    idp_id \u003d resource.URI(\u0027idp_id\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"df33271e_fd0deb37","line":37,"in_reply_to":"df33271e_ddcbc8a2","updated":"2020-03-23 19:43:16.000000000","message":"id\u003dBody(id) gets automatically added, without something like this get returns \"name: None\" with no way to simply exclude name that I could see","commit_id":"650350a7ff366e85495dfce980ef419bde02d72f"}]}
