{"action":"created","comment":{"url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/comments/39857901","id":39857901,"diff_hunk":"@@ -82,18 +69,129 @@ public void GetCustomizationWithSpecificRegisteredTypeReturnsCorrectResult()\n         }\r\n \r\n         [Fact]\r\n-        public void GetCustomizationWithIncompatibleRegisteredTypeThrowsArgumentException()\r\n+        public void GetCustomizationWithIncompatibleSpecificTypeThrowsArgumentException()\r\n         {\r\n             // Fixture setup\r\n             var registeredType = typeof(string);\r\n+#pragma warning disable 0618\r\n             var sut = new FrozenAttribute { As = registeredType };\r\n-            var parameter = typeof(TypeWithConcreteParameterMethod)\r\n-                .GetMethod(\"DoSomething\", new[] { typeof(ConcreteType) })\r\n-                .GetParameters()\r\n-                .Single();\r\n+#pragma warning restore 0618\r\n+            var parameter = AParameter<ConcreteType>();\r\n             // Exercise system and verify outcome\r\n             Assert.Throws<ArgumentException>(() => sut.GetCustomization(parameter));\r\n             // Teardown\r\n         }\r\n+\r\n+        [Fact]\r\n+        public void GetCustomizationShouldMatchByExactParameterType()\r\n+        {\r\n+            // Fixture setup\r\n+            var parameter = AParameter<object>();\r\n+            var sut = new FrozenAttribute();\r\n+            // Exercise system\r\n+            var customization = sut.GetCustomization(parameter);\r\n+            // Verify outcome\r\n+            var freezer = Assert.IsAssignableFrom<FreezeOnMatchCustomization>(customization);\r\n+            var matcher = Assert.IsType<OrRequestSpecification>(freezer.Matcher);\r\n+            var exactTypeMatcher = matcher.Specifications.OfType<ExactTypeSpecification>().SingleOrDefault();\r\n+            Assert.NotNull(exactTypeMatcher);\r\n+            Assert.Equal(parameter.ParameterType, exactTypeMatcher.TargetType);\r\n+            // Teardown\r\n+        }\r\n+\r\n+        [Fact]\r\n+        public void GetCustomizationShouldMatchBySeedRequestForParameterType()\r\n+        {\r\n+            // Fixture setup\r\n+            var parameter = AParameter<object>();\r\n+            var sut = new FrozenAttribute();\r\n+            // Exercise system\r\n+            var customization = sut.GetCustomization(parameter);\r\n+            // Verify outcome\r\n+            var freezer = Assert.IsAssignableFrom<FreezeOnMatchCustomization>(customization);\r\n+            var matcher = Assert.IsType<OrRequestSpecification>(freezer.Matcher);\r\n+            var seedRequestMatcher = matcher.Specifications.OfType<SeedRequestSpecification>().SingleOrDefault();\r\n+            Assert.NotNull(seedRequestMatcher);\r\n+            Assert.Equal(parameter.ParameterType, seedRequestMatcher.TargetType);\r\n+            // Teardown\r\n+        }\r\n+\r\n+        [Fact]\r\n+        public void GetCustomizationWithMatchingByDirectBaseTypeShouldMatchByBaseType()\r\n+        {\r\n+            // Fixture setup\r\n+            var sut = new FrozenAttribute(Matching.DirectBaseType);\r\n+            // Exercise system\r\n+            var customization = sut.GetCustomization(AParameter<object>());\r\n+            // Verify outcome\r\n+            var freezer = Assert.IsAssignableFrom<FreezeOnMatchCustomization>(customization);\r\n+            var matcher = Assert.IsType<OrRequestSpecification>(freezer.Matcher);\r\n+            Assert.NotEmpty(matcher.Specifications.OfType<DirectBaseTypeSpecification>());\r\n+            // Teardown\r\n+        }\r\n+\r\n+        [Fact]\r\n+        public void GetCustomizationWithMatchingByImplementedInterfacesShouldMatchByImplementedInterfaces()\r\n+        {\r\n+            // Fixture setup\r\n+            var sut = new FrozenAttribute(Matching.ImplementedInterfaces);\r\n+            // Exercise system\r\n+            var customization = sut.GetCustomization(AParameter<object>());\r\n+            // Verify outcome\r\n+            var freezer = Assert.IsAssignableFrom<FreezeOnMatchCustomization>(customization);\r\n+            var matcher = Assert.IsType<OrRequestSpecification>(freezer.Matcher);\r\n+            Assert.NotEmpty(matcher.Specifications.OfType<ImplementedInterfaceSpecification>());\r\n+            // Teardown\r\n+        }\r\n+\r\n+        [Fact]\r\n+        public void GetCustomizationWithMatchingByParameterNameShouldMatchByParameter()\r\n+        {\r\n+            // Fixture setup\r\n+            var sut = new FrozenAttribute(Matching.ParameterName, \"parameter\");\r\n+            // Exercise system\r\n+            var customization = sut.GetCustomization(AParameter<object>());\r\n+            // Verify outcome\r\n+            var freezer = Assert.IsAssignableFrom<FreezeOnMatchCustomization>(customization);\r\n+            var matcher = Assert.IsType<OrRequestSpecification>(freezer.Matcher);\r\n+            Assert.NotEmpty(matcher.Specifications.OfType<ParameterSpecification>());\r\n+            // Teardown\r\n+        }\r\n+\r\n+        [Fact]\r\n+        public void GetCustomizationWithMatchingByPropertyNameShouldMatchByProperty()\r\n+        {\r\n+            // Fixture setup\r\n+            var sut = new FrozenAttribute(Matching.PropertyName, \"Property\");\r\n+            // Exercise system\r\n+            var customization = sut.GetCustomization(AParameter<object>());\r\n+            // Verify outcome\r\n+            var freezer = Assert.IsAssignableFrom<FreezeOnMatchCustomization>(customization);\r\n+            var matcher = Assert.IsType<OrRequestSpecification>(freezer.Matcher);\r\n+            Assert.NotEmpty(matcher.Specifications.OfType<PropertySpecification>());\r","path":"Src/AutoFixture.xUnit.net.UnitTest/FrozenAttributeTest.cs","position":191,"original_position":191,"commit_id":"1b5b0cc665dcb5bf652fe9d42c3239ceef2024ed","original_commit_id":"1216dd60f4a24c7ba2810994b9b38b6e89008fbe","user":{"login":"ecampidoglio","id":877348,"avatar_url":"https://avatars.githubusercontent.com/u/877348?v=3","gravatar_id":"","url":"https://api.github.com/users/ecampidoglio","html_url":"https://github.com/ecampidoglio","followers_url":"https://api.github.com/users/ecampidoglio/followers","following_url":"https://api.github.com/users/ecampidoglio/following{/other_user}","gists_url":"https://api.github.com/users/ecampidoglio/gists{/gist_id}","starred_url":"https://api.github.com/users/ecampidoglio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ecampidoglio/subscriptions","organizations_url":"https://api.github.com/users/ecampidoglio/orgs","repos_url":"https://api.github.com/users/ecampidoglio/repos","events_url":"https://api.github.com/users/ecampidoglio/events{/privacy}","received_events_url":"https://api.github.com/users/ecampidoglio/received_events","type":"User","site_admin":false},"body":"The `TargetType` and `TargetName` properties in `PropertySpecification` were deprecated in 088862d so we only look at the type.","created_at":"2015-09-18T14:07:15Z","updated_at":"2015-09-18T14:07:15Z","html_url":"https://github.com/AutoFixture/AutoFixture/pull/318#discussion_r39857901","pull_request_url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318","_links":{"self":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/comments/39857901"},"html":{"href":"https://github.com/AutoFixture/AutoFixture/pull/318#discussion_r39857901"},"pull_request":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318"}}},"pull_request":{"url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318","id":22816755,"html_url":"https://github.com/AutoFixture/AutoFixture/pull/318","diff_url":"https://github.com/AutoFixture/AutoFixture/pull/318.diff","patch_url":"https://github.com/AutoFixture/AutoFixture/pull/318.patch","issue_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/318","number":318,"state":"open","locked":false,"title":"Freeze on match data attribute","user":{"login":"ecampidoglio","id":877348,"avatar_url":"https://avatars.githubusercontent.com/u/877348?v=3","gravatar_id":"","url":"https://api.github.com/users/ecampidoglio","html_url":"https://github.com/ecampidoglio","followers_url":"https://api.github.com/users/ecampidoglio/followers","following_url":"https://api.github.com/users/ecampidoglio/following{/other_user}","gists_url":"https://api.github.com/users/ecampidoglio/gists{/gist_id}","starred_url":"https://api.github.com/users/ecampidoglio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ecampidoglio/subscriptions","organizations_url":"https://api.github.com/users/ecampidoglio/orgs","repos_url":"https://api.github.com/users/ecampidoglio/repos","events_url":"https://api.github.com/users/ecampidoglio/events{/privacy}","received_events_url":"https://api.github.com/users/ecampidoglio/received_events","type":"User","site_admin":false},"body":"This `CustomizeAttribute` leverages the `FreezeOnMatchCustomization` introduced in #317 by opening up its behavior to xUnit parameterized tests.\r\n\r\n### Usage\r\n\r\nThe `FreezeAttribute` applies to the same scenarios as the current `FrozenAttribute`. Here's an example:\r\n\r\n```csharp\r\n[Theory, AutoData]\r\npublic void FreezeParameterForMatchingProperties(\r\n    [Freeze(By = Matching.PropertyName, TargetName = \"Property\")]string p1,\r\n    PropertyHolder<string> p2)\r\n{\r\n    Assert.Same(p1, p2.Property);\r\n}\r\n```\r\n\r\nFollowing the same convention as the `FreezeOnMatchCustomization`, if no matching criteria are specified the attribute will mimic the behavior of the current `FrozenAttribute` matching only by _exact type_. In other words the following test:\r\n\r\n```csharp\r\n[Theory, AutoData]\r\npublic void FreezeParameterByExactType(\r\n    [Freeze]string p1,\r\n    string p2)\r\n{\r\n    Assert.Same(p1, p2);\r\n}\r\n```\r\n\r\nis the same as:\r\n\r\n```csharp\r\n[Theory, AutoData]\r\npublic void FreezeParameterByExactType(\r\n    [Freeze(By = Matching.ExactType)]string p1,\r\n    string p2)\r\n{\r\n    Assert.Same(p1, p2);\r\n}\r\n```\r\n\r\nThe existing `As` functionality of the `FrozenAttribute` is also superseded by using the `Matching.ImplementedInterfaces` criteria.\r\n\r\nFor example, given `IFoo` and `Bar` where `Bar` implements `IFoo`, the following test:\r\n\r\n```csharp\r\n[Theory, AutoData]\r\npublic void FreezeParameterByExactType(\r\n    [Frozen(As = typeof(IFoo))]Bar p1,\r\n    IFoo p2)\r\n{\r\n    Assert.Same(p1, p2);\r\n}\r\n```\r\n\r\ncan now be expressed as:\r\n\r\n```csharp\r\n[Theory, AutoData]\r\npublic void FreezeParameterByExactType(\r\n    [Freeze(By = Matching.ImplementedInterfaces)]Bar p1,\r\n    IFoo p2)\r\n{\r\n    Assert.Same(p1, p2);\r\n}\r\n```\r\n\r\nwhich will also match _any other interface_ implemented by `Bar`.\r\n\r\n### Follow-ups\r\n\r\nThe are a few things I deliberately left out until after I gather your feedback:\r\n\r\n- Since the `FreezeAttribute` effectively supersedes the existing `FrozenAttribute`, I propose we obsolete it and keep the \"_Freeze_\" prefix for consistency with the `FreezeCustomization`.\r\n- I'll add the XML documentation once the feature is finalized.\r\n\r\nI look forward to your comments.","created_at":"2014-10-15T21:29:09Z","updated_at":"2015-09-18T14:07:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e2e6a2ab4c0557ab9e41c5bd43c6b0edf6fcf842","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318/commits","review_comments_url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318/comments","review_comment_url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/318/comments","statuses_url":"https://api.github.com/repos/AutoFixture/AutoFixture/statuses/1b5b0cc665dcb5bf652fe9d42c3239ceef2024ed","head":{"label":"AutoFixture:freeze-attribute","ref":"freeze-attribute","sha":"1b5b0cc665dcb5bf652fe9d42c3239ceef2024ed","user":{"login":"AutoFixture","id":1786815,"avatar_url":"https://avatars.githubusercontent.com/u/1786815?v=3","gravatar_id":"","url":"https://api.github.com/users/AutoFixture","html_url":"https://github.com/AutoFixture","followers_url":"https://api.github.com/users/AutoFixture/followers","following_url":"https://api.github.com/users/AutoFixture/following{/other_user}","gists_url":"https://api.github.com/users/AutoFixture/gists{/gist_id}","starred_url":"https://api.github.com/users/AutoFixture/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AutoFixture/subscriptions","organizations_url":"https://api.github.com/users/AutoFixture/orgs","repos_url":"https://api.github.com/users/AutoFixture/repos","events_url":"https://api.github.com/users/AutoFixture/events{/privacy}","received_events_url":"https://api.github.com/users/AutoFixture/received_events","type":"Organization","site_admin":false},"repo":{"id":4475900,"name":"AutoFixture","full_name":"AutoFixture/AutoFixture","owner":{"login":"AutoFixture","id":1786815,"avatar_url":"https://avatars.githubusercontent.com/u/1786815?v=3","gravatar_id":"","url":"https://api.github.com/users/AutoFixture","html_url":"https://github.com/AutoFixture","followers_url":"https://api.github.com/users/AutoFixture/followers","following_url":"https://api.github.com/users/AutoFixture/following{/other_user}","gists_url":"https://api.github.com/users/AutoFixture/gists{/gist_id}","starred_url":"https://api.github.com/users/AutoFixture/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AutoFixture/subscriptions","organizations_url":"https://api.github.com/users/AutoFixture/orgs","repos_url":"https://api.github.com/users/AutoFixture/repos","events_url":"https://api.github.com/users/AutoFixture/events{/privacy}","received_events_url":"https://api.github.com/users/AutoFixture/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AutoFixture/AutoFixture","description":"AutoFixture is an open source library for .NET designed to minimize the 'Arrange' phase of your unit tests in order to maximise maintainability.Its primary goal is to allow developers to focus on what is being tested rather than how to setup the test scenario, by making it easier to create object graphs containing test data.","fork":false,"url":"https://api.github.com/repos/AutoFixture/AutoFixture","forks_url":"https://api.github.com/repos/AutoFixture/AutoFixture/forks","keys_url":"https://api.github.com/repos/AutoFixture/AutoFixture/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AutoFixture/AutoFixture/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AutoFixture/AutoFixture/teams","hooks_url":"https://api.github.com/repos/AutoFixture/AutoFixture/hooks","issue_events_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/events{/number}","events_url":"https://api.github.com/repos/AutoFixture/AutoFixture/events","assignees_url":"https://api.github.com/repos/AutoFixture/AutoFixture/assignees{/user}","branches_url":"https://api.github.com/repos/AutoFixture/AutoFixture/branches{/branch}","tags_url":"https://api.github.com/repos/AutoFixture/AutoFixture/tags","blobs_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/refs{/sha}","trees_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AutoFixture/AutoFixture/statuses/{sha}","languages_url":"https://api.github.com/repos/AutoFixture/AutoFixture/languages","stargazers_url":"https://api.github.com/repos/AutoFixture/AutoFixture/stargazers","contributors_url":"https://api.github.com/repos/AutoFixture/AutoFixture/contributors","subscribers_url":"https://api.github.com/repos/AutoFixture/AutoFixture/subscribers","subscription_url":"https://api.github.com/repos/AutoFixture/AutoFixture/subscription","commits_url":"https://api.github.com/repos/AutoFixture/AutoFixture/commits{/sha}","git_commits_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/commits{/sha}","comments_url":"https://api.github.com/repos/AutoFixture/AutoFixture/comments{/number}","issue_comment_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/comments{/number}","contents_url":"https://api.github.com/repos/AutoFixture/AutoFixture/contents/{+path}","compare_url":"https://api.github.com/repos/AutoFixture/AutoFixture/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AutoFixture/AutoFixture/merges","archive_url":"https://api.github.com/repos/AutoFixture/AutoFixture/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AutoFixture/AutoFixture/downloads","issues_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues{/number}","pulls_url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls{/number}","milestones_url":"https://api.github.com/repos/AutoFixture/AutoFixture/milestones{/number}","notifications_url":"https://api.github.com/repos/AutoFixture/AutoFixture/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AutoFixture/AutoFixture/labels{/name}","releases_url":"https://api.github.com/repos/AutoFixture/AutoFixture/releases{/id}","created_at":"2012-05-29T00:00:02Z","updated_at":"2015-09-18T01:51:30Z","pushed_at":"2015-09-17T15:22:19Z","git_url":"git://github.com/AutoFixture/AutoFixture.git","ssh_url":"git@github.com:AutoFixture/AutoFixture.git","clone_url":"https://github.com/AutoFixture/AutoFixture.git","svn_url":"https://github.com/AutoFixture/AutoFixture","homepage":"","size":42626,"stargazers_count":677,"watchers_count":677,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":116,"mirror_url":null,"open_issues_count":23,"forks":116,"open_issues":23,"watchers":677,"default_branch":"master"}},"base":{"label":"AutoFixture:master","ref":"master","sha":"3fa95989cb953390e57bf138b569218b24c82331","user":{"login":"AutoFixture","id":1786815,"avatar_url":"https://avatars.githubusercontent.com/u/1786815?v=3","gravatar_id":"","url":"https://api.github.com/users/AutoFixture","html_url":"https://github.com/AutoFixture","followers_url":"https://api.github.com/users/AutoFixture/followers","following_url":"https://api.github.com/users/AutoFixture/following{/other_user}","gists_url":"https://api.github.com/users/AutoFixture/gists{/gist_id}","starred_url":"https://api.github.com/users/AutoFixture/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AutoFixture/subscriptions","organizations_url":"https://api.github.com/users/AutoFixture/orgs","repos_url":"https://api.github.com/users/AutoFixture/repos","events_url":"https://api.github.com/users/AutoFixture/events{/privacy}","received_events_url":"https://api.github.com/users/AutoFixture/received_events","type":"Organization","site_admin":false},"repo":{"id":4475900,"name":"AutoFixture","full_name":"AutoFixture/AutoFixture","owner":{"login":"AutoFixture","id":1786815,"avatar_url":"https://avatars.githubusercontent.com/u/1786815?v=3","gravatar_id":"","url":"https://api.github.com/users/AutoFixture","html_url":"https://github.com/AutoFixture","followers_url":"https://api.github.com/users/AutoFixture/followers","following_url":"https://api.github.com/users/AutoFixture/following{/other_user}","gists_url":"https://api.github.com/users/AutoFixture/gists{/gist_id}","starred_url":"https://api.github.com/users/AutoFixture/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AutoFixture/subscriptions","organizations_url":"https://api.github.com/users/AutoFixture/orgs","repos_url":"https://api.github.com/users/AutoFixture/repos","events_url":"https://api.github.com/users/AutoFixture/events{/privacy}","received_events_url":"https://api.github.com/users/AutoFixture/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AutoFixture/AutoFixture","description":"AutoFixture is an open source library for .NET designed to minimize the 'Arrange' phase of your unit tests in order to maximise maintainability.Its primary goal is to allow developers to focus on what is being tested rather than how to setup the test scenario, by making it easier to create object graphs containing test data.","fork":false,"url":"https://api.github.com/repos/AutoFixture/AutoFixture","forks_url":"https://api.github.com/repos/AutoFixture/AutoFixture/forks","keys_url":"https://api.github.com/repos/AutoFixture/AutoFixture/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AutoFixture/AutoFixture/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AutoFixture/AutoFixture/teams","hooks_url":"https://api.github.com/repos/AutoFixture/AutoFixture/hooks","issue_events_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/events{/number}","events_url":"https://api.github.com/repos/AutoFixture/AutoFixture/events","assignees_url":"https://api.github.com/repos/AutoFixture/AutoFixture/assignees{/user}","branches_url":"https://api.github.com/repos/AutoFixture/AutoFixture/branches{/branch}","tags_url":"https://api.github.com/repos/AutoFixture/AutoFixture/tags","blobs_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/refs{/sha}","trees_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AutoFixture/AutoFixture/statuses/{sha}","languages_url":"https://api.github.com/repos/AutoFixture/AutoFixture/languages","stargazers_url":"https://api.github.com/repos/AutoFixture/AutoFixture/stargazers","contributors_url":"https://api.github.com/repos/AutoFixture/AutoFixture/contributors","subscribers_url":"https://api.github.com/repos/AutoFixture/AutoFixture/subscribers","subscription_url":"https://api.github.com/repos/AutoFixture/AutoFixture/subscription","commits_url":"https://api.github.com/repos/AutoFixture/AutoFixture/commits{/sha}","git_commits_url":"https://api.github.com/repos/AutoFixture/AutoFixture/git/commits{/sha}","comments_url":"https://api.github.com/repos/AutoFixture/AutoFixture/comments{/number}","issue_comment_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/comments{/number}","contents_url":"https://api.github.com/repos/AutoFixture/AutoFixture/contents/{+path}","compare_url":"https://api.github.com/repos/AutoFixture/AutoFixture/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AutoFixture/AutoFixture/merges","archive_url":"https://api.github.com/repos/AutoFixture/AutoFixture/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AutoFixture/AutoFixture/downloads","issues_url":"https://api.github.com/repos/AutoFixture/AutoFixture/issues{/number}","pulls_url":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls{/number}","milestones_url":"https://api.github.com/repos/AutoFixture/AutoFixture/milestones{/number}","notifications_url":"https://api.github.com/repos/AutoFixture/AutoFixture/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AutoFixture/AutoFixture/labels{/name}","releases_url":"https://api.github.com/repos/AutoFixture/AutoFixture/releases{/id}","created_at":"2012-05-29T00:00:02Z","updated_at":"2015-09-18T01:51:30Z","pushed_at":"2015-09-17T15:22:19Z","git_url":"git://github.com/AutoFixture/AutoFixture.git","ssh_url":"git@github.com:AutoFixture/AutoFixture.git","clone_url":"https://github.com/AutoFixture/AutoFixture.git","svn_url":"https://github.com/AutoFixture/AutoFixture","homepage":"","size":42626,"stargazers_count":677,"watchers_count":677,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":116,"mirror_url":null,"open_issues_count":23,"forks":116,"open_issues":23,"watchers":677,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318"},"html":{"href":"https://github.com/AutoFixture/AutoFixture/pull/318"},"issue":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/318"},"comments":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/issues/318/comments"},"review_comments":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318/comments"},"review_comment":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/pulls/318/commits"},"statuses":{"href":"https://api.github.com/repos/AutoFixture/AutoFixture/statuses/1b5b0cc665dcb5bf652fe9d42c3239ceef2024ed"}}}}