{"action":"closed","number":2,"pull_request":{"url":"https://api.github.com/repos/kamsar/Rainbow/pulls/2","id":45579379,"html_url":"https://github.com/kamsar/Rainbow/pull/2","diff_url":"https://github.com/kamsar/Rainbow/pull/2.diff","patch_url":"https://github.com/kamsar/Rainbow/pull/2.patch","issue_url":"https://api.github.com/repos/kamsar/Rainbow/issues/2","number":2,"state":"closed","locked":false,"title":"Supporting logic for TFS integration with Unicorn via Rainbow","user":{"login":"PetersonDave","id":696370,"avatar_url":"https://avatars.githubusercontent.com/u/696370?v=3","gravatar_id":"","url":"https://api.github.com/users/PetersonDave","html_url":"https://github.com/PetersonDave","followers_url":"https://api.github.com/users/PetersonDave/followers","following_url":"https://api.github.com/users/PetersonDave/following{/other_user}","gists_url":"https://api.github.com/users/PetersonDave/gists{/gist_id}","starred_url":"https://api.github.com/users/PetersonDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PetersonDave/subscriptions","organizations_url":"https://api.github.com/users/PetersonDave/orgs","repos_url":"https://api.github.com/users/PetersonDave/repos","events_url":"https://api.github.com/users/PetersonDave/events{/privacy}","received_events_url":"https://api.github.com/users/PetersonDave/received_events","type":"User","site_admin":false},"body":"Introduces two new objects:\r\n\r\n1. ```ISourceControlManager``` - Manages the synchronization process between the file system and source control.\r\n2. ```ISourceControlSync``` - Supporting source control syncing methods\r\n\r\nNew hooks added to reach out to source control before and after write operations and before deletes:\r\n\r\n1. Write pre processing\r\n2. Write post processing\r\n3. Delete pre processing\r\n\r\nThe default syncing object ```FileSyncDefault``` is essentially a pass-through, since there are no file system dependencies when using Git. A new ```Rainbow.Tfs``` library will replace ```FileSyncDefault``` with ```FileSyncTfs``` which calls out to TFS. Replacing the object will happen via config:\r\n\r\nfrom:\r\n```\r\n<sourceControlSync type=\"Rainbow.SourceControl.FileSyncDefault,Rainbow\" singleInstance=\"true\" />\r\n```\r\nto:\r\n```\r\n<sourceControlSync type=\"Rainbow.Tfs.SourceControl.FileSyncTfs,Rainbow.Tfs\" singleInstance=\"true\" Username=\"username\" Password=\"password\" Domain=\"domain\" />\r\n```","created_at":"2015-09-21T17:59:19Z","updated_at":"2015-09-22T20:10:47Z","closed_at":"2015-09-22T20:10:47Z","merged_at":null,"merge_commit_sha":"d383ebbae0199d37d7f025518c74e8d2761d88d1","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/kamsar/Rainbow/pulls/2/commits","review_comments_url":"https://api.github.com/repos/kamsar/Rainbow/pulls/2/comments","review_comment_url":"https://api.github.com/repos/kamsar/Rainbow/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kamsar/Rainbow/issues/2/comments","statuses_url":"https://api.github.com/repos/kamsar/Rainbow/statuses/c23cefcfbed454aaf105253dae8df68f3ed74b70","head":{"label":"PetersonDave:feature/tfs","ref":"feature/tfs","sha":"c23cefcfbed454aaf105253dae8df68f3ed74b70","user":{"login":"PetersonDave","id":696370,"avatar_url":"https://avatars.githubusercontent.com/u/696370?v=3","gravatar_id":"","url":"https://api.github.com/users/PetersonDave","html_url":"https://github.com/PetersonDave","followers_url":"https://api.github.com/users/PetersonDave/followers","following_url":"https://api.github.com/users/PetersonDave/following{/other_user}","gists_url":"https://api.github.com/users/PetersonDave/gists{/gist_id}","starred_url":"https://api.github.com/users/PetersonDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PetersonDave/subscriptions","organizations_url":"https://api.github.com/users/PetersonDave/orgs","repos_url":"https://api.github.com/users/PetersonDave/repos","events_url":"https://api.github.com/users/PetersonDave/events{/privacy}","received_events_url":"https://api.github.com/users/PetersonDave/received_events","type":"User","site_admin":false},"repo":{"id":42328093,"name":"Rainbow","full_name":"PetersonDave/Rainbow","owner":{"login":"PetersonDave","id":696370,"avatar_url":"https://avatars.githubusercontent.com/u/696370?v=3","gravatar_id":"","url":"https://api.github.com/users/PetersonDave","html_url":"https://github.com/PetersonDave","followers_url":"https://api.github.com/users/PetersonDave/followers","following_url":"https://api.github.com/users/PetersonDave/following{/other_user}","gists_url":"https://api.github.com/users/PetersonDave/gists{/gist_id}","starred_url":"https://api.github.com/users/PetersonDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PetersonDave/subscriptions","organizations_url":"https://api.github.com/users/PetersonDave/orgs","repos_url":"https://api.github.com/users/PetersonDave/repos","events_url":"https://api.github.com/users/PetersonDave/events{/privacy}","received_events_url":"https://api.github.com/users/PetersonDave/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/PetersonDave/Rainbow","description":"An advanced serialization and comparison system for Sitecore. Designed for easy merging with YAML-based serialization, and a generic merge/deserialization framework. Works well with Unicorn, or by itself.","fork":true,"url":"https://api.github.com/repos/PetersonDave/Rainbow","forks_url":"https://api.github.com/repos/PetersonDave/Rainbow/forks","keys_url":"https://api.github.com/repos/PetersonDave/Rainbow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PetersonDave/Rainbow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PetersonDave/Rainbow/teams","hooks_url":"https://api.github.com/repos/PetersonDave/Rainbow/hooks","issue_events_url":"https://api.github.com/repos/PetersonDave/Rainbow/issues/events{/number}","events_url":"https://api.github.com/repos/PetersonDave/Rainbow/events","assignees_url":"https://api.github.com/repos/PetersonDave/Rainbow/assignees{/user}","branches_url":"https://api.github.com/repos/PetersonDave/Rainbow/branches{/branch}","tags_url":"https://api.github.com/repos/PetersonDave/Rainbow/tags","blobs_url":"https://api.github.com/repos/PetersonDave/Rainbow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PetersonDave/Rainbow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PetersonDave/Rainbow/git/refs{/sha}","trees_url":"https://api.github.com/repos/PetersonDave/Rainbow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PetersonDave/Rainbow/statuses/{sha}","languages_url":"https://api.github.com/repos/PetersonDave/Rainbow/languages","stargazers_url":"https://api.github.com/repos/PetersonDave/Rainbow/stargazers","contributors_url":"https://api.github.com/repos/PetersonDave/Rainbow/contributors","subscribers_url":"https://api.github.com/repos/PetersonDave/Rainbow/subscribers","subscription_url":"https://api.github.com/repos/PetersonDave/Rainbow/subscription","commits_url":"https://api.github.com/repos/PetersonDave/Rainbow/commits{/sha}","git_commits_url":"https://api.github.com/repos/PetersonDave/Rainbow/git/commits{/sha}","comments_url":"https://api.github.com/repos/PetersonDave/Rainbow/comments{/number}","issue_comment_url":"https://api.github.com/repos/PetersonDave/Rainbow/issues/comments{/number}","contents_url":"https://api.github.com/repos/PetersonDave/Rainbow/contents/{+path}","compare_url":"https://api.github.com/repos/PetersonDave/Rainbow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PetersonDave/Rainbow/merges","archive_url":"https://api.github.com/repos/PetersonDave/Rainbow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PetersonDave/Rainbow/downloads","issues_url":"https://api.github.com/repos/PetersonDave/Rainbow/issues{/number}","pulls_url":"https://api.github.com/repos/PetersonDave/Rainbow/pulls{/number}","milestones_url":"https://api.github.com/repos/PetersonDave/Rainbow/milestones{/number}","notifications_url":"https://api.github.com/repos/PetersonDave/Rainbow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PetersonDave/Rainbow/labels{/name}","releases_url":"https://api.github.com/repos/PetersonDave/Rainbow/releases{/id}","created_at":"2015-09-11T19:27:24Z","updated_at":"2015-09-11T19:27:24Z","pushed_at":"2015-09-22T17:17:37Z","git_url":"git://github.com/PetersonDave/Rainbow.git","ssh_url":"git@github.com:PetersonDave/Rainbow.git","clone_url":"https://github.com/PetersonDave/Rainbow.git","svn_url":"https://github.com/PetersonDave/Rainbow","homepage":"","size":2554,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"kamsar:master","ref":"master","sha":"156695a36f3a54150b148da00c97a08a99607366","user":{"login":"kamsar","id":103677,"avatar_url":"https://avatars.githubusercontent.com/u/103677?v=3","gravatar_id":"","url":"https://api.github.com/users/kamsar","html_url":"https://github.com/kamsar","followers_url":"https://api.github.com/users/kamsar/followers","following_url":"https://api.github.com/users/kamsar/following{/other_user}","gists_url":"https://api.github.com/users/kamsar/gists{/gist_id}","starred_url":"https://api.github.com/users/kamsar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kamsar/subscriptions","organizations_url":"https://api.github.com/users/kamsar/orgs","repos_url":"https://api.github.com/users/kamsar/repos","events_url":"https://api.github.com/users/kamsar/events{/privacy}","received_events_url":"https://api.github.com/users/kamsar/received_events","type":"User","site_admin":false},"repo":{"id":31641283,"name":"Rainbow","full_name":"kamsar/Rainbow","owner":{"login":"kamsar","id":103677,"avatar_url":"https://avatars.githubusercontent.com/u/103677?v=3","gravatar_id":"","url":"https://api.github.com/users/kamsar","html_url":"https://github.com/kamsar","followers_url":"https://api.github.com/users/kamsar/followers","following_url":"https://api.github.com/users/kamsar/following{/other_user}","gists_url":"https://api.github.com/users/kamsar/gists{/gist_id}","starred_url":"https://api.github.com/users/kamsar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kamsar/subscriptions","organizations_url":"https://api.github.com/users/kamsar/orgs","repos_url":"https://api.github.com/users/kamsar/repos","events_url":"https://api.github.com/users/kamsar/events{/privacy}","received_events_url":"https://api.github.com/users/kamsar/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kamsar/Rainbow","description":"An advanced serialization and comparison system for Sitecore. Designed for easy merging with YAML-based serialization, and a generic merge/deserialization framework. Works well with Unicorn, or by itself.","fork":false,"url":"https://api.github.com/repos/kamsar/Rainbow","forks_url":"https://api.github.com/repos/kamsar/Rainbow/forks","keys_url":"https://api.github.com/repos/kamsar/Rainbow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kamsar/Rainbow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kamsar/Rainbow/teams","hooks_url":"https://api.github.com/repos/kamsar/Rainbow/hooks","issue_events_url":"https://api.github.com/repos/kamsar/Rainbow/issues/events{/number}","events_url":"https://api.github.com/repos/kamsar/Rainbow/events","assignees_url":"https://api.github.com/repos/kamsar/Rainbow/assignees{/user}","branches_url":"https://api.github.com/repos/kamsar/Rainbow/branches{/branch}","tags_url":"https://api.github.com/repos/kamsar/Rainbow/tags","blobs_url":"https://api.github.com/repos/kamsar/Rainbow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kamsar/Rainbow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kamsar/Rainbow/git/refs{/sha}","trees_url":"https://api.github.com/repos/kamsar/Rainbow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kamsar/Rainbow/statuses/{sha}","languages_url":"https://api.github.com/repos/kamsar/Rainbow/languages","stargazers_url":"https://api.github.com/repos/kamsar/Rainbow/stargazers","contributors_url":"https://api.github.com/repos/kamsar/Rainbow/contributors","subscribers_url":"https://api.github.com/repos/kamsar/Rainbow/subscribers","subscription_url":"https://api.github.com/repos/kamsar/Rainbow/subscription","commits_url":"https://api.github.com/repos/kamsar/Rainbow/commits{/sha}","git_commits_url":"https://api.github.com/repos/kamsar/Rainbow/git/commits{/sha}","comments_url":"https://api.github.com/repos/kamsar/Rainbow/comments{/number}","issue_comment_url":"https://api.github.com/repos/kamsar/Rainbow/issues/comments{/number}","contents_url":"https://api.github.com/repos/kamsar/Rainbow/contents/{+path}","compare_url":"https://api.github.com/repos/kamsar/Rainbow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kamsar/Rainbow/merges","archive_url":"https://api.github.com/repos/kamsar/Rainbow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kamsar/Rainbow/downloads","issues_url":"https://api.github.com/repos/kamsar/Rainbow/issues{/number}","pulls_url":"https://api.github.com/repos/kamsar/Rainbow/pulls{/number}","milestones_url":"https://api.github.com/repos/kamsar/Rainbow/milestones{/number}","notifications_url":"https://api.github.com/repos/kamsar/Rainbow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kamsar/Rainbow/labels{/name}","releases_url":"https://api.github.com/repos/kamsar/Rainbow/releases{/id}","created_at":"2015-03-04T06:11:01Z","updated_at":"2015-09-06T07:50:11Z","pushed_at":"2015-09-22T17:27:23Z","git_url":"git://github.com/kamsar/Rainbow.git","ssh_url":"git@github.com:kamsar/Rainbow.git","clone_url":"https://github.com/kamsar/Rainbow.git","svn_url":"https://github.com/kamsar/Rainbow","homepage":"","size":2691,"stargazers_count":1,"watchers_count":1,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":1,"forks":2,"open_issues":1,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kamsar/Rainbow/pulls/2"},"html":{"href":"https://github.com/kamsar/Rainbow/pull/2"},"issue":{"href":"https://api.github.com/repos/kamsar/Rainbow/issues/2"},"comments":{"href":"https://api.github.com/repos/kamsar/Rainbow/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/kamsar/Rainbow/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/kamsar/Rainbow/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kamsar/Rainbow/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/kamsar/Rainbow/statuses/c23cefcfbed454aaf105253dae8df68f3ed74b70"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":1,"review_comments":0,"commits":19,"additions":263,"deletions":24,"changed_files":18}}