)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8555f01e9eb144334904cc635232bf456610673","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3ae4ebc3_58fcf73a","updated":"2025-05-30 13:14:56.000000000","message":"This looks good. Just two small nits inline","commit_id":"3f0027e8e5242b6bd0dbedb0489d7fac0df33cbd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1ec6cf5fa94f877d98159e5cba47f45cfbe03531","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9bd51989_b0bc9973","updated":"2025-05-30 16:01:19.000000000","message":"Thanks 🙏","commit_id":"9ad18c4967b39cf208c41a139103e2177fd0137f"}],"openstackclient/image/v2/image.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8555f01e9eb144334904cc635232bf456610673","unresolved":true,"context_lines":[{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"import typing as ty"},{"line_number":25,"context_line":"from urllib.parse import urlparse"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from openstack import exceptions as sdk_exceptions"},{"line_number":28,"context_line":"from openstack.image import image_signer"}],"source_content_type":"text/x-python","patch_set":1,"id":"93fb0837_165685bd","line":25,"updated":"2025-05-30 13:14:56.000000000","message":"\u003e Do not import objects, only modules\n\nhttps://docs.openstack.org/hacking/latest/user/hacking.html#imports\n\n\n```suggestion\nimport urllib.parse\n```","commit_id":"3f0027e8e5242b6bd0dbedb0489d7fac0df33cbd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1ec6cf5fa94f877d98159e5cba47f45cfbe03531","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import os"},{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"import typing as ty"},{"line_number":25,"context_line":"from urllib.parse import urlparse"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from openstack import exceptions as sdk_exceptions"},{"line_number":28,"context_line":"from openstack.image import image_signer"}],"source_content_type":"text/x-python","patch_set":1,"id":"268eb8b7_84b4a8cd","line":25,"in_reply_to":"93fb0837_165685bd","updated":"2025-05-30 16:01:19.000000000","message":"Done","commit_id":"3f0027e8e5242b6bd0dbedb0489d7fac0df33cbd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e8555f01e9eb144334904cc635232bf456610673","unresolved":true,"context_lines":[{"line_number":1754,"context_line":"                    \"\u0027--method\u003dweb-download\u0027\""},{"line_number":1755,"context_line":"                )"},{"line_number":1756,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":1757,"context_line":"            _validate_url(parsed_args.uri)"},{"line_number":1758,"context_line":"        else:"},{"line_number":1759,"context_line":"            if parsed_args.uri:"},{"line_number":1760,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":1,"id":"802580f6_42707041","line":1757,"updated":"2025-05-30 13:14:56.000000000","message":"Can you inline this check here. It\u0027s short enough and is only used once.\n\n```suggestion\n            _parsed \u003d urllib.parse.urlparse(uri)\n            if not all({_parsed.scheme, _parsed.netloc}):\n                msg \u003d _(f\u0027{uri!r} is not a valid url\u0027)\n                raise exceptions.CommandError(msg)\n```","commit_id":"3f0027e8e5242b6bd0dbedb0489d7fac0df33cbd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1ec6cf5fa94f877d98159e5cba47f45cfbe03531","unresolved":false,"context_lines":[{"line_number":1754,"context_line":"                    \"\u0027--method\u003dweb-download\u0027\""},{"line_number":1755,"context_line":"                )"},{"line_number":1756,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":1757,"context_line":"            _validate_url(parsed_args.uri)"},{"line_number":1758,"context_line":"        else:"},{"line_number":1759,"context_line":"            if parsed_args.uri:"},{"line_number":1760,"context_line":"                msg \u003d _("}],"source_content_type":"text/x-python","patch_set":1,"id":"850f7268_b3209544","line":1757,"in_reply_to":"802580f6_42707041","updated":"2025-05-30 16:01:19.000000000","message":"Done","commit_id":"3f0027e8e5242b6bd0dbedb0489d7fac0df33cbd"}]}
