)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1e48ea2c9a09121c60ab99df080229afa3c678cb","unresolved":false,"context_lines":[{"line_number":11,"context_line":"RFC-4648 to generate the cms token id. Also strip the trailing pad"},{"line_number":12,"context_line":"character(s) as suggested in RFC-4648 to be fully URL safe. Use"},{"line_number":13,"context_line":"Python\u0027s base64.urlsafe_b64encode() and base64.urlsafe_b64decode() to"},{"line_number":14,"context_line":"perform the encode/decode operations. See bug report for complete"},{"line_number":15,"context_line":"issue description. The implementation utilizes functions in"},{"line_number":16,"context_line":"keystone.common.base64utils and keystone.common.pem_utils which appear"},{"line_number":17,"context_line":"in prior commit for this bug."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2F7CM%3D","line":14,"updated":"2013-10-08 01:11:50.000000000","message":"remove \"See bug report for complete issue description.\" since this is implied.","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"}],"keystone/common/cms.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b5f657e5e0ef30718d10c9333f308b22fa647dfe","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"def cms_pem_to_token_id(cms_pem):"},{"line_number":52,"context_line":"    \u0027\u0027\u0027Convert cms pem to a token_id which is URL safe"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    The cms data will be encoded in base64 to be used as a token id."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FISk%3D","line":52,"updated":"2013-10-03 20:08:53.000000000","message":"Follow docstring convention specified in keystone/HACKING.rst \n\nhttps://github.com/openstack/keystone/blob/master/HACKING.rst#docstrings\n\n\nmainly \"\"\" instead of \u0027\u0027\u0027","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b5f657e5e0ef30718d10c9333f308b22fa647dfe","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    :returns: a URL safe token_id"},{"line_number":98,"context_line":"    \u0027\u0027\u0027"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # Extract the bindary data from the PEM formatted input"},{"line_number":101,"context_line":"    binary_data \u003d pem_utils.get_pem_data(cms_pem, \u0027cms\u0027)"},{"line_number":102,"context_line":"    if binary_data is None:"},{"line_number":103,"context_line":"        raise ValueError(\u0027no pem found in cms_pem\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FITo%3D","line":100,"updated":"2013-10-03 20:08:53.000000000","message":"binary*","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1e48ea2c9a09121c60ab99df080229afa3c678cb","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    :returns: a URL safe token_id"},{"line_number":98,"context_line":"    \u0027\u0027\u0027"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # Extract the bindary data from the PEM formatted input"},{"line_number":101,"context_line":"    binary_data \u003d pem_utils.get_pem_data(cms_pem, \u0027cms\u0027)"},{"line_number":102,"context_line":"    if binary_data is None:"},{"line_number":103,"context_line":"        raise ValueError(\u0027no pem found in cms_pem\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2F7Bo%3D","line":100,"in_reply_to":"AAAAS3%2F%2FITo%3D","updated":"2013-10-08 01:11:50.000000000","message":"suggest remove the comment because it\u0027s documenting one line that\u0027s obvious already.","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b5f657e5e0ef30718d10c9333f308b22fa647dfe","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    # Extract the bindary data from the PEM formatted input"},{"line_number":101,"context_line":"    binary_data \u003d pem_utils.get_pem_data(cms_pem, \u0027cms\u0027)"},{"line_number":102,"context_line":"    if binary_data is None:"},{"line_number":103,"context_line":"        raise ValueError(\u0027no pem found in cms_pem\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # Encode binary data with a URL safe base64 alphabet"},{"line_number":106,"context_line":"    text \u003d base64.urlsafe_b64encode(binary_data)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FITU%3D","line":103,"updated":"2013-10-03 20:08:53.000000000","message":"Should this be wrapped in LOG.error(_(\u0027No pem found in cms\u0027)) or something similar?","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"1e48ea2c9a09121c60ab99df080229afa3c678cb","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    if binary_data is None:"},{"line_number":103,"context_line":"        raise ValueError(\u0027no pem found in cms_pem\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # Encode binary data with a URL safe base64 alphabet"},{"line_number":106,"context_line":"    text \u003d base64.urlsafe_b64encode(binary_data)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # Strip the padding because it\u0027s not URL safe"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2F7Bg%3D","line":105,"updated":"2013-10-08 01:11:50.000000000","message":"remove comment because the code is obvious already.","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b5f657e5e0ef30718d10c9333f308b22fa647dfe","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        raise ValueError(\u0027no pem found in cms_pem\u0027)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # Encode binary data with a URL safe base64 alphabet"},{"line_number":106,"context_line":"    text \u003d base64.urlsafe_b64encode(binary_data)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    # Strip the padding because it\u0027s not URL safe"},{"line_number":109,"context_line":"    token_id \u003d base64_utils.base64_strip_padding(text)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FITA%3D","line":106,"updated":"2013-10-03 20:08:53.000000000","message":"(NIT): Can var \u0027text\u0027 be renamed to \u0027encoded_binary\u0027 or something a little more descriptive?","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b5f657e5e0ef30718d10c9333f308b22fa647dfe","unresolved":false,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"def token_id_to_cms_pem(token_id):"},{"line_number":115,"context_line":"    \u0027\u0027\u0027Convert a URL safe token_id to cms data in PEM format"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    See cms_pem_to_token_id() for a full explanation of how the token"},{"line_number":118,"context_line":"    id encodes the cms data."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FISo%3D","line":115,"updated":"2013-10-03 20:08:53.000000000","message":"Follow docstring convention specified in keystone/HACKING.rst \n\nhttps://github.com/openstack/keystone/blob/master/HACKING.rst#docstrings","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"b5f657e5e0ef30718d10c9333f308b22fa647dfe","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    \u0027\u0027\u0027"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    # Restore padding because urlsafe_b64decode demands correct padding"},{"line_number":125,"context_line":"    text \u003d base64_utils.base64_assure_padding(token_id)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    # Decode the URL safe base64 back into binary data"},{"line_number":128,"context_line":"    binary_data \u003d base64.urlsafe_b64decode(text)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FISg%3D","line":125,"updated":"2013-10-03 20:08:53.000000000","message":"Same comment here as above relating to var \u0027text\u0027","commit_id":"bd46433850fe8f5402ea34b3a63da3baaa692352"}]}
