)]}'
{"swift/common/middleware/staticweb.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"b1f2f82764e28ceede7fb7d51d34d7bdd3ef2c00","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    json, quote, get_valid_utf8_str, register_swift_info"},{"line_number":124,"context_line":"from swift.common.wsgi import make_pre_authed_env, WSGIContext"},{"line_number":125,"context_line":"from swift.common.http import is_success, is_redirection, HTTP_NOT_FOUND"},{"line_number":126,"context_line":"from swift.common.swob import ("},{"line_number":127,"context_line":"    Response, HTTPMovedPermanently, HTTPNotFound, Request)"},{"line_number":128,"context_line":"from swift.proxy.controllers.base import get_container_info"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F94Zk%3D","line":126,"updated":"2013-12-04 23:14:03.000000000","message":"Nice, I like avoiding those continuation line characters ...","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"}],"swift/common/middleware/tempauth.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"b1f2f82764e28ceede7fb7d51d34d7bdd3ef2c00","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                    except ValueError:"},{"line_number":163,"context_line":"                        realm \u003d \u0027unknown\u0027"},{"line_number":164,"context_line":"                    return HTTPUnauthorized(headers\u003d{"},{"line_number":165,"context_line":"                        \u0027Www-Authenticate\u0027: \u0027Swift realm\u003d\"%s\"\u0027 % realm,"},{"line_number":166,"context_line":"                    })(env, start_response)"},{"line_number":167,"context_line":"                # Because I\u0027m not certain if I\u0027m the definitive auth for empty"},{"line_number":168,"context_line":"                # reseller_prefixed tokens, I won\u0027t overwrite swift.authorize."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F94Yw%3D","line":165,"updated":"2013-12-04 23:14:03.000000000","message":"So this is just a pure re-wrap and comma add?","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"unresolved":false,"context_lines":[{"line_number":162,"context_line":"                    except ValueError:"},{"line_number":163,"context_line":"                        realm \u003d \u0027unknown\u0027"},{"line_number":164,"context_line":"                    return HTTPUnauthorized(headers\u003d{"},{"line_number":165,"context_line":"                        \u0027Www-Authenticate\u0027: \u0027Swift realm\u003d\"%s\"\u0027 % realm,"},{"line_number":166,"context_line":"                    })(env, start_response)"},{"line_number":167,"context_line":"                # Because I\u0027m not certain if I\u0027m the definitive auth for empty"},{"line_number":168,"context_line":"                # reseller_prefixed tokens, I won\u0027t overwrite swift.authorize."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F93Z8%3D","line":165,"in_reply_to":"AAAATn%2F93ds%3D","updated":"2013-12-05 03:17:20.000000000","message":"Oh, good, thanks.","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"5353b21181133db59a5dd4beec8321f1fbee4e81","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                    except ValueError:"},{"line_number":163,"context_line":"                        realm \u003d \u0027unknown\u0027"},{"line_number":164,"context_line":"                    return HTTPUnauthorized(headers\u003d{"},{"line_number":165,"context_line":"                        \u0027Www-Authenticate\u0027: \u0027Swift realm\u003d\"%s\"\u0027 % realm,"},{"line_number":166,"context_line":"                    })(env, start_response)"},{"line_number":167,"context_line":"                # Because I\u0027m not certain if I\u0027m the definitive auth for empty"},{"line_number":168,"context_line":"                # reseller_prefixed tokens, I won\u0027t overwrite swift.authorize."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F93ds%3D","line":165,"in_reply_to":"AAAATn%2F94Yw%3D","updated":"2013-12-05 03:03:33.000000000","message":"Yeah, my editor auto-runs flake8 on every file and it\u0027s really annoying until they\u0027re fixed... and I had this file open ;).\n\nThis line obviously doesn\u0027t bother whatever flake8 the tox gates use, but I keep mine up to date.","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"}],"swift/proxy/controllers/base.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"b1f2f82764e28ceede7fb7d51d34d7bdd3ef2c00","unresolved":false,"context_lines":[{"line_number":238,"context_line":"          request has authorization to the object."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    (version, account, container, obj) \u003d \\"},{"line_number":241,"context_line":"        split_path(env.get(\u0027SCRIPT_NAME\u0027, \u0027\u0027) + (path or env[\u0027PATH_INFO\u0027]),"},{"line_number":242,"context_line":"                   4, 4, True)"},{"line_number":243,"context_line":"    info \u003d _get_object_info(app, env, account, container, obj,"},{"line_number":244,"context_line":"                            swift_source\u003dswift_source)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F94YI%3D","line":241,"updated":"2013-12-04 23:14:03.000000000","message":"Can you note why we need SCRIPT_NAME here? Or perhaps just help me understand what I am missing here?","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"unresolved":false,"context_lines":[{"line_number":238,"context_line":"          request has authorization to the object."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    (version, account, container, obj) \u003d \\"},{"line_number":241,"context_line":"        split_path(env.get(\u0027SCRIPT_NAME\u0027, \u0027\u0027) + (path or env[\u0027PATH_INFO\u0027]),"},{"line_number":242,"context_line":"                   4, 4, True)"},{"line_number":243,"context_line":"    info \u003d _get_object_info(app, env, account, container, obj,"},{"line_number":244,"context_line":"                            swift_source\u003dswift_source)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F93Zs%3D","line":241,"in_reply_to":"AAAATn%2F93c0%3D","updated":"2013-12-05 03:17:20.000000000","message":"A good comment is fine by me.","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"5353b21181133db59a5dd4beec8321f1fbee4e81","unresolved":false,"context_lines":[{"line_number":238,"context_line":"          request has authorization to the object."},{"line_number":239,"context_line":"    \"\"\""},{"line_number":240,"context_line":"    (version, account, container, obj) \u003d \\"},{"line_number":241,"context_line":"        split_path(env.get(\u0027SCRIPT_NAME\u0027, \u0027\u0027) + (path or env[\u0027PATH_INFO\u0027]),"},{"line_number":242,"context_line":"                   4, 4, True)"},{"line_number":243,"context_line":"    info \u003d _get_object_info(app, env, account, container, obj,"},{"line_number":244,"context_line":"                            swift_source\u003dswift_source)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F93c0%3D","line":241,"in_reply_to":"AAAATn%2F94YI%3D","updated":"2013-12-05 03:03:33.000000000","message":"Yeah, I\u0027ll add a comment, but basically, this is an inlining of swob.Request.split_path with the addition of the optional kwarg \"path\" which will be used in preference to env[\u0027PATH_INFO\u0027].  If it weren\u0027t for the existing optional \"path\" kwarg, this would look just like get_container_info and get_account_info.\n\nI didn\u0027t add the optional path thing, but I figured it should still continue to work, and I didn\u0027t feel like messing with swob.Request.split_path\u0027s interface just for this one method (though I\u0027m open to persuasion).","commit_id":"d51bbfacf43690ebb5534e9e5a120c213071c2c6"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"unresolved":false,"context_lines":[{"line_number":240,"context_line":"    # The call to split_path here is very similar to swob.Request.split_path,"},{"line_number":241,"context_line":"    # with the exception that the optional kwarg \"path\" will be used in"},{"line_number":242,"context_line":"    # preference to env[\u0027PATH_INFO\u0027]."},{"line_number":243,"context_line":"    # This is important so that this utility function can still work after the"},{"line_number":244,"context_line":"    # proxy-server has called req.path_info_pop().  Without sending in the"},{"line_number":245,"context_line":"    # concatenation of SCRIPT_NAME and PATH_INFO, a ValueError would get"},{"line_number":246,"context_line":"    # erroneously raised here if called after the proxy-server calls"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9xyg%3D","line":243,"updated":"2013-12-06 01:27:53.000000000","message":"I would\u0027ve dropped the first 4 lines and just leave \"Without sending etc.\" Not critical, but seems like useless water in the beginning of the comment.","commit_id":"99f900c434573e14d5efd14fa972cba8577c22bf"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"5353b21181133db59a5dd4beec8321f1fbee4e81","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    # The call to split_path here is very similar to swob.Request.split_path,"},{"line_number":241,"context_line":"    # with the exception that the optional kwarg \"path\" will be used in"},{"line_number":242,"context_line":"    # preference to env[\u0027PATH_INFO\u0027]."},{"line_number":243,"context_line":"    # This is important so that this utility function can still work after the"},{"line_number":244,"context_line":"    # proxy-server has called req.path_info_pop().  Without sending in the"},{"line_number":245,"context_line":"    # concatenation of SCRIPT_NAME and PATH_INFO, a ValueError would get"},{"line_number":246,"context_line":"    # erroneously raised here if called after the proxy-server calls"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9xyA%3D","line":243,"in_reply_to":"AAAATn%2F9xyg%3D","updated":"2013-12-06 01:30:55.000000000","message":"Done","commit_id":"99f900c434573e14d5efd14fa972cba8577c22bf"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"unresolved":false,"context_lines":[{"line_number":246,"context_line":"    # erroneously raised here if called after the proxy-server calls"},{"line_number":247,"context_line":"    # req.path_info_pop()."},{"line_number":248,"context_line":"    (version, account, container, obj) \u003d \\"},{"line_number":249,"context_line":"        split_path(env.get(\u0027SCRIPT_NAME\u0027, \u0027\u0027) + (path or env[\u0027PATH_INFO\u0027]),"},{"line_number":250,"context_line":"                   4, 4, True)"},{"line_number":251,"context_line":"    info \u003d _get_object_info(app, env, account, container, obj,"},{"line_number":252,"context_line":"                            swift_source\u003dswift_source)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9xyw%3D","line":249,"updated":"2013-12-06 01:27:53.000000000","message":"Why is it not possible to change the prototype of get_object_info() so that it takes request instead of the env? Then, you could use req.script_name, which is coincidentially updated by pop_info...","commit_id":"99f900c434573e14d5efd14fa972cba8577c22bf"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"5353b21181133db59a5dd4beec8321f1fbee4e81","unresolved":false,"context_lines":[{"line_number":246,"context_line":"    # erroneously raised here if called after the proxy-server calls"},{"line_number":247,"context_line":"    # req.path_info_pop()."},{"line_number":248,"context_line":"    (version, account, container, obj) \u003d \\"},{"line_number":249,"context_line":"        split_path(env.get(\u0027SCRIPT_NAME\u0027, \u0027\u0027) + (path or env[\u0027PATH_INFO\u0027]),"},{"line_number":250,"context_line":"                   4, 4, True)"},{"line_number":251,"context_line":"    info \u003d _get_object_info(app, env, account, container, obj,"},{"line_number":252,"context_line":"                            swift_source\u003dswift_source)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9xyE%3D","line":249,"in_reply_to":"AAAATn%2F9xyw%3D","updated":"2013-12-06 01:30:55.000000000","message":"It\u0027s not impossible, it\u0027s just less work than I wanted present in this patch.","commit_id":"99f900c434573e14d5efd14fa972cba8577c22bf"}]}
