)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36672,"name":"Shivam Shukla","display_name":"Shivam Shukla","email":"shivam.shukla3@india.nec.com","username":"shivam.shukla3"},"change_message_id":"38318e45ac35343d6329499fafb82f11ce895a92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"08b7dc72_14868805","updated":"2026-09-01 12:30:51.000000000","message":"recheck - for an infra error.","commit_id":"830d6bc3a66a10d6d3543416bc47c7a5fa28a81a"}],"tacker/common/csar_utils.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1fc5f1d58cf6ada87128d7701e7ae0e2bb4f1953","unresolved":false,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def _validate_artifact_path_is_safe(artifact_path, csar_root):"},{"line_number":480,"context_line":"    \"\"\"Reject artifact Source paths that resolve outside the"},{"line_number":481,"context_line":"    package\u0027s own storage directory."},{"line_number":482,"context_line":"    \"\"\""},{"line_number":483,"context_line":"    resolved \u003d os.path.realpath(os.path.join(csar_root, artifact_path))"}],"source_content_type":"text/x-python","patch_set":1,"id":"99c1ed98_1b928c05","line":480,"updated":"2026-08-31 08:40:23.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"afb912b31ee95d73d9eb859930afbd700eb18229"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1fc5f1d58cf6ada87128d7701e7ae0e2bb4f1953","unresolved":false,"context_lines":[{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def _validate_artifact_path_is_safe(artifact_path, csar_root):"},{"line_number":480,"context_line":"    \"\"\"Reject artifact Source paths that resolve outside the"},{"line_number":481,"context_line":"    package\u0027s own storage directory."},{"line_number":482,"context_line":"    \"\"\""},{"line_number":483,"context_line":"    resolved \u003d os.path.realpath(os.path.join(csar_root, artifact_path))"},{"line_number":484,"context_line":"    if os.path.commonpath((csar_root, resolved)) !\u003d csar_root:"}],"source_content_type":"text/x-python","patch_set":1,"id":"32e1c70c_bf642388","line":481,"updated":"2026-08-31 08:40:23.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"afb912b31ee95d73d9eb859930afbd700eb18229"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"1fc5f1d58cf6ada87128d7701e7ae0e2bb4f1953","unresolved":false,"context_lines":[{"line_number":479,"context_line":"def _validate_artifact_path_is_safe(artifact_path, csar_root):"},{"line_number":480,"context_line":"    \"\"\"Reject artifact Source paths that resolve outside the"},{"line_number":481,"context_line":"    package\u0027s own storage directory."},{"line_number":482,"context_line":"    \"\"\""},{"line_number":483,"context_line":"    resolved \u003d os.path.realpath(os.path.join(csar_root, artifact_path))"},{"line_number":484,"context_line":"    if os.path.commonpath((csar_root, resolved)) !\u003d csar_root:"},{"line_number":485,"context_line":"        invalid_artifact_err_msg \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"46400771_62f93f4b","line":482,"updated":"2026-08-31 08:40:23.000000000","message":"pep8: H405: multi line docstring summary not separated with an empty line","commit_id":"afb912b31ee95d73d9eb859930afbd700eb18229"}]}
