)]}'
{"test/functional/swift_test_client.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"531f728a25ea85f4d6e177c8161227800542c916","unresolved":false,"context_lines":[{"line_number":328,"context_line":"                          for (x, y) in parms.items()]"},{"line_number":329,"context_line":"            path \u003d \u0027%s?%s\u0027 % (path, \u0027\u0026\u0027.join(query_args))"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        self.connection \u003d self.conn_class(self.storage_netloc)"},{"line_number":332,"context_line":"        self.connection.putrequest(\u0027PUT\u0027, path)"},{"line_number":333,"context_line":"        for key, value in headers.items():"},{"line_number":334,"context_line":"            self.connection.putheader(key, value)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_f2b2a149","side":"PARENT","line":331,"updated":"2018-06-04 11:59:25.000000000","message":"ok, this was already done by http_connect()","commit_id":"661838d968c163cec716cd5c8bcce9f5c69d18d4"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"531f728a25ea85f4d6e177c8161227800542c916","unresolved":false,"context_lines":[{"line_number":216,"context_line":"            import ssl"},{"line_number":217,"context_line":"            self.connection \u003d self.conn_class("},{"line_number":218,"context_line":"                self.storage_netloc,"},{"line_number":219,"context_line":"                context\u003dssl._create_unverified_context())"},{"line_number":220,"context_line":"        else:"},{"line_number":221,"context_line":"            self.connection \u003d self.conn_class(self.storage_netloc)"},{"line_number":222,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_b2df490b","line":219,"range":{"start_line":219,"start_character":16,"end_line":219,"end_character":24},"updated":"2018-06-04 11:59:25.000000000","message":"HTTPConnection doesn\u0027t have this keyword\n\n  TypeError: __init__() got an unexpected keyword argument \u0027context\u0027","commit_id":"1eb4a421ec16dd0c365fd80eae9fa578efbfc334"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"8698fc7735c6c15ef22c720b94fbd82027028876","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        else:"},{"line_number":149,"context_line":"            auth_user \u003d self.username"},{"line_number":150,"context_line":"            auth_path \u003d self.auth_prefix"},{"line_number":151,"context_line":"        auth_scheme \u003d \u0027https://\u0027 if self.auth_ssl else \u0027http://\u0027"},{"line_number":152,"context_line":"        auth_netloc \u003d \"%s:%d\" % (self.auth_host, self.auth_port)"},{"line_number":153,"context_line":"        auth_url \u003d auth_scheme + auth_netloc + auth_path"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_ee2c8c4b","line":151,"range":{"start_line":151,"start_character":22,"end_line":151,"end_character":64},"updated":"2018-06-08 08:51:47.000000000","message":"so auth_ssl determines the scheme *for the auth requests*","commit_id":"3e5fc9b4cabafee282c1b6009f70067dd3398d21"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"8698fc7735c6c15ef22c720b94fbd82027028876","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        else:"},{"line_number":149,"context_line":"            auth_user \u003d self.username"},{"line_number":150,"context_line":"            auth_path \u003d self.auth_prefix"},{"line_number":151,"context_line":"        auth_scheme \u003d \u0027https://\u0027 if self.auth_ssl else \u0027http://\u0027"},{"line_number":152,"context_line":"        auth_netloc \u003d \"%s:%d\" % (self.auth_host, self.auth_port)"},{"line_number":153,"context_line":"        auth_url \u003d auth_scheme + auth_netloc + auth_path"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        if self.insecure:"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_4e4ee038","line":152,"range":{"start_line":151,"start_character":8,"end_line":152,"end_character":64},"updated":"2018-06-08 08:51:47.000000000","message":"off-topic: it\u0027s not immediately obvious to me why we build the url from pieces rather than having\n\n  auth_url \u003d http://localhost:8080\n\nin test.conf","commit_id":"3e5fc9b4cabafee282c1b6009f70067dd3398d21"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"8698fc7735c6c15ef22c720b94fbd82027028876","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        url \u003d urllib.parse.urlparse(storage_url)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        if url.scheme \u003d\u003d \u0027http\u0027:"},{"line_number":177,"context_line":"            self.conn_class \u003d http_client.HTTPConnection"},{"line_number":178,"context_line":"        elif url.scheme \u003d\u003d \u0027https\u0027:"},{"line_number":179,"context_line":"            self.conn_class \u003d http_client.HTTPSConnection"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_aedbf44c","line":176,"range":{"start_line":176,"start_character":8,"end_line":176,"end_character":32},"updated":"2018-06-08 08:51:47.000000000","message":"...but the storage_url scheme determines the connection class","commit_id":"3e5fc9b4cabafee282c1b6009f70067dd3398d21"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"8698fc7735c6c15ef22c720b94fbd82027028876","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        return json.loads(self.response.read())"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def http_connect(self):"},{"line_number":215,"context_line":"        if self.auth_ssl and self.insecure and sys.version_info \u003e\u003d (2, 7, 9):"},{"line_number":216,"context_line":"            import ssl"},{"line_number":217,"context_line":"            self.connection \u003d self.conn_class("},{"line_number":218,"context_line":"                self.storage_netloc,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_ee8d6c2a","line":215,"range":{"start_line":215,"start_character":11,"end_line":215,"end_character":24},"updated":"2018-06-08 08:51:47.000000000","message":"Is it always the case that an ssl auth returns an https storage_url? Even if so, it would be easier to grok:\n\n  if (self.conn_class \u003d http_client.HTTPSConnection and\n      self.insecure and sys.version_info \u003e\u003d (2, 7, 9)):\n\nrather than pick through the sequence of auth_ssl -\u003e https auth url -\u003e https storage_url -\u003e HTTPSConnection class","commit_id":"3e5fc9b4cabafee282c1b6009f70067dd3398d21"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"a316bb5827954c129c9852cb13be13a3b6c29711","unresolved":false,"context_lines":[{"line_number":212,"context_line":"        return json.loads(self.response.read())"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"    def http_connect(self):"},{"line_number":215,"context_line":"        if issubclass(self.conn_class, http_client.HTTPSConnection) and \\"},{"line_number":216,"context_line":"                self.insecure and sys.version_info \u003e\u003d (2, 7, 9):"},{"line_number":217,"context_line":"            import ssl"},{"line_number":218,"context_line":"            self.connection \u003d self.conn_class("}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_9475ab9a","line":215,"range":{"start_line":215,"start_character":11,"end_line":215,"end_character":21},"updated":"2018-06-12 09:08:43.000000000","message":"even better","commit_id":"fcd7a05e8c8a7cf5fb46f42bf730f2fff7e1a7d8"}]}
