{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/comments/43310166","id":43310166,"diff_hunk":"@@ -0,0 +1,265 @@\n+﻿// Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.\n+\n+using System.Text;\n+using Microsoft.CodeAnalysis;\n+using Microsoft.VisualStudio.LanguageServices.Implementation.ProjectSystem;\n+using Microsoft.VisualStudio.Shell.Interop;\n+using Roslyn.Utilities;\n+\n+namespace Microsoft.VisualStudio.LanguageServices.Implementation.Library.VsNavInfo\n+{\n+    internal class NavInfoFactory\n+    {\n+        internal AbstractLibraryService LibraryService { get; }\n+\n+        public NavInfoFactory(AbstractLibraryService libraryService)\n+        {\n+            LibraryService = libraryService;\n+        }\n+\n+        public IVsNavInfo CreateForProject(Project project)\n+        {\n+            return new NavInfo(this, libraryName: GetLibraryName(project));\n+        }\n+\n+        public IVsNavInfo CreateForReference(MetadataReference reference)\n+        {\n+            var portableExecutableReference = reference as PortableExecutableReference;\n+            if (portableExecutableReference != null)\n+            {\n+                return new NavInfo(this, libraryName: portableExecutableReference.FilePath);\n+            }\n+\n+            return new NavInfo(this, libraryName: reference.Display);\n+        }\n+\n+        public IVsNavInfo CreateForSymbol(ISymbol symbol, Project project, Compilation compilation, bool useExpandedHierarchy = false)\n+        {\n+            var assemblySymbol = symbol as IAssemblySymbol;\n+            if (assemblySymbol != null)\n+            {\n+                return CreateForAssembly(assemblySymbol);\n+            }\n+\n+            var aliasSymbol = symbol as IAliasSymbol;\n+            if (aliasSymbol != null)\n+            {\n+                symbol = aliasSymbol.Target;\n+            }\n+\n+            var namespaceSymbol = symbol as INamespaceSymbol;\n+            if (namespaceSymbol != null)\n+            {\n+                return CreateForNamespace(namespaceSymbol, project, compilation, useExpandedHierarchy);\n+            }\n+\n+            var typeSymbol = symbol as ITypeSymbol;\n+            if (typeSymbol != null)\n+            {\n+                return CreateForType(typeSymbol, project, compilation, useExpandedHierarchy);\n+            }\n+\n+            if (symbol.Kind == SymbolKind.Event ||\n+                symbol.Kind == SymbolKind.Field ||\n+                symbol.Kind == SymbolKind.Method ||\n+                symbol.Kind == SymbolKind.Property)\n+            {\n+                return CreateForMember(symbol, project, compilation, useExpandedHierarchy);\n+            }\n+\n+            return null;\n+        }\n+\n+        public IVsNavInfo CreateForAssembly(IAssemblySymbol assemblySymbol)\n+        {\n+            return new NavInfo(this, libraryName: assemblySymbol.Identity.GetDisplayName());\n+        }\n+\n+        public IVsNavInfo CreateForNamespace(INamespaceSymbol namespaceSymbol, Project project, Compilation compilation, bool useExpandedHierarchy = false)\n+        {\n+            return Create(\n+                namespaceSymbol.ContainingAssembly,\n+                project,\n+                compilation,\n+                useExpandedHierarchy,\n+                namespaceName: GetNamespaceName(namespaceSymbol));\n+        }\n+\n+        public IVsNavInfo CreateForType(ITypeSymbol typeSymbol, Project project, Compilation compilation, bool useExpandedHierarchy = false)\n+        {\n+            while (typeSymbol != null)\n+            {\n+                if (typeSymbol.SpecialType == SpecialType.System_Nullable_T)\n+                {\n+                    typeSymbol = ((INamedTypeSymbol)typeSymbol).TypeArguments[0];\n+                }\n+                else if (typeSymbol.TypeKind == TypeKind.Pointer)\n+                {\n+                    typeSymbol = ((IPointerTypeSymbol)typeSymbol).PointedAtType;\n+                }\n+                else if (typeSymbol.TypeKind == TypeKind.Array)\n+                {\n+                    typeSymbol = ((IArrayTypeSymbol)typeSymbol).ElementType;\n+                }\n+                else\n+                {\n+                    break;\n+                }\n+            }\n+\n+            typeSymbol = typeSymbol.OriginalDefinition;\n+\n+            if (typeSymbol.TypeKind == TypeKind.Error ||\n+                typeSymbol.TypeKind == TypeKind.Unknown ||\n+                typeSymbol.TypeKind == TypeKind.Dynamic ||\n+                typeSymbol.TypeKind == TypeKind.TypeParameter)\n+            {\n+                return null;\n+            }\n+\n+            return Create(\n+                typeSymbol.ContainingAssembly,\n+                project,\n+                compilation,\n+                useExpandedHierarchy,\n+                namespaceName: GetNamespaceName(typeSymbol.ContainingNamespace),\n+                className: GetClassName(typeSymbol));\n+        }\n+\n+        public IVsNavInfo CreateForMember(ISymbol memberSymbol, Project project, Compilation compilation, bool useExpandedHierarchy = false)\n+        {\n+            return Create(\n+                memberSymbol.ContainingAssembly,\n+                project,\n+                compilation,\n+                useExpandedHierarchy,\n+                namespaceName: GetNamespaceName(memberSymbol.ContainingNamespace),\n+                className: GetClassName(memberSymbol.ContainingType),\n+                memberName: GetMemberName(memberSymbol));\n+        }\n+\n+        private IVsNavInfo Create(IAssemblySymbol containingAssembly, Project project, Compilation compilation, bool useExpandedHierarchy = false,\n+            string namespaceName = null, string className = null, string memberName = null)\n+        {\n+            // useExpandedHierarchy is true when references are nested inside the project by the\n+            // hierarchy. In Class View, they are nested in the Project References node. In Object Browser,\n+            // they are not.\n+            //\n+            // In the case that references are nested inside of the project, we need to create the nav info\n+            // differently:\n+            //\n+            //     project -> containing assembly -> namespace -> type\n+            //\n+            // Otherwise, we create it like so:\n+            //\n+            //     containing assembly -> namespace -> type\n+\n+            string libraryName;\n+            string referenceOwnerName = null;\n+\n+            var isCompilationAssembly = containingAssembly.Identity.Equals(compilation.Assembly.Identity);","path":"src/VisualStudio/Core/Def/Implementation/Library/VsNavInfo/NavInfoFactory.cs","position":160,"original_position":160,"commit_id":"0d4a71812dd979d110a6be7f361c09309fcaaddd","original_commit_id":"0d4a71812dd979d110a6be7f361c09309fcaaddd","user":{"login":"balajikris","id":4213867,"avatar_url":"https://avatars.githubusercontent.com/u/4213867?v=3","gravatar_id":"","url":"https://api.github.com/users/balajikris","html_url":"https://github.com/balajikris","followers_url":"https://api.github.com/users/balajikris/followers","following_url":"https://api.github.com/users/balajikris/following{/other_user}","gists_url":"https://api.github.com/users/balajikris/gists{/gist_id}","starred_url":"https://api.github.com/users/balajikris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/balajikris/subscriptions","organizations_url":"https://api.github.com/users/balajikris/orgs","repos_url":"https://api.github.com/users/balajikris/repos","events_url":"https://api.github.com/users/balajikris/events{/privacy}","received_events_url":"https://api.github.com/users/balajikris/received_events","type":"User","site_admin":false},"body":"I see. the code was identical then. Perhaps test references to `system.string` from metadata in a portable project and see if they displayed info is alright.","created_at":"2015-10-28T20:06:39Z","updated_at":"2015-10-28T20:06:39Z","html_url":"https://github.com/dotnet/roslyn/pull/6375#discussion_r43310166","pull_request_url":"https://api.github.com/repos/dotnet/roslyn/pulls/6375","_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/comments/43310166"},"html":{"href":"https://github.com/dotnet/roslyn/pull/6375#discussion_r43310166"},"pull_request":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/6375"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/6375","id":48941203,"html_url":"https://github.com/dotnet/roslyn/pull/6375","diff_url":"https://github.com/dotnet/roslyn/pull/6375.diff","patch_url":"https://github.com/dotnet/roslyn/pull/6375.patch","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/6375","number":6375,"state":"open","locked":false,"title":"Visual Basic: Bring back navigation to the Object Browser over Metadata-as-Source","user":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"body":"Fixes #4947.\r\n\r\nI'm getting this change out for review while I'm exploring ways to test this feature. Essentially, this provides an option for VB uses to choose to navigate to the Object Browser for metadata symbols. Metadata-as-source is still used for Inline Peek.\r\n\r\nThings I'm interested in getting feedback on:\r\n* Options serialization (I think I did this right, and I'm hoping @jasonmalinowski can review.)\r\n* `IVsNavInfo` implementation rewrite (@Pilchie?)\r\n* Changes to `IDocumentNavigationService` and `ISymbolNavigationService`. (I suspect @dpoeschl is best equipped help out there.)\r\n* Nit-picking :smile: -- @dotnet/roslyn-ide \r\n\r\nEDIT: Unit tests have been added for IVsNavInfo implementation.","created_at":"2015-10-27T22:23:40Z","updated_at":"2015-10-28T20:06:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a12cee22dff2a5681ccb6d79c39eca328c40eef5","assignee":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/dotnet/roslyn/milestones/3","html_url":"https://github.com/dotnet/roslyn/milestones/1.1","labels_url":"https://api.github.com/repos/dotnet/roslyn/milestones/3/labels","id":937401,"number":3,"title":"1.1","description":"This is our 1.1 Milestone.\r\n\r\n<!---\r\n@huboard:{\"order\":1.5}\r\n-->\r\n","creator":{"login":"jaredpar","id":146967,"avatar_url":"https://avatars.githubusercontent.com/u/146967?v=3","gravatar_id":"","url":"https://api.github.com/users/jaredpar","html_url":"https://github.com/jaredpar","followers_url":"https://api.github.com/users/jaredpar/followers","following_url":"https://api.github.com/users/jaredpar/following{/other_user}","gists_url":"https://api.github.com/users/jaredpar/gists{/gist_id}","starred_url":"https://api.github.com/users/jaredpar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jaredpar/subscriptions","organizations_url":"https://api.github.com/users/jaredpar/orgs","repos_url":"https://api.github.com/users/jaredpar/repos","events_url":"https://api.github.com/users/jaredpar/events{/privacy}","received_events_url":"https://api.github.com/users/jaredpar/received_events","type":"User","site_admin":false},"open_issues":72,"closed_issues":703,"state":"open","created_at":"2015-01-15T20:48:41Z","updated_at":"2015-10-28T19:20:09Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/dotnet/roslyn/pulls/6375/commits","review_comments_url":"https://api.github.com/repos/dotnet/roslyn/pulls/6375/comments","review_comment_url":"https://api.github.com/repos/dotnet/roslyn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/6375/comments","statuses_url":"https://api.github.com/repos/dotnet/roslyn/statuses/0d4a71812dd979d110a6be7f361c09309fcaaddd","head":{"label":"DustinCampbell:vb-gtd-and-ob","ref":"vb-gtd-and-ob","sha":"0d4a71812dd979d110a6be7f361c09309fcaaddd","user":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"repo":{"id":30651839,"name":"roslyn","full_name":"DustinCampbell/roslyn","owner":{"login":"DustinCampbell","id":116161,"avatar_url":"https://avatars.githubusercontent.com/u/116161?v=3","gravatar_id":"","url":"https://api.github.com/users/DustinCampbell","html_url":"https://github.com/DustinCampbell","followers_url":"https://api.github.com/users/DustinCampbell/followers","following_url":"https://api.github.com/users/DustinCampbell/following{/other_user}","gists_url":"https://api.github.com/users/DustinCampbell/gists{/gist_id}","starred_url":"https://api.github.com/users/DustinCampbell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DustinCampbell/subscriptions","organizations_url":"https://api.github.com/users/DustinCampbell/orgs","repos_url":"https://api.github.com/users/DustinCampbell/repos","events_url":"https://api.github.com/users/DustinCampbell/events{/privacy}","received_events_url":"https://api.github.com/users/DustinCampbell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/DustinCampbell/roslyn","description":"The .NET Compiler Platform (\"Roslyn\") provides open-source C# and Visual Basic compilers with rich code analysis APIs.","fork":true,"url":"https://api.github.com/repos/DustinCampbell/roslyn","forks_url":"https://api.github.com/repos/DustinCampbell/roslyn/forks","keys_url":"https://api.github.com/repos/DustinCampbell/roslyn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DustinCampbell/roslyn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DustinCampbell/roslyn/teams","hooks_url":"https://api.github.com/repos/DustinCampbell/roslyn/hooks","issue_events_url":"https://api.github.com/repos/DustinCampbell/roslyn/issues/events{/number}","events_url":"https://api.github.com/repos/DustinCampbell/roslyn/events","assignees_url":"https://api.github.com/repos/DustinCampbell/roslyn/assignees{/user}","branches_url":"https://api.github.com/repos/DustinCampbell/roslyn/branches{/branch}","tags_url":"https://api.github.com/repos/DustinCampbell/roslyn/tags","blobs_url":"https://api.github.com/repos/DustinCampbell/roslyn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DustinCampbell/roslyn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DustinCampbell/roslyn/git/refs{/sha}","trees_url":"https://api.github.com/repos/DustinCampbell/roslyn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DustinCampbell/roslyn/statuses/{sha}","languages_url":"https://api.github.com/repos/DustinCampbell/roslyn/languages","stargazers_url":"https://api.github.com/repos/DustinCampbell/roslyn/stargazers","contributors_url":"https://api.github.com/repos/DustinCampbell/roslyn/contributors","subscribers_url":"https://api.github.com/repos/DustinCampbell/roslyn/subscribers","subscription_url":"https://api.github.com/repos/DustinCampbell/roslyn/subscription","commits_url":"https://api.github.com/repos/DustinCampbell/roslyn/commits{/sha}","git_commits_url":"https://api.github.com/repos/DustinCampbell/roslyn/git/commits{/sha}","comments_url":"https://api.github.com/repos/DustinCampbell/roslyn/comments{/number}","issue_comment_url":"https://api.github.com/repos/DustinCampbell/roslyn/issues/comments{/number}","contents_url":"https://api.github.com/repos/DustinCampbell/roslyn/contents/{+path}","compare_url":"https://api.github.com/repos/DustinCampbell/roslyn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DustinCampbell/roslyn/merges","archive_url":"https://api.github.com/repos/DustinCampbell/roslyn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DustinCampbell/roslyn/downloads","issues_url":"https://api.github.com/repos/DustinCampbell/roslyn/issues{/number}","pulls_url":"https://api.github.com/repos/DustinCampbell/roslyn/pulls{/number}","milestones_url":"https://api.github.com/repos/DustinCampbell/roslyn/milestones{/number}","notifications_url":"https://api.github.com/repos/DustinCampbell/roslyn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DustinCampbell/roslyn/labels{/name}","releases_url":"https://api.github.com/repos/DustinCampbell/roslyn/releases{/id}","created_at":"2015-02-11T14:36:20Z","updated_at":"2015-04-22T18:16:20Z","pushed_at":"2015-10-28T18:12:46Z","git_url":"git://github.com/DustinCampbell/roslyn.git","ssh_url":"git@github.com:DustinCampbell/roslyn.git","clone_url":"https://github.com/DustinCampbell/roslyn.git","svn_url":"https://github.com/DustinCampbell/roslyn","homepage":"","size":104505,"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":"dotnet:stabilization","ref":"stabilization","sha":"d7f6bc5035ccb50e4e37c8626f1293c752f19ee8","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":29078997,"name":"roslyn","full_name":"dotnet/roslyn","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars.githubusercontent.com/u/9141961?v=3","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/roslyn","description":"The .NET Compiler Platform (\"Roslyn\") provides open-source C# and Visual Basic compilers with rich code analysis APIs.","fork":false,"url":"https://api.github.com/repos/dotnet/roslyn","forks_url":"https://api.github.com/repos/dotnet/roslyn/forks","keys_url":"https://api.github.com/repos/dotnet/roslyn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/roslyn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/roslyn/teams","hooks_url":"https://api.github.com/repos/dotnet/roslyn/hooks","issue_events_url":"https://api.github.com/repos/dotnet/roslyn/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/roslyn/events","assignees_url":"https://api.github.com/repos/dotnet/roslyn/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/roslyn/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/roslyn/tags","blobs_url":"https://api.github.com/repos/dotnet/roslyn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/roslyn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/roslyn/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/roslyn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/roslyn/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/roslyn/languages","stargazers_url":"https://api.github.com/repos/dotnet/roslyn/stargazers","contributors_url":"https://api.github.com/repos/dotnet/roslyn/contributors","subscribers_url":"https://api.github.com/repos/dotnet/roslyn/subscribers","subscription_url":"https://api.github.com/repos/dotnet/roslyn/subscription","commits_url":"https://api.github.com/repos/dotnet/roslyn/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/roslyn/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/roslyn/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/roslyn/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/roslyn/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/roslyn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/roslyn/merges","archive_url":"https://api.github.com/repos/dotnet/roslyn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/roslyn/downloads","issues_url":"https://api.github.com/repos/dotnet/roslyn/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/roslyn/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/roslyn/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/roslyn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/roslyn/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/roslyn/releases{/id}","created_at":"2015-01-11T02:39:03Z","updated_at":"2015-10-28T19:46:16Z","pushed_at":"2015-10-28T20:00:09Z","git_url":"git://github.com/dotnet/roslyn.git","ssh_url":"git@github.com:dotnet/roslyn.git","clone_url":"https://github.com/dotnet/roslyn.git","svn_url":"https://github.com/dotnet/roslyn","homepage":"","size":216028,"stargazers_count":3600,"watchers_count":3600,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":849,"mirror_url":null,"open_issues_count":1549,"forks":849,"open_issues":1549,"watchers":3600,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/6375"},"html":{"href":"https://github.com/dotnet/roslyn/pull/6375"},"issue":{"href":"https://api.github.com/repos/dotnet/roslyn/issues/6375"},"comments":{"href":"https://api.github.com/repos/dotnet/roslyn/issues/6375/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/6375/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/6375/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/roslyn/statuses/0d4a71812dd979d110a6be7f361c09309fcaaddd"}}}}