{"action":"created","issue":{"url":"https://api.github.com/repos/puppetlabs/r10k/issues/308","labels_url":"https://api.github.com/repos/puppetlabs/r10k/issues/308/labels{/name}","comments_url":"https://api.github.com/repos/puppetlabs/r10k/issues/308/comments","events_url":"https://api.github.com/repos/puppetlabs/r10k/issues/308/events","html_url":"https://github.com/puppetlabs/r10k/pull/308","id":57997012,"number":308,"title":"REVIEW: Refactor Git implementation, extract platform specific code","user":{"login":"adrienthebo","id":172194,"avatar_url":"https://avatars.githubusercontent.com/u/172194?v=3","gravatar_id":"","url":"https://api.github.com/users/adrienthebo","html_url":"https://github.com/adrienthebo","followers_url":"https://api.github.com/users/adrienthebo/followers","following_url":"https://api.github.com/users/adrienthebo/following{/other_user}","gists_url":"https://api.github.com/users/adrienthebo/gists{/gist_id}","starred_url":"https://api.github.com/users/adrienthebo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adrienthebo/subscriptions","organizations_url":"https://api.github.com/users/adrienthebo/orgs","repos_url":"https://api.github.com/users/adrienthebo/repos","events_url":"https://api.github.com/users/adrienthebo/events{/privacy}","received_events_url":"https://api.github.com/users/adrienthebo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-02-17T23:06:36Z","updated_at":"2015-02-20T18:50:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/puppetlabs/r10k/pulls/308","html_url":"https://github.com/puppetlabs/r10k/pull/308","diff_url":"https://github.com/puppetlabs/r10k/pull/308.diff","patch_url":"https://github.com/puppetlabs/r10k/pull/308.patch"},"body":"This pull request refactors the code interacting with Git. It pulls out the code that directly interacts with the Git binary (by shelling out, running commands, parsing the output, etc) into a separate set of classes.\r\n\r\nThese classes directly interact with Git:\r\n\r\n  * BareRepository\r\n  * WorkingRepository\r\n  * ThinRepository (a WorkingRepository that uses Git alternates to perform shallow clones)\r\n\r\nThese classes wrap interactions with Git but aren't bound to the Git implementation:\r\n\r\n  * Cache (wraps a BareRepository and handles updating that repository when necessary)\r\n  * StatefulRepository (wraps a ThinRepository and acts to synchronize a Git repository with some desired state for that repository)\r\n\r\nThe goal of this refactor is to break up the low level logic that interacts with the Git binary into a distinct layer that can be swapped out, and adds a logic layer that actually provides the application logic to run everything."},"comment":{"url":"https://api.github.com/repos/puppetlabs/r10k/issues/comments/75296773","html_url":"https://github.com/puppetlabs/r10k/pull/308#issuecomment-75296773","issue_url":"https://api.github.com/repos/puppetlabs/r10k/issues/308","id":75296773,"user":{"login":"adrienthebo","id":172194,"avatar_url":"https://avatars.githubusercontent.com/u/172194?v=3","gravatar_id":"","url":"https://api.github.com/users/adrienthebo","html_url":"https://github.com/adrienthebo","followers_url":"https://api.github.com/users/adrienthebo/followers","following_url":"https://api.github.com/users/adrienthebo/following{/other_user}","gists_url":"https://api.github.com/users/adrienthebo/gists{/gist_id}","starred_url":"https://api.github.com/users/adrienthebo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adrienthebo/subscriptions","organizations_url":"https://api.github.com/users/adrienthebo/orgs","repos_url":"https://api.github.com/users/adrienthebo/repos","events_url":"https://api.github.com/users/adrienthebo/events{/privacy}","received_events_url":"https://api.github.com/users/adrienthebo/received_events","type":"User","site_admin":false},"created_at":"2015-02-20T18:50:13Z","updated_at":"2015-02-20T18:50:13Z","body":"@andersonmills I added https://github.com/puppetlabs/r10k/commit/3a87e22b72d77178faabb09d62eae77aa5e4cca0 to dereference any symlinks in the fixture path, could you see if that makes the specs pass on your system?"}}