{"action":"created","issue":{"url":"https://api.github.com/repos/cfengine/core/issues/2465","labels_url":"https://api.github.com/repos/cfengine/core/issues/2465/labels{/name}","comments_url":"https://api.github.com/repos/cfengine/core/issues/2465/comments","events_url":"https://api.github.com/repos/cfengine/core/issues/2465/events","html_url":"https://github.com/cfengine/core/pull/2465","id":125337616,"number":2465,"title":"Masterfiles stage rewrite","user":{"login":"mikeweilgart","id":15166719,"avatar_url":"https://avatars.githubusercontent.com/u/15166719?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeweilgart","html_url":"https://github.com/mikeweilgart","followers_url":"https://api.github.com/users/mikeweilgart/followers","following_url":"https://api.github.com/users/mikeweilgart/following{/other_user}","gists_url":"https://api.github.com/users/mikeweilgart/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeweilgart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeweilgart/subscriptions","organizations_url":"https://api.github.com/users/mikeweilgart/orgs","repos_url":"https://api.github.com/users/mikeweilgart/repos","events_url":"https://api.github.com/users/mikeweilgart/events{/privacy}","received_events_url":"https://api.github.com/users/mikeweilgart/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nickanderson","id":202896,"avatar_url":"https://avatars.githubusercontent.com/u/202896?v=3","gravatar_id":"","url":"https://api.github.com/users/nickanderson","html_url":"https://github.com/nickanderson","followers_url":"https://api.github.com/users/nickanderson/followers","following_url":"https://api.github.com/users/nickanderson/following{/other_user}","gists_url":"https://api.github.com/users/nickanderson/gists{/gist_id}","starred_url":"https://api.github.com/users/nickanderson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nickanderson/subscriptions","organizations_url":"https://api.github.com/users/nickanderson/orgs","repos_url":"https://api.github.com/users/nickanderson/repos","events_url":"https://api.github.com/users/nickanderson/events{/privacy}","received_events_url":"https://api.github.com/users/nickanderson/received_events","type":"User","site_admin":false},"milestone":null,"comments":22,"created_at":"2016-01-07T07:08:45Z","updated_at":"2016-01-22T20:50:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/cfengine/core/pulls/2465","html_url":"https://github.com/cfengine/core/pull/2465","diff_url":"https://github.com/cfengine/core/pull/2465.diff","patch_url":"https://github.com/cfengine/core/pull/2465.patch"},"body":"`masterfiles-stage.sh` and its supporting files `common.sh` and `options.sh` have been completely refactored and largely rewritten.  Many potential bugs and edge cases have been handled, including removal of insecure use of `eval` in option parsing.\r\n\r\nThe script is now 100% a drop-in replacement for the version of the code that ships with CFEngine.\r\n\r\nThis overhaul was actually done to allow incorporating the `GIT_POLICY_CHANNELS` vcs_type, and this has been done.\r\n\r\nSome major functional changes should be noted:\r\n\r\n`GIT_TAG_OR_COMMIT` and `GIT` vcs_types now use a mirrored git repository rather than a normal git clone, thus avoiding many edge cases related to git repos getting out of sync.  These two `VCS_TYPE`s are now in fact identical except for variable names (see the main case switch in `masterfiles-stage.sh` to see how the difference is implemented).\r\n\r\nThe rollout method for policy has been changed from `rsync` to `mv` as an atomic operation for the git-based `VCS_TYPE`s.  (The rollout method for the `svn_branch` function hasn't been changed.)"},"comment":{"url":"https://api.github.com/repos/cfengine/core/issues/comments/174042537","html_url":"https://github.com/cfengine/core/pull/2465#issuecomment-174042537","issue_url":"https://api.github.com/repos/cfengine/core/issues/2465","id":174042537,"user":{"login":"mikeweilgart","id":15166719,"avatar_url":"https://avatars.githubusercontent.com/u/15166719?v=3","gravatar_id":"","url":"https://api.github.com/users/mikeweilgart","html_url":"https://github.com/mikeweilgart","followers_url":"https://api.github.com/users/mikeweilgart/followers","following_url":"https://api.github.com/users/mikeweilgart/following{/other_user}","gists_url":"https://api.github.com/users/mikeweilgart/gists{/gist_id}","starred_url":"https://api.github.com/users/mikeweilgart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikeweilgart/subscriptions","organizations_url":"https://api.github.com/users/mikeweilgart/orgs","repos_url":"https://api.github.com/users/mikeweilgart/repos","events_url":"https://api.github.com/users/mikeweilgart/events{/privacy}","received_events_url":"https://api.github.com/users/mikeweilgart/received_events","type":"User","site_admin":false},"created_at":"2016-01-22T20:50:18Z","updated_at":"2016-01-22T20:50:18Z","body":"Right now my code never ever skips deployment.  It only will skip triggering an update on hosts.  But yes, if we were logging to syslog, that would be excessive logging."}}