{"action":"created","comment":{"url":"https://api.github.com/repos/SUSE/machinery/pulls/comments/32232164","id":32232164,"diff_hunk":"@@ -267,20 +267,26 @@ def apply_changed_files(scope)\n \n     @system_description[scope].files.each do |file|\n       if file.deleted?\n-        @chroot_scripts << \"rm -rf '#{file.name}'\"\n+        @chroot_scripts << \"rm -rf '#{Machinery.escape_single_quotes(file.name)}'\"\n       elsif file.directory?\n-        @chroot_scripts << \"chmod #{file.mode} '#{File.join(\"/mnt\", file.name)}'\"\n-        @chroot_scripts << \"chown #{file.user}:#{file.group} '#{File.join(\"/mnt\", file.name)}'\"\n+        @chroot_scripts << <<EOF.strip\n+chmod #{file.mode} '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}'\n+chown #{file.user}:#{file.group} '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}'\n+EOF\n       elsif file.file?\n         url = \"`cat /tmp/description_url`/#{URI.escape(File.join(scope, file.name))}\"\n-        @chroot_scripts << \"mkdir -p '#{File.join(\"/mnt\", File.dirname(file.name))}'\"\n-        @chroot_scripts << \"curl -o '#{File.join(\"/mnt\", file.name)}' \\\"#{url}\\\"\"\n-        @chroot_scripts << \"chmod #{file.mode} '#{File.join(\"/mnt\", file.name)}'\"\n-        @chroot_scripts << \"chown #{file.user}:#{file.group} '#{File.join(\"/mnt\", file.name)}'\"\n+        @chroot_scripts << <<EOF.strip\n+mkdir -p '#{Machinery.escape_single_quotes(File.join('/mnt', File.dirname(file.name)))}'\n+curl -o '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}' \\\"#{url}\\\"\n+chmod #{file.mode} '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}'\n+chown #{file.user}:#{file.group} '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}'\n+EOF\n       elsif file.link?\n-        @chroot_scripts << \"rm -rf '#{File.join(\"/mnt\", file.name)}'\"\n-        @chroot_scripts << \"ln -s '#{file.target}' '#{File.join(\"/mnt\", file.name)}'\"\n-        @chroot_scripts << \"chown --no-dereference #{file.user}:#{file.group} '#{File.join(\"/mnt\", file.name)}'\"\n+        @chroot_scripts << <<EOF.strip\n+rm -rf '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}'\n+ln -s '#{Machinery.escape_single_quotes(file.target)}' '#{Machinery.escape_single_quotes(File.join('/mnt', file.name))}'","path":"lib/autoyast.rb","position":31,"original_position":31,"commit_id":"e0ab95956c1fc8a6f2b61b882a3970bb4926fd18","original_commit_id":"40ae002e5152b6ea8d56cd010ba7432fd8f05ebd","user":{"login":"vwallfahrer","id":6593189,"avatar_url":"https://avatars.githubusercontent.com/u/6593189?v=3","gravatar_id":"","url":"https://api.github.com/users/vwallfahrer","html_url":"https://github.com/vwallfahrer","followers_url":"https://api.github.com/users/vwallfahrer/followers","following_url":"https://api.github.com/users/vwallfahrer/following{/other_user}","gists_url":"https://api.github.com/users/vwallfahrer/gists{/gist_id}","starred_url":"https://api.github.com/users/vwallfahrer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vwallfahrer/subscriptions","organizations_url":"https://api.github.com/users/vwallfahrer/orgs","repos_url":"https://api.github.com/users/vwallfahrer/repos","events_url":"https://api.github.com/users/vwallfahrer/events{/privacy}","received_events_url":"https://api.github.com/users/vwallfahrer/received_events","type":"User","site_admin":false},"body":"Line is inside an EOF. Andre told me to let it as it is to have a better overview.","created_at":"2015-06-11T15:21:41Z","updated_at":"2015-06-11T15:21:41Z","html_url":"https://github.com/SUSE/machinery/pull/969#discussion_r32232164","pull_request_url":"https://api.github.com/repos/SUSE/machinery/pulls/969","_links":{"self":{"href":"https://api.github.com/repos/SUSE/machinery/pulls/comments/32232164"},"html":{"href":"https://github.com/SUSE/machinery/pull/969#discussion_r32232164"},"pull_request":{"href":"https://api.github.com/repos/SUSE/machinery/pulls/969"}}},"pull_request":{"url":"https://api.github.com/repos/SUSE/machinery/pulls/969","id":37469625,"html_url":"https://github.com/SUSE/machinery/pull/969","diff_url":"https://github.com/SUSE/machinery/pull/969.diff","patch_url":"https://github.com/SUSE/machinery/pull/969.patch","issue_url":"https://api.github.com/repos/SUSE/machinery/issues/969","number":969,"state":"open","locked":false,"title":"Autoyast export files can contain quotes","user":{"login":"vwallfahrer","id":6593189,"avatar_url":"https://avatars.githubusercontent.com/u/6593189?v=3","gravatar_id":"","url":"https://api.github.com/users/vwallfahrer","html_url":"https://github.com/vwallfahrer","followers_url":"https://api.github.com/users/vwallfahrer/followers","following_url":"https://api.github.com/users/vwallfahrer/following{/other_user}","gists_url":"https://api.github.com/users/vwallfahrer/gists{/gist_id}","starred_url":"https://api.github.com/users/vwallfahrer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vwallfahrer/subscriptions","organizations_url":"https://api.github.com/users/vwallfahrer/orgs","repos_url":"https://api.github.com/users/vwallfahrer/repos","events_url":"https://api.github.com/users/vwallfahrer/events{/privacy}","received_events_url":"https://api.github.com/users/vwallfahrer/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-06-11T14:32:55Z","updated_at":"2015-06-11T15:21:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0c873cac94c636c5a1ef71c057d380cb286e29c8","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/SUSE/machinery/pulls/969/commits","review_comments_url":"https://api.github.com/repos/SUSE/machinery/pulls/969/comments","review_comment_url":"https://api.github.com/repos/SUSE/machinery/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SUSE/machinery/issues/969/comments","statuses_url":"https://api.github.com/repos/SUSE/machinery/statuses/e0ab95956c1fc8a6f2b61b882a3970bb4926fd18","head":{"label":"SUSE:files_quotes_autoyast","ref":"files_quotes_autoyast","sha":"e0ab95956c1fc8a6f2b61b882a3970bb4926fd18","user":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars.githubusercontent.com/u/1067733?v=3","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"repo":{"id":21424418,"name":"machinery","full_name":"SUSE/machinery","owner":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars.githubusercontent.com/u/1067733?v=3","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SUSE/machinery","description":"A systems management toolkit for Linux","fork":false,"url":"https://api.github.com/repos/SUSE/machinery","forks_url":"https://api.github.com/repos/SUSE/machinery/forks","keys_url":"https://api.github.com/repos/SUSE/machinery/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SUSE/machinery/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SUSE/machinery/teams","hooks_url":"https://api.github.com/repos/SUSE/machinery/hooks","issue_events_url":"https://api.github.com/repos/SUSE/machinery/issues/events{/number}","events_url":"https://api.github.com/repos/SUSE/machinery/events","assignees_url":"https://api.github.com/repos/SUSE/machinery/assignees{/user}","branches_url":"https://api.github.com/repos/SUSE/machinery/branches{/branch}","tags_url":"https://api.github.com/repos/SUSE/machinery/tags","blobs_url":"https://api.github.com/repos/SUSE/machinery/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SUSE/machinery/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SUSE/machinery/git/refs{/sha}","trees_url":"https://api.github.com/repos/SUSE/machinery/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SUSE/machinery/statuses/{sha}","languages_url":"https://api.github.com/repos/SUSE/machinery/languages","stargazers_url":"https://api.github.com/repos/SUSE/machinery/stargazers","contributors_url":"https://api.github.com/repos/SUSE/machinery/contributors","subscribers_url":"https://api.github.com/repos/SUSE/machinery/subscribers","subscription_url":"https://api.github.com/repos/SUSE/machinery/subscription","commits_url":"https://api.github.com/repos/SUSE/machinery/commits{/sha}","git_commits_url":"https://api.github.com/repos/SUSE/machinery/git/commits{/sha}","comments_url":"https://api.github.com/repos/SUSE/machinery/comments{/number}","issue_comment_url":"https://api.github.com/repos/SUSE/machinery/issues/comments{/number}","contents_url":"https://api.github.com/repos/SUSE/machinery/contents/{+path}","compare_url":"https://api.github.com/repos/SUSE/machinery/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SUSE/machinery/merges","archive_url":"https://api.github.com/repos/SUSE/machinery/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SUSE/machinery/downloads","issues_url":"https://api.github.com/repos/SUSE/machinery/issues{/number}","pulls_url":"https://api.github.com/repos/SUSE/machinery/pulls{/number}","milestones_url":"https://api.github.com/repos/SUSE/machinery/milestones{/number}","notifications_url":"https://api.github.com/repos/SUSE/machinery/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SUSE/machinery/labels{/name}","releases_url":"https://api.github.com/repos/SUSE/machinery/releases{/id}","created_at":"2014-07-02T13:07:04Z","updated_at":"2015-05-17T23:39:50Z","pushed_at":"2015-06-11T15:17:55Z","git_url":"git://github.com/SUSE/machinery.git","ssh_url":"git@github.com:SUSE/machinery.git","clone_url":"https://github.com/SUSE/machinery.git","svn_url":"https://github.com/SUSE/machinery","homepage":"machinery-project.org","size":14962,"stargazers_count":52,"watchers_count":52,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":25,"forks":8,"open_issues":25,"watchers":52,"default_branch":"master"}},"base":{"label":"SUSE:uniform_file_extraction2","ref":"uniform_file_extraction2","sha":"1bf60282f1825a5bc907e2c1714ef68dcff7edfa","user":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars.githubusercontent.com/u/1067733?v=3","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"repo":{"id":21424418,"name":"machinery","full_name":"SUSE/machinery","owner":{"login":"SUSE","id":1067733,"avatar_url":"https://avatars.githubusercontent.com/u/1067733?v=3","gravatar_id":"","url":"https://api.github.com/users/SUSE","html_url":"https://github.com/SUSE","followers_url":"https://api.github.com/users/SUSE/followers","following_url":"https://api.github.com/users/SUSE/following{/other_user}","gists_url":"https://api.github.com/users/SUSE/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE/subscriptions","organizations_url":"https://api.github.com/users/SUSE/orgs","repos_url":"https://api.github.com/users/SUSE/repos","events_url":"https://api.github.com/users/SUSE/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SUSE/machinery","description":"A systems management toolkit for Linux","fork":false,"url":"https://api.github.com/repos/SUSE/machinery","forks_url":"https://api.github.com/repos/SUSE/machinery/forks","keys_url":"https://api.github.com/repos/SUSE/machinery/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SUSE/machinery/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SUSE/machinery/teams","hooks_url":"https://api.github.com/repos/SUSE/machinery/hooks","issue_events_url":"https://api.github.com/repos/SUSE/machinery/issues/events{/number}","events_url":"https://api.github.com/repos/SUSE/machinery/events","assignees_url":"https://api.github.com/repos/SUSE/machinery/assignees{/user}","branches_url":"https://api.github.com/repos/SUSE/machinery/branches{/branch}","tags_url":"https://api.github.com/repos/SUSE/machinery/tags","blobs_url":"https://api.github.com/repos/SUSE/machinery/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SUSE/machinery/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SUSE/machinery/git/refs{/sha}","trees_url":"https://api.github.com/repos/SUSE/machinery/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SUSE/machinery/statuses/{sha}","languages_url":"https://api.github.com/repos/SUSE/machinery/languages","stargazers_url":"https://api.github.com/repos/SUSE/machinery/stargazers","contributors_url":"https://api.github.com/repos/SUSE/machinery/contributors","subscribers_url":"https://api.github.com/repos/SUSE/machinery/subscribers","subscription_url":"https://api.github.com/repos/SUSE/machinery/subscription","commits_url":"https://api.github.com/repos/SUSE/machinery/commits{/sha}","git_commits_url":"https://api.github.com/repos/SUSE/machinery/git/commits{/sha}","comments_url":"https://api.github.com/repos/SUSE/machinery/comments{/number}","issue_comment_url":"https://api.github.com/repos/SUSE/machinery/issues/comments{/number}","contents_url":"https://api.github.com/repos/SUSE/machinery/contents/{+path}","compare_url":"https://api.github.com/repos/SUSE/machinery/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SUSE/machinery/merges","archive_url":"https://api.github.com/repos/SUSE/machinery/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SUSE/machinery/downloads","issues_url":"https://api.github.com/repos/SUSE/machinery/issues{/number}","pulls_url":"https://api.github.com/repos/SUSE/machinery/pulls{/number}","milestones_url":"https://api.github.com/repos/SUSE/machinery/milestones{/number}","notifications_url":"https://api.github.com/repos/SUSE/machinery/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SUSE/machinery/labels{/name}","releases_url":"https://api.github.com/repos/SUSE/machinery/releases{/id}","created_at":"2014-07-02T13:07:04Z","updated_at":"2015-05-17T23:39:50Z","pushed_at":"2015-06-11T15:17:55Z","git_url":"git://github.com/SUSE/machinery.git","ssh_url":"git@github.com:SUSE/machinery.git","clone_url":"https://github.com/SUSE/machinery.git","svn_url":"https://github.com/SUSE/machinery","homepage":"machinery-project.org","size":14962,"stargazers_count":52,"watchers_count":52,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":8,"mirror_url":null,"open_issues_count":25,"forks":8,"open_issues":25,"watchers":52,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SUSE/machinery/pulls/969"},"html":{"href":"https://github.com/SUSE/machinery/pull/969"},"issue":{"href":"https://api.github.com/repos/SUSE/machinery/issues/969"},"comments":{"href":"https://api.github.com/repos/SUSE/machinery/issues/969/comments"},"review_comments":{"href":"https://api.github.com/repos/SUSE/machinery/pulls/969/comments"},"review_comment":{"href":"https://api.github.com/repos/SUSE/machinery/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SUSE/machinery/pulls/969/commits"},"statuses":{"href":"https://api.github.com/repos/SUSE/machinery/statuses/e0ab95956c1fc8a6f2b61b882a3970bb4926fd18"}}}}