{"action":"created","comment":{"url":"https://api.github.com/repos/config-r/config-r/pulls/comments/63301144","id":63301144,"diff_hunk":"@@ -4,122 +4,129 @@\n \r\n namespace ConfigR.Tests.Acceptance\r\n {\r\n+    using System;\r\n     using System.IO;\r\n+    using System.Linq;\r\n     using System.Reflection;\r\n+    using ConfigR.Tests.Acceptance.Roslyn.CSharp.Support;\r\n     using FluentAssertions;\r\n+    using Microsoft.CodeAnalysis;\r\n+    using Microsoft.CodeAnalysis.CSharp;\r\n     using Xbehave;\r\n \r\n     public static class DynamicReferencesFeature\r\n     {\r\n-        [Background]\r\n-        public static void Background()\r\n-        {\r\n-            \"Given no configuration has been loaded\"\r\n-                .f(() => Config.Global.Reset());\r\n-        }\r\n-\r\n         [Scenario]\r\n-        public static void AddingADynamicReferenceToAnExplicitFile(Assembly reference, object result)\r\n+        public static void AddingADynamicReferenceToAnAssemblyOnDisk(Assembly reference, object result)\r\n         {\r\n-            \"Given a config file adds a Foo from a dynamically loaded assembly with a Bar of 'baz'\"\r\n-                .f(() =>\r\n-                {\r\n-                    using (var writer = new StreamWriter(\"foo.csx\"))\r\n-                    {\r\n-                        writer.WriteLine(@\"using ConfigR.Tests.Support.SampleDependency;\");\r\n-                        writer.WriteLine(@\"Add(\"\"foo\"\", new Foo { Bar = \"\"baz\"\" });\");\r\n-                        writer.Flush();\r\n-                    }\r\n-                })\r\n-                .Teardown(() => File.Delete(\"foo.csx\"));\r\n-\r\n-            \"When I load the assembly\"\r\n-                .f(() => reference = Assembly.Load(\"ConfigR.Tests.Support.SampleDependency\"));\r\n-\r\n-            \"And I load the config using the assembly as a reference\"\r\n-                .f(() => result = Config.Global.LoadScriptFile(\"foo.csx\", reference));\r\n+            dynamic config = null;\r\n \r\n-            \"And I get the value\"\r\n-                .f(() => result = Config.Global.Get<object>(\"foo\"));\r\n-\r\n-            \"Then the Foo Bar should be 'baz'\"\r\n-                .f(() => ((string)((dynamic)result).Bar).Should().Be(\"baz\"));\r\n-        }\r\n-\r\n-        [Scenario]\r\n-        public static void AddingADynamicReferenceToALocalFile(Assembly reference, object result)\r\n-        {\r\n-            \"Given a local config file adds a Foo from a dynamically loaded assembly with a Bar of 'baz'\"\r\n-                .f(() =>\r\n+            \"Given an assembly on disk which defines a Foo type\"\r\n+                .f(c =>\r\n                 {\r\n-                    using (var writer = new StreamWriter(LocalScriptFileConfig.Path))\r\n-                    {\r\n-                        writer.WriteLine(@\"using ConfigR.Tests.Support.SampleDependency;\");\r\n-                        writer.WriteLine(@\"Add(\"\"foo\"\", new Foo { Bar = \"\"baz\"\" });\");\r\n-                        writer.Flush();\r\n-                    }\r\n-                })\r\n-                .Teardown(() => File.Delete(LocalScriptFileConfig.Path));\r\n+                    var code =\r\n+$@\"namespace {c.Step.Scenario.ScenarioOutline.Method.Name}\r\n+{{\r\n+    public class Foo\r\n+    {{\r\n+        public string Bar {{ get; set; }}\r\n+    }}\r\n+}}\";\r\n+\r\n+                    var compilation = CSharpCompilation.Create(\r\n+                            c.Step.Scenario.ScenarioOutline.Method.Name,\r\n+                            new[] { CSharpSyntaxTree.ParseText(code) },\r\n+                            null,\r\n+                            new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary))\r\n+                        .AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location));\r\n+\r\n+                    var emitResult = compilation.Emit(compilation.AssemblyName + \".dll\");\r\n+                    emitResult.Success.Should().BeTrue(\r\n+                        \"The diagnostics should indicate no errors:{0}{1}\",\r\n+                        Environment.NewLine,\r\n+                        string.Join(Environment.NewLine, emitResult.Diagnostics.Select(diagnostic => diagnostic.ToString())));\r\n+                });\r\n+\r\n+            \"And config file with Foo with a Bar of 'baz'\"\r\n+                .f(c =>\r\n+                {\r\n+                    var code =\r\n+$@\"using {c.Step.Scenario.ScenarioOutline.Method.Name};\r\n+Config.Foo = new Foo {{ Bar = \"\"baz\"\" }};\r\n+\";\r\n+                    ConfigFile.Create(code).Using(c);\r\n+                });\r\n \r\n             \"When I load the assembly\"\r\n-                .f(() => reference = Assembly.Load(\"ConfigR.Tests.Support.SampleDependency\"));\r\n-\r\n-            \"When I disable global auto loading\"\r\n-                .f(() => Config.DisableGlobalAutoLoading())\r\n-                .Teardown(() => Config.EnableGlobalAutoLoading());\r\n+                .f(c => reference = Assembly.Load(c.Step.Scenario.ScenarioOutline.Method.Name));\r\n \r\n             \"And I load the config using the assembly as a reference\"\r\n-                .f(() => result = Config.Global.LoadLocalScriptFile(reference));\r\n+                .f(async () => config = await new Config().UseRoslynCSharpLoader().AddReferences(reference).Load());\r\n \r\n             \"And I get the value\"\r\n-                .f(() => result = Config.Global.Get<object>(\"foo\"));\r\n+                .f(() => result = config.Foo);\r\n \r\n             \"Then the Foo Bar should be 'baz'\"\r\n                 .f(() => ((string)((dynamic)result).Bar).Should().Be(\"baz\"));\r\n         }\r\n \r\n-        [Scenario(Skip = \"Not implemented.\")]\r\n-        public static void AddingADynamicInMemoryReferenceToALocalFile(Assembly reference, object result)\r\n-        {\r\n-            \"Given a local config file adds a Foo from a dynamically loaded in memory assembly with a Bar of 'baz'\"\r\n-                .f(() => { throw new System.NotImplementedException(); });\r\n-\r\n-            \"When I load the assembly\"\r\n-                .f(() => { throw new System.NotImplementedException(); });\r\n-\r\n-            \"And I load the config using the assembly as a reference\"\r\n-                .f(() => { throw new System.NotImplementedException(); });\r\n-\r\n-            \"And I get the value\"\r\n-                .f(() => { throw new System.NotImplementedException(); });\r\n-\r\n-            \"Then the Foo Bar should be 'baz'\"\r\n-                .f(() => { throw new System.NotImplementedException(); });\r\n-        }\r\n-\r\n         [Scenario]\r\n-        public static void AddingADynamicReferenceToGlobalAutoLoading(Assembly reference, object result)\r\n+        public static void AddingADynamicReferenceToAnInMemoryAssembly(Assembly reference, MetadataReference metadataReference, object result)\r\n         {\r\n-            \"Given a local config file adds a Foo from a dynamically loaded assembly with a Bar of 'baz'\"\r\n-                .f(() =>\r\n+            dynamic config = null;\r\n+\r\n+            \"Given an assembly in memory which defines a Foo type\"\r\n+                .f(c =>\r\n                 {\r\n-                    using (var writer = new StreamWriter(LocalScriptFileConfig.Path))\r\n+                    var code =\r\n+$@\"namespace {c.Step.Scenario.ScenarioOutline.Method.Name}\r\n+{{\r\n+    public class Foo\r\n+    {{\r\n+        public string Bar {{ get; set; }}\r\n+    }}\r\n+}}\";\r\n+\r\n+                    var compilation = CSharpCompilation.Create(\r\n+                            c.Step.Scenario.ScenarioOutline.Method.Name,\r\n+                            new[] { CSharpSyntaxTree.ParseText(code) },\r\n+                            null,\r\n+                            new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary))\r\n+                        .AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location));\r\n+\r\n+                    metadataReference = compilation.ToMetadataReference();\r\n+\r\n+                    using (var stream = new MemoryStream())\r\n                     {\r\n-                        writer.WriteLine(@\"using ConfigR.Tests.Support.SampleDependency;\");\r\n-                        writer.WriteLine(@\"Add(\"\"foo\"\", new Foo { Bar = \"\"baz\"\" });\");\r\n-                        writer.Flush();\r\n+                        var emitResult = compilation.Emit(stream);\r\n+                        emitResult.Success.Should().BeTrue(\r\n+                            \"The diagnostics should indicate no errors:{0}{1}\",\r\n+                            Environment.NewLine,\r\n+                            string.Join(Environment.NewLine, emitResult.Diagnostics.Select(diagnostic => diagnostic.ToString())));\r\n+\r\n+                        stream.Seek(0, SeekOrigin.Begin);\r\n+                        reference = Assembly.Load(stream.ToArray());\r\n                     }\r\n-                })\r\n-                .Teardown(() => File.Delete(LocalScriptFileConfig.Path));\r\n+                });\r\n \r\n-            \"When I load the assembly\"\r\n-                .f(() => reference = Assembly.Load(\"ConfigR.Tests.Support.SampleDependency\"));\r\n+            \"And config file with Foo with a Bar of 'baz'\"\r\n+                .f(c =>\r\n+                {\r\n+                    var code =\r\n+$@\"using {c.Step.Scenario.ScenarioOutline.Method.Name};\r\n+Config.Foo = new Foo {{ Bar = \"\"baz\"\" }};\r\n+\";\r\n+                    ConfigFile.Create(code).Using(c);\r\n+                });\r\n \r\n-            \"And I add the reference to global autoloading\"\r\n-                .f(() => Config.GlobalAutoLoadingReferences.Add(reference));\r\n+            \"And I load the config using the assembly as a reference\"\r\n+                .f(async () => config = await new Config().UseRoslynCSharpLoader()\r\n+                    .AddReferences(reference)\r\n+                    .AddReferences(metadataReference)\r\n+                    .Load());\r","path":"tests/ConfigR.Tests.Acceptance.Roslyn.CSharp/DynamicReferencesFeature.cs","position":207,"original_position":207,"commit_id":"b7b9e6710e835bbff0bed8b548500ea81835b38e","original_commit_id":"b7b9e6710e835bbff0bed8b548500ea81835b38e","user":{"login":"adamralph","id":677704,"avatar_url":"https://avatars.githubusercontent.com/u/677704?v=3","gravatar_id":"","url":"https://api.github.com/users/adamralph","html_url":"https://github.com/adamralph","followers_url":"https://api.github.com/users/adamralph/followers","following_url":"https://api.github.com/users/adamralph/following{/other_user}","gists_url":"https://api.github.com/users/adamralph/gists{/gist_id}","starred_url":"https://api.github.com/users/adamralph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamralph/subscriptions","organizations_url":"https://api.github.com/users/adamralph/orgs","repos_url":"https://api.github.com/users/adamralph/repos","events_url":"https://api.github.com/users/adamralph/events{/privacy}","received_events_url":"https://api.github.com/users/adamralph/received_events","type":"User","site_admin":false},"body":"@filipw this fails with\r\n\r\n> System.NotSupportedException : Can't create a metadata reference to an assembly without location.\r\n\r\nAny ideas?","created_at":"2016-05-16T00:27:17Z","updated_at":"2016-05-16T00:27:17Z","html_url":"https://github.com/config-r/config-r/pull/259#discussion_r63301144","pull_request_url":"https://api.github.com/repos/config-r/config-r/pulls/259","_links":{"self":{"href":"https://api.github.com/repos/config-r/config-r/pulls/comments/63301144"},"html":{"href":"https://github.com/config-r/config-r/pull/259#discussion_r63301144"},"pull_request":{"href":"https://api.github.com/repos/config-r/config-r/pulls/259"}}},"pull_request":{"url":"https://api.github.com/repos/config-r/config-r/pulls/259","id":70138632,"html_url":"https://github.com/config-r/config-r/pull/259","diff_url":"https://github.com/config-r/config-r/pull/259.diff","patch_url":"https://github.com/config-r/config-r/pull/259.patch","issue_url":"https://api.github.com/repos/config-r/config-r/issues/259","number":259,"state":"open","locked":false,"title":"WIP: add DynamicReferencesFeature","user":{"login":"adamralph","id":677704,"avatar_url":"https://avatars.githubusercontent.com/u/677704?v=3","gravatar_id":"","url":"https://api.github.com/users/adamralph","html_url":"https://github.com/adamralph","followers_url":"https://api.github.com/users/adamralph/followers","following_url":"https://api.github.com/users/adamralph/following{/other_user}","gists_url":"https://api.github.com/users/adamralph/gists{/gist_id}","starred_url":"https://api.github.com/users/adamralph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamralph/subscriptions","organizations_url":"https://api.github.com/users/adamralph/orgs","repos_url":"https://api.github.com/users/adamralph/repos","events_url":"https://api.github.com/users/adamralph/events{/privacy}","received_events_url":"https://api.github.com/users/adamralph/received_events","type":"User","site_admin":false},"body":"connects to #246 ","created_at":"2016-05-16T00:26:26Z","updated_at":"2016-05-16T00:27:17Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a966235c8797af06cebab4b06cc4bfda0db17e84","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/config-r/config-r/pulls/259/commits","review_comments_url":"https://api.github.com/repos/config-r/config-r/pulls/259/comments","review_comment_url":"https://api.github.com/repos/config-r/config-r/pulls/comments{/number}","comments_url":"https://api.github.com/repos/config-r/config-r/issues/259/comments","statuses_url":"https://api.github.com/repos/config-r/config-r/statuses/b7b9e6710e835bbff0bed8b548500ea81835b38e","head":{"label":"adamralph:new-syntax","ref":"new-syntax","sha":"b7b9e6710e835bbff0bed8b548500ea81835b38e","user":{"login":"adamralph","id":677704,"avatar_url":"https://avatars.githubusercontent.com/u/677704?v=3","gravatar_id":"","url":"https://api.github.com/users/adamralph","html_url":"https://github.com/adamralph","followers_url":"https://api.github.com/users/adamralph/followers","following_url":"https://api.github.com/users/adamralph/following{/other_user}","gists_url":"https://api.github.com/users/adamralph/gists{/gist_id}","starred_url":"https://api.github.com/users/adamralph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamralph/subscriptions","organizations_url":"https://api.github.com/users/adamralph/orgs","repos_url":"https://api.github.com/users/adamralph/repos","events_url":"https://api.github.com/users/adamralph/events{/privacy}","received_events_url":"https://api.github.com/users/adamralph/received_events","type":"User","site_admin":false},"repo":{"id":10710808,"name":"config-r","full_name":"adamralph/config-r","owner":{"login":"adamralph","id":677704,"avatar_url":"https://avatars.githubusercontent.com/u/677704?v=3","gravatar_id":"","url":"https://api.github.com/users/adamralph","html_url":"https://github.com/adamralph","followers_url":"https://api.github.com/users/adamralph/followers","following_url":"https://api.github.com/users/adamralph/following{/other_user}","gists_url":"https://api.github.com/users/adamralph/gists{/gist_id}","starred_url":"https://api.github.com/users/adamralph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adamralph/subscriptions","organizations_url":"https://api.github.com/users/adamralph/orgs","repos_url":"https://api.github.com/users/adamralph/repos","events_url":"https://api.github.com/users/adamralph/events{/privacy}","received_events_url":"https://api.github.com/users/adamralph/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/adamralph/config-r","description":"","fork":true,"url":"https://api.github.com/repos/adamralph/config-r","forks_url":"https://api.github.com/repos/adamralph/config-r/forks","keys_url":"https://api.github.com/repos/adamralph/config-r/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adamralph/config-r/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adamralph/config-r/teams","hooks_url":"https://api.github.com/repos/adamralph/config-r/hooks","issue_events_url":"https://api.github.com/repos/adamralph/config-r/issues/events{/number}","events_url":"https://api.github.com/repos/adamralph/config-r/events","assignees_url":"https://api.github.com/repos/adamralph/config-r/assignees{/user}","branches_url":"https://api.github.com/repos/adamralph/config-r/branches{/branch}","tags_url":"https://api.github.com/repos/adamralph/config-r/tags","blobs_url":"https://api.github.com/repos/adamralph/config-r/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adamralph/config-r/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adamralph/config-r/git/refs{/sha}","trees_url":"https://api.github.com/repos/adamralph/config-r/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adamralph/config-r/statuses/{sha}","languages_url":"https://api.github.com/repos/adamralph/config-r/languages","stargazers_url":"https://api.github.com/repos/adamralph/config-r/stargazers","contributors_url":"https://api.github.com/repos/adamralph/config-r/contributors","subscribers_url":"https://api.github.com/repos/adamralph/config-r/subscribers","subscription_url":"https://api.github.com/repos/adamralph/config-r/subscription","commits_url":"https://api.github.com/repos/adamralph/config-r/commits{/sha}","git_commits_url":"https://api.github.com/repos/adamralph/config-r/git/commits{/sha}","comments_url":"https://api.github.com/repos/adamralph/config-r/comments{/number}","issue_comment_url":"https://api.github.com/repos/adamralph/config-r/issues/comments{/number}","contents_url":"https://api.github.com/repos/adamralph/config-r/contents/{+path}","compare_url":"https://api.github.com/repos/adamralph/config-r/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adamralph/config-r/merges","archive_url":"https://api.github.com/repos/adamralph/config-r/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adamralph/config-r/downloads","issues_url":"https://api.github.com/repos/adamralph/config-r/issues{/number}","pulls_url":"https://api.github.com/repos/adamralph/config-r/pulls{/number}","milestones_url":"https://api.github.com/repos/adamralph/config-r/milestones{/number}","notifications_url":"https://api.github.com/repos/adamralph/config-r/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adamralph/config-r/labels{/name}","releases_url":"https://api.github.com/repos/adamralph/config-r/releases{/id}","deployments_url":"https://api.github.com/repos/adamralph/config-r/deployments","created_at":"2013-06-15T19:17:55Z","updated_at":"2015-06-09T14:11:58Z","pushed_at":"2016-05-16T00:25:55Z","git_url":"git://github.com/adamralph/config-r.git","ssh_url":"git@github.com:adamralph/config-r.git","clone_url":"https://github.com/adamralph/config-r.git","svn_url":"https://github.com/adamralph/config-r","homepage":null,"size":3543,"stargazers_count":6,"watchers_count":6,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":6,"default_branch":"dev"}},"base":{"label":"config-r:dev","ref":"dev","sha":"31a9ad81c07a46b404f324176115364b424116d7","user":{"login":"config-r","id":4706277,"avatar_url":"https://avatars.githubusercontent.com/u/4706277?v=3","gravatar_id":"","url":"https://api.github.com/users/config-r","html_url":"https://github.com/config-r","followers_url":"https://api.github.com/users/config-r/followers","following_url":"https://api.github.com/users/config-r/following{/other_user}","gists_url":"https://api.github.com/users/config-r/gists{/gist_id}","starred_url":"https://api.github.com/users/config-r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/config-r/subscriptions","organizations_url":"https://api.github.com/users/config-r/orgs","repos_url":"https://api.github.com/users/config-r/repos","events_url":"https://api.github.com/users/config-r/events{/privacy}","received_events_url":"https://api.github.com/users/config-r/received_events","type":"Organization","site_admin":false},"repo":{"id":10709696,"name":"config-r","full_name":"config-r/config-r","owner":{"login":"config-r","id":4706277,"avatar_url":"https://avatars.githubusercontent.com/u/4706277?v=3","gravatar_id":"","url":"https://api.github.com/users/config-r","html_url":"https://github.com/config-r","followers_url":"https://api.github.com/users/config-r/followers","following_url":"https://api.github.com/users/config-r/following{/other_user}","gists_url":"https://api.github.com/users/config-r/gists{/gist_id}","starred_url":"https://api.github.com/users/config-r/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/config-r/subscriptions","organizations_url":"https://api.github.com/users/config-r/orgs","repos_url":"https://api.github.com/users/config-r/repos","events_url":"https://api.github.com/users/config-r/events{/privacy}","received_events_url":"https://api.github.com/users/config-r/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/config-r/config-r","description":"Write your .NET configuration files in C#","fork":false,"url":"https://api.github.com/repos/config-r/config-r","forks_url":"https://api.github.com/repos/config-r/config-r/forks","keys_url":"https://api.github.com/repos/config-r/config-r/keys{/key_id}","collaborators_url":"https://api.github.com/repos/config-r/config-r/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/config-r/config-r/teams","hooks_url":"https://api.github.com/repos/config-r/config-r/hooks","issue_events_url":"https://api.github.com/repos/config-r/config-r/issues/events{/number}","events_url":"https://api.github.com/repos/config-r/config-r/events","assignees_url":"https://api.github.com/repos/config-r/config-r/assignees{/user}","branches_url":"https://api.github.com/repos/config-r/config-r/branches{/branch}","tags_url":"https://api.github.com/repos/config-r/config-r/tags","blobs_url":"https://api.github.com/repos/config-r/config-r/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/config-r/config-r/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/config-r/config-r/git/refs{/sha}","trees_url":"https://api.github.com/repos/config-r/config-r/git/trees{/sha}","statuses_url":"https://api.github.com/repos/config-r/config-r/statuses/{sha}","languages_url":"https://api.github.com/repos/config-r/config-r/languages","stargazers_url":"https://api.github.com/repos/config-r/config-r/stargazers","contributors_url":"https://api.github.com/repos/config-r/config-r/contributors","subscribers_url":"https://api.github.com/repos/config-r/config-r/subscribers","subscription_url":"https://api.github.com/repos/config-r/config-r/subscription","commits_url":"https://api.github.com/repos/config-r/config-r/commits{/sha}","git_commits_url":"https://api.github.com/repos/config-r/config-r/git/commits{/sha}","comments_url":"https://api.github.com/repos/config-r/config-r/comments{/number}","issue_comment_url":"https://api.github.com/repos/config-r/config-r/issues/comments{/number}","contents_url":"https://api.github.com/repos/config-r/config-r/contents/{+path}","compare_url":"https://api.github.com/repos/config-r/config-r/compare/{base}...{head}","merges_url":"https://api.github.com/repos/config-r/config-r/merges","archive_url":"https://api.github.com/repos/config-r/config-r/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/config-r/config-r/downloads","issues_url":"https://api.github.com/repos/config-r/config-r/issues{/number}","pulls_url":"https://api.github.com/repos/config-r/config-r/pulls{/number}","milestones_url":"https://api.github.com/repos/config-r/config-r/milestones{/number}","notifications_url":"https://api.github.com/repos/config-r/config-r/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/config-r/config-r/labels{/name}","releases_url":"https://api.github.com/repos/config-r/config-r/releases{/id}","deployments_url":"https://api.github.com/repos/config-r/config-r/deployments","created_at":"2013-06-15T17:39:29Z","updated_at":"2016-05-15T21:59:13Z","pushed_at":"2016-05-16T00:26:26Z","git_url":"git://github.com/config-r/config-r.git","ssh_url":"git@github.com:config-r/config-r.git","clone_url":"https://github.com/config-r/config-r.git","svn_url":"https://github.com/config-r/config-r","homepage":"","size":3746,"stargazers_count":249,"watchers_count":249,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":25,"mirror_url":null,"open_issues_count":16,"forks":25,"open_issues":16,"watchers":249,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/config-r/config-r/pulls/259"},"html":{"href":"https://github.com/config-r/config-r/pull/259"},"issue":{"href":"https://api.github.com/repos/config-r/config-r/issues/259"},"comments":{"href":"https://api.github.com/repos/config-r/config-r/issues/259/comments"},"review_comments":{"href":"https://api.github.com/repos/config-r/config-r/pulls/259/comments"},"review_comment":{"href":"https://api.github.com/repos/config-r/config-r/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/config-r/config-r/pulls/259/commits"},"statuses":{"href":"https://api.github.com/repos/config-r/config-r/statuses/b7b9e6710e835bbff0bed8b548500ea81835b38e"}}}}