)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"efcdbdba5c4830025bf11fad1dab6aaf769e003d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rafael Durán Castañeda \u003crafadurancastaneda@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2012-05-22 20:16:22 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes bug 963098"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I10be0a27b24bbd3a3b1935074387e43448e8d8ab"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAHX%2F%2F2f0%3D","line":7,"updated":"2012-05-29 20:27:14.000000000","message":"hey raphael - could you include a short sentence description of what this is doing in addition to the bug reference?","commit_id":"0172b2ea3ede7025fb6c34b499722f050ffcd4b0"}],"keystone/contrib/handle_auth_error/__init__.py":[{"author":{"_account_id":6,"name":"Joe Heck","email":"heckj@mac.com","username":"heckj"},"change_message_id":"efcdbdba5c4830025bf11fad1dab6aaf769e003d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"# under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from keystone.contrib.handle_auth_error.core import *"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAHX%2F%2F2fs%3D","line":17,"updated":"2012-05-29 20:27:14.000000000","message":"please be explicit about imports - use multiple lines if need be","commit_id":"0172b2ea3ede7025fb6c34b499722f050ffcd4b0"}],"keystone/contrib/security/middleware.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b6c059c31b2bf5ef1f0a9d0ddc5cebe1c705ee83","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"CONF \u003d config.CONF"},{"line_number":33,"context_line":"config.register_int(\u0027expiration\u0027, group\u003d\u0027mail_401\u0027)"},{"line_number":34,"context_line":"config.register_int(\u0027tolerance\u0027, group\u003d\u0027mail_401\u0027)"},{"line_number":35,"context_line":"config.register_str(\u0027mail_manager\u0027, group\u003d\u0027mail_401\u0027)"},{"line_number":36,"context_line":"config.register_str(\u0027host\u0027, group\u003d\u0027mail_401\u0027, default\u003d\u0027localhost\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F7oY%3D","line":33,"updated":"2012-05-15 18:57:27.000000000","message":"need sensible defaults for all options","commit_id":"519c6e824124c5f2330f168c076fab346557feb7"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b6c059c31b2bf5ef1f0a9d0ddc5cebe1c705ee83","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        return self.mail_manager"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def make_msg(self, refs):"},{"line_number":125,"context_line":"        return self.mailer.make_msg(subject\u003d\u0027Keystone alert: 401 errors.\u0027,"},{"line_number":126,"context_line":"                                    to\u003dself.admins,"},{"line_number":127,"context_line":"                                    from_\u003dself.conf.from_email,"},{"line_number":128,"context_line":"                                    body\u003d\u0027\\n\u0027.join([str(ref) for ref in refs]),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAHX%2F%2F7oc%3D","line":125,"updated":"2012-05-15 18:57:27.000000000","message":"Subject should be configurable","commit_id":"519c6e824124c5f2330f168c076fab346557feb7"}]}
