)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"08898a194c5d223cc189bb1627c9842106249cc2","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1423941"},{"line_number":15,"context_line":"Change-Id: I3f2f86a0bf93b44b12b0c23f53fb617d9b73043f"},{"line_number":16,"context_line":"Also-by: Kaitlin Farr \u003ckaitlin.farr@jhuapl.edu\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba7be1f8_2c3850ee","line":16,"updated":"2015-02-25 21:06:22.000000000","message":"nit (not worthy of another patch by itself): the traditional tag is \u0027Co-authored-by\u0027","commit_id":"9c8b3cec5d81654b09b6791c710e8c53d45b9dbd"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"cb3e8a02498b0e1e8654e8ecd64199e0c01ac61d","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Closes-Bug: #1423941"},{"line_number":15,"context_line":"Change-Id: I3f2f86a0bf93b44b12b0c23f53fb617d9b73043f"},{"line_number":16,"context_line":"Also-by: Kaitlin Farr \u003ckaitlin.farr@jhuapl.edu\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba7be1f8_3e6b611f","line":16,"updated":"2015-03-02 20:24:08.000000000","message":"Related: blueprint content-types","commit_id":"3f8925156552abb5501680c87bc50aefcbc57454"}],"barbican/plugin/store_crypto.py":[{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"91e3047e1fbaccda439886622eaffd1177e16f9c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            context.content_type \u003d secret_dto.content_type"},{"line_number":88,"context_line":"        normalized_secret \u003d base64.b64decode(secret_dto.secret)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        encrypt_dto \u003d crypto.EncryptDTO(normalized_secret)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Create an encrypted datum instance and add the encrypted cyphertext."},{"line_number":93,"context_line":"        response_dto \u003d encrypting_plugin.encrypt("}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f1c0c5e1","line":90,"updated":"2015-02-19 15:58:16.000000000","message":"Maybe put a blank line between this section and the \"Enhance the context with content_type\" section and add a comment about why the secret needs to be normalized, so that it\u0027s consistent with the rest of the code?","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":6783,"name":"Nathan Reller","email":"nathan.s.reller@gmail.com","username":"rellerreller"},"change_message_id":"a3b5db7d3fab1569735ee75d8f10b5e8e57e93a5","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            context.content_type \u003d secret_dto.content_type"},{"line_number":88,"context_line":"        normalized_secret \u003d base64.b64decode(secret_dto.secret)"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        encrypt_dto \u003d crypto.EncryptDTO(normalized_secret)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        # Create an encrypted datum instance and add the encrypted cyphertext."},{"line_number":93,"context_line":"        response_dto \u003d encrypting_plugin.encrypt("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_063eb9b8","line":90,"in_reply_to":"da86d52c_f1c0c5e1","updated":"2015-02-20 15:49:14.000000000","message":"OK, I made the changed.","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"}],"barbican/plugin/util/translations.py":[{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"91e3047e1fbaccda439886622eaffd1177e16f9c","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Process plain-text type."},{"line_number":32,"context_line":"    if normalized_mime in mime_types.PLAIN_TEXT:"},{"line_number":33,"context_line":"        # normalize text to binary string"},{"line_number":34,"context_line":"        unencrypted \u003d unencrypted.encode(\u0027utf-8\u0027)"},{"line_number":35,"context_line":"        unencrypted \u003d base64.b64encode(unencrypted)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_1181d9c2","line":33,"updated":"2015-02-19 15:58:16.000000000","message":"Should change to \"# normalize text to base64 encoded string\"?","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":6783,"name":"Nathan Reller","email":"nathan.s.reller@gmail.com","username":"rellerreller"},"change_message_id":"a3b5db7d3fab1569735ee75d8f10b5e8e57e93a5","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # Process plain-text type."},{"line_number":32,"context_line":"    if normalized_mime in mime_types.PLAIN_TEXT:"},{"line_number":33,"context_line":"        # normalize text to binary string"},{"line_number":34,"context_line":"        unencrypted \u003d unencrypted.encode(\u0027utf-8\u0027)"},{"line_number":35,"context_line":"        unencrypted \u003d base64.b64encode(unencrypted)"},{"line_number":36,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_a67c0d74","line":33,"in_reply_to":"da86d52c_1181d9c2","updated":"2015-02-20 15:49:14.000000000","message":"Goo catch. Done.","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":8623,"name":"Kaitlin Farr","email":"kaitlin.farr@jhuapl.edu","username":"kaitlin.farr"},"change_message_id":"91e3047e1fbaccda439886622eaffd1177e16f9c","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    # Process binary type."},{"line_number":38,"context_line":"    else:"},{"line_number":39,"context_line":"        if content_encoding and content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                base64.decodestring(unencrypted)"},{"line_number":42,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f16285ab","line":39,"updated":"2015-02-19 15:58:16.000000000","message":"I think this will do the same thing if you just say:\n\n\"if content_encoding \u003d\u003d \u0027base64\u0027:\"\n\nbecause you can still compare None to other values in Python","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":7262,"name":"John Vrbanac","email":"john.vrbanac@linux.com","username":"john.vrbanac"},"change_message_id":"8ec13b1cb6d87fd4e3a9c18ab60a3ca498c62922","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    # Process binary type."},{"line_number":38,"context_line":"    else:"},{"line_number":39,"context_line":"        if content_encoding and content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                base64.decodestring(unencrypted)"},{"line_number":42,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_97de900f","line":39,"updated":"2015-02-19 19:27:55.000000000","message":"is content_encoding \u003d\u003d \u0027base64\u0027 good or would you want to do a .lower() on it?","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":6783,"name":"Nathan Reller","email":"nathan.s.reller@gmail.com","username":"rellerreller"},"change_message_id":"a3b5db7d3fab1569735ee75d8f10b5e8e57e93a5","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    # Process binary type."},{"line_number":38,"context_line":"    else:"},{"line_number":39,"context_line":"        if content_encoding and content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                base64.decodestring(unencrypted)"},{"line_number":42,"context_line":"            except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_261add17","line":39,"in_reply_to":"da86d52c_97de900f","updated":"2015-02-20 15:49:14.000000000","message":"I added that.","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":7262,"name":"John Vrbanac","email":"john.vrbanac@linux.com","username":"john.vrbanac"},"change_message_id":"8ec13b1cb6d87fd4e3a9c18ab60a3ca498c62922","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    else:"},{"line_number":39,"context_line":"        if content_encoding and content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                base64.decodestring(unencrypted)"},{"line_number":42,"context_line":"            except Exception:"},{"line_number":43,"context_line":"                raise s.SecretPayloadDecodingError()"},{"line_number":44,"context_line":"            unencrypted \u003d unencrypted"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_47554f4e","line":41,"updated":"2015-02-19 19:27:55.000000000","message":"Why switch to decodestring instead of b64decode?","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":6783,"name":"Nathan Reller","email":"nathan.s.reller@gmail.com","username":"rellerreller"},"change_message_id":"a3b5db7d3fab1569735ee75d8f10b5e8e57e93a5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    else:"},{"line_number":39,"context_line":"        if content_encoding and content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":40,"context_line":"            try:"},{"line_number":41,"context_line":"                base64.decodestring(unencrypted)"},{"line_number":42,"context_line":"            except Exception:"},{"line_number":43,"context_line":"                raise s.SecretPayloadDecodingError()"},{"line_number":44,"context_line":"            unencrypted \u003d unencrypted"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_26901d95","line":41,"in_reply_to":"da86d52c_47554f4e","updated":"2015-02-20 15:49:14.000000000","message":"Oops! Oversight on my part. Changed it.","commit_id":"ee742fb23a7645d419fbc2fbe1805547734ff0a3"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"08898a194c5d223cc189bb1627c9842106249cc2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        if content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":42,"context_line":"            try:"},{"line_number":43,"context_line":"                base64.b64decode(unencrypted)"},{"line_number":44,"context_line":"            except Exception:"},{"line_number":45,"context_line":"                raise s.SecretPayloadDecodingError()"},{"line_number":46,"context_line":"            unencrypted \u003d unencrypted"},{"line_number":47,"context_line":"        elif mime_types.use_binary_content_as_is(content_type,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_12448219","line":44,"updated":"2015-02-25 21:06:22.000000000","message":"Know it doesn\u0027t really belong as part of this patch, but as near as I can tell, b64decode can only raise a TypeError. It might be beneficial to restrict the exception that\u0027s handled to just that type.","commit_id":"9c8b3cec5d81654b09b6791c710e8c53d45b9dbd"},{"author":{"_account_id":7789,"name":"John Wood","email":"john.wood@rackspace.com","username":"woodster"},"change_message_id":"d2985b4f04e170bb6569b8a1480fc66f2481761e","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        if content_encoding \u003d\u003d \u0027base64\u0027:"},{"line_number":42,"context_line":"            try:"},{"line_number":43,"context_line":"                base64.b64decode(unencrypted)"},{"line_number":44,"context_line":"            except Exception:"},{"line_number":45,"context_line":"                raise s.SecretPayloadDecodingError()"},{"line_number":46,"context_line":"            unencrypted \u003d unencrypted"},{"line_number":47,"context_line":"        elif mime_types.use_binary_content_as_is(content_type,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_4cd33a38","line":44,"in_reply_to":"ba7be1f8_12448219","updated":"2015-03-02 02:50:46.000000000","message":"I agree with this.","commit_id":"9c8b3cec5d81654b09b6791c710e8c53d45b9dbd"}],"barbican/tests/api/test_resources.py":[{"author":{"_account_id":6783,"name":"Nathan Reller","email":"nathan.s.reller@gmail.com","username":"rellerreller"},"change_message_id":"43cb2ae79fb70c9bbf6d5a8b87d6cda2406ccede","unresolved":false,"context_lines":[{"line_number":61,"context_line":"def create_secret(id_ref\u003d\"id\", name\u003d\"name\","},{"line_number":62,"context_line":"                  algorithm\u003dNone, bit_length\u003dNone,"},{"line_number":63,"context_line":"                  mode\u003dNone, encrypted_datum\u003dNone, content_type\u003dNone,"},{"line_number":64,"context_line":"                  content_encoding\u003dNone):"},{"line_number":65,"context_line":"    \"\"\"Generate a Secret entity instance.\"\"\""},{"line_number":66,"context_line":"    info \u003d {\u0027id\u0027: id_ref,"},{"line_number":67,"context_line":"            \u0027name\u0027: name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_ce2ddc47","line":64,"updated":"2015-02-19 15:26:44.000000000","message":"Oops. I left this in there. I will remove it because it is not needed.","commit_id":"189fed9669c7ad659d631148a7c8641214b0fb97"}]}
