)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"05e415ea49af7cb12ef8aef9753f06270bcde482","unresolved":false,"context_lines":[{"line_number":15,"context_line":"your own logging - only use the message that is generated."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"We should keep the message but expose the plugin name as well."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: Ic93ec6583b8d7797529d36d63995ef0d8db754f1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3a961159_b9707ba5","line":18,"updated":"2014-12-30 21:04:19.000000000","message":"This needs a bug or a blueprint.","commit_id":"f432fcb98f54d75d31a9a870a10231e2808c4eeb"}],"keystoneclient/exceptions.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"af830dcc9ac13701bb08e8bfbe815f1858787f71","unresolved":false,"context_lines":[{"line_number":81,"context_line":"class NoMatchingPlugin(ClientException):"},{"line_number":82,"context_line":"    \"\"\"There were no auth plugins that could be created from the parameters"},{"line_number":83,"context_line":"    provided."},{"line_number":84,"context_line":"    \"\"\""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def __init__(self, name):"},{"line_number":87,"context_line":"        self.name \u003d name"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a930d6b_ed911748","line":84,"updated":"2015-01-24 15:04:01.000000000","message":"This needs a docstring update so that users know there\u0027s a name attribute now.","commit_id":"a80249775ab8b59e07e8e2c26ecc2ea4b6b248f6"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"757b4ccb7a067678ef9a8441b7f6afddee82ae04","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    \"\"\"There were no auth plugins that could be created from the parameters"},{"line_number":83,"context_line":"    provided."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    :param str name: The name of the plugin that was attempted to load."},{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def __init__(self, name):"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d8dad916","line":85,"updated":"2015-01-30 22:28:31.000000000","message":"This is handy, but the docs also need to say that NoMatchingPlugin has a ``name`` attribute. As in,\n\n .. py:attribute:: name\n\n     The name of the plugin that was attempted to load.","commit_id":"61517233cbbb7ac253e9b00175f764ded78f4c85"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"757b4ccb7a067678ef9a8441b7f6afddee82ae04","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def __init__(self, name):"},{"line_number":89,"context_line":"        #: The name of the plugin that was attempted to load."},{"line_number":90,"context_line":"        self.name \u003d name"},{"line_number":91,"context_line":"        msg \u003d _(\u0027The plugin %s could not be found\u0027) % name"},{"line_number":92,"context_line":"        super(NoMatchingPlugin, self).__init__(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d8f1f996","line":89,"updated":"2015-01-30 22:28:31.000000000","message":"remove the : , or just remove the comment since it\u0027s already described in the docstring.","commit_id":"61517233cbbb7ac253e9b00175f764ded78f4c85"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"e8dc2c2482048323f021d16cfd02a973c60e9050","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    \"\"\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def __init__(self, name):"},{"line_number":89,"context_line":"        #: The name of the plugin that was attempted to load."},{"line_number":90,"context_line":"        self.name \u003d name"},{"line_number":91,"context_line":"        msg \u003d _(\u0027The plugin %s could not be found\u0027) % name"},{"line_number":92,"context_line":"        super(NoMatchingPlugin, self).__init__(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_74b643de","line":89,"in_reply_to":"da86d52c_d8f1f996","updated":"2015-02-01 22:18:16.000000000","message":"Both these comments are related. By saying #: down here the \u0027name\u0027 attribute is rendered to a doc string with this information,","commit_id":"61517233cbbb7ac253e9b00175f764ded78f4c85"}]}
