{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/comments/165788129","pull_request_review_id":93788881,"id":165788129,"diff_hunk":"@@ -272,11 +209,112 @@ internal void StartPushingToWorkspaceAndNotifyOfOpenDocuments(IEnumerable<Abstra\n         {\n             AssertIsForeground();\n \n-            using (Dispatcher.CurrentDispatcher.DisableProcessing())\n+            // If the solution is closing we shouldn't do anything, because all of our state is\n+            // in the process of going away. This can happen if we receive notification that a document has\n+            // opened in the middle of the solution close operation.\n+            if (_solutionIsClosing)\n+            {\n+                return;\n+            }\n+\n+            // We need to push these projects and any project dependencies we already know about. Therefore, compute the\n+            // transitive closure of the projects that haven't already been pushed, keeping them in appropriate order.\n+            var visited = new HashSet<AbstractProject>();\n+            var inOrderToPush = new List<AbstractProject>();\n+\n+            void addToInOrderToPush(AbstractProject project)\n             {\n-                foreach (var hostState in _workspaceHosts)\n+                Contract.ThrowIfFalse(ContainsProject(project));\n+\n+                // Bail out if any of the following is true:\n+                //  1. We have already started pushing changes for this project OR\n+                //  2. We have already visited this project in a prior recursive call                \n+                if (_pushedProjects.Contains(project) || !visited.Add(project))\n+                {\n+                    return;\n+                }\n+\n+                foreach (var projectReference in project.GetCurrentProjectReferences())\n                 {\n-                    hostState.StartPushingToWorkspaceAndNotifyOfOpenDocuments(projects);\n+                    addToInOrderToPush(GetProject(projectReference.ProjectId));\n+                }\n+\n+                inOrderToPush.Add(project);\n+            }\n+\n+            foreach (var project in projects)\n+            {\n+                addToInOrderToPush(project);\n+            }\n+\n+            var projectInfos = inOrderToPush.Select(p => p.CreateProjectInfoForCurrentState()).ToImmutableArray();\n+\n+            // We need to enable projects to start pushing changes to the workspace even before we add the solution/project to the host.\n+            // This is required because between the point we capture the project info for current state and the point where we start pushing to the workspace,\n+            // project system may send new events on the AbstractProject on a background thread, and these won't get pushed over to the workspace hosts as we didn't set the _pushingChangesToWorkspaceHost flag on the AbstractProject.\n+            // By invoking StartPushingToWorkspaceHosts upfront, any project state changes on the background thread will enqueue notifications to workspace hosts on foreground scheduled tasks.\n+            foreach (var project in inOrderToPush)\n+            {\n+                project.StartPushingToWorkspaceHosts();","path":"src/VisualStudio/Core/Def/Implementation/ProjectSystem/VisualStudioProjectTracker.cs","position":217,"original_position":217,"commit_id":"4ee27c16c07e4a96033483fbebdd44551b40626d","original_commit_id":"fe66b8c5b44a279d01df92bd1bba9d5f6f8ef0c0","user":{"login":"CyrusNajmabadi","id":4564579,"avatar_url":"https://avatars3.githubusercontent.com/u/4564579?v=4","gravatar_id":"","url":"https://api.github.com/users/CyrusNajmabadi","html_url":"https://github.com/CyrusNajmabadi","followers_url":"https://api.github.com/users/CyrusNajmabadi/followers","following_url":"https://api.github.com/users/CyrusNajmabadi/following{/other_user}","gists_url":"https://api.github.com/users/CyrusNajmabadi/gists{/gist_id}","starred_url":"https://api.github.com/users/CyrusNajmabadi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CyrusNajmabadi/subscriptions","organizations_url":"https://api.github.com/users/CyrusNajmabadi/orgs","repos_url":"https://api.github.com/users/CyrusNajmabadi/repos","events_url":"https://api.github.com/users/CyrusNajmabadi/events{/privacy}","received_events_url":"https://api.github.com/users/CyrusNajmabadi/received_events","type":"User","site_admin":false},"body":"I would prefer that.  Maybe \"StartProcessingWorkspaceChangeNotifications\"?","created_at":"2018-02-02T23:39:27Z","updated_at":"2018-02-02T23:39:27Z","html_url":"https://github.com/dotnet/roslyn/pull/24165#discussion_r165788129","pull_request_url":"https://api.github.com/repos/dotnet/roslyn/pulls/24165","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/comments/165788129"},"html":{"href":"https://github.com/dotnet/roslyn/pull/24165#discussion_r165788129"},"pull_request":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/24165"}},"in_reply_to_id":165530929},"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn/pulls/24165","id":162281684,"html_url":"https://github.com/dotnet/roslyn/pull/24165","diff_url":"https://github.com/dotnet/roslyn/pull/24165.diff","patch_url":"https://github.com/dotnet/roslyn/pull/24165.patch","issue_url":"https://api.github.com/repos/dotnet/roslyn/issues/24165","number":24165,"state":"open","locked":false,"title":"[WIP] Remove IVisualStudioWorkspaceHost and related interfaces","user":{"login":"jasonmalinowski","id":201340,"avatar_url":"https://avatars3.githubusercontent.com/u/201340?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonmalinowski","html_url":"https://github.com/jasonmalinowski","followers_url":"https://api.github.com/users/jasonmalinowski/followers","following_url":"https://api.github.com/users/jasonmalinowski/following{/other_user}","gists_url":"https://api.github.com/users/jasonmalinowski/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonmalinowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonmalinowski/subscriptions","organizations_url":"https://api.github.com/users/jasonmalinowski/orgs","repos_url":"https://api.github.com/users/jasonmalinowski/repos","events_url":"https://api.github.com/users/jasonmalinowski/events{/privacy}","received_events_url":"https://api.github.com/users/jasonmalinowski/received_events","type":"User","site_admin":false},"body":"*THIS CHANGE IS A WORK IN PROGRESS, DO NOT REVIEW*\r\n\r\nThis interface was originally introduced to support CodeLens, when we needed the ability to create a Workspace that was out-of-proc but connected to the in-process project system interfaces. This created the abstraction of how we pushed updates to the workspace, and came with the rule that the VisualStudioProjectTracker was unable to ever touch a workspace directly.\r\n\r\nToday, that's not how we build our out-of-proc components. We now have an in-proc workspace, and we mirror that in-proc workspace via a pull model to the out-of-process workspace. This meant that the\r\ninterface was nearly pointless, except it was being used for the out-of-proc workspace setup to mirror some persistence settings over. Providing a new interface to do that directly is simpler and also\r\nmuch cheaper, as it doesn't come with the overhead of pushing workspace changes to the remote host that were being ignored.\r\n\r\nThis has the direct perf benefit of removing some delays around setting up the remote workspace since we're not computing useless data. It has longer-term benefits to aid in further refactorings, as we now have workspace updates going directly to the in-proc workspace, which we can start to do in a free-threaded manner.\r\n\r\n<details><summary>Ask Mode template not completed</summary>\r\n\r\n<!-- This template is not always required. If you aren't sure about whether it's needed or want help filling out the sections,\r\nsubmit the pull request and then ask us for help. :) -->\r\n\r\n### Customer scenario\r\n\r\nWhat does the customer do to get into this situation, and why do we think this\r\nis common enough to address for this release.  (Granted, sometimes this will be\r\nobvious \"Open project, VS crashes\" but in general, I need to understand how\r\ncommon a scenario is)\r\n\r\n### Bugs this fixes\r\n\r\n(either VSO or GitHub links)\r\n\r\n### Workarounds, if any\r\n\r\nAlso, why we think they are insufficient for RC vs. RC2, RC3, or RTW\r\n\r\n### Risk\r\n\r\nThis is generally a measure our how central the affected code is to adjacent\r\nscenarios and thus how likely your fix is to destabilize a broader area of code\r\n\r\n### Performance impact\r\n\r\n(with a brief justification for that assessment (e.g. \"Low perf impact because no extra allocations/no complexity changes\" vs. \"Low\")\r\n\r\n### Is this a regression from a previous update?\r\n\r\n### Root cause analysis\r\n\r\nHow did we miss it?  What tests are we adding to guard against it in the future?\r\n\r\n### How was the bug found?\r\n\r\n(E.g. customer reported it vs. ad hoc testing)\r\n\r\n### Test documentation updated?\r\n\r\nIf this is a new non-compiler feature or a significant improvement to an existing feature, update https://github.com/dotnet/roslyn/wiki/Manual-Testing once you know which release it is targeting.\r\n\r\n</details>\r\n","created_at":"2018-01-11T02:53:32Z","updated_at":"2018-02-02T23:39:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"20aa2fa4b12d105c12241755d66b1ff36bb175f8","assignee":{"login":"jasonmalinowski","id":201340,"avatar_url":"https://avatars3.githubusercontent.com/u/201340?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonmalinowski","html_url":"https://github.com/jasonmalinowski","followers_url":"https://api.github.com/users/jasonmalinowski/followers","following_url":"https://api.github.com/users/jasonmalinowski/following{/other_user}","gists_url":"https://api.github.com/users/jasonmalinowski/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonmalinowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonmalinowski/subscriptions","organizations_url":"https://api.github.com/users/jasonmalinowski/orgs","repos_url":"https://api.github.com/users/jasonmalinowski/repos","events_url":"https://api.github.com/users/jasonmalinowski/events{/privacy}","received_events_url":"https://api.github.com/users/jasonmalinowski/received_events","type":"User","site_admin":false},"assignees":[{"login":"jasonmalinowski","id":201340,"avatar_url":"https://avatars3.githubusercontent.com/u/201340?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonmalinowski","html_url":"https://github.com/jasonmalinowski","followers_url":"https://api.github.com/users/jasonmalinowski/followers","following_url":"https://api.github.com/users/jasonmalinowski/following{/other_user}","gists_url":"https://api.github.com/users/jasonmalinowski/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonmalinowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonmalinowski/subscriptions","organizations_url":"https://api.github.com/users/jasonmalinowski/orgs","repos_url":"https://api.github.com/users/jasonmalinowski/repos","events_url":"https://api.github.com/users/jasonmalinowski/events{/privacy}","received_events_url":"https://api.github.com/users/jasonmalinowski/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[{"name":"roslyn-ide","id":1781706,"slug":"roslyn-ide","description":"Roslyn IDE Team","privacy":"closed","url":"https://api.github.com/teams/1781706","members_url":"https://api.github.com/teams/1781706/members{/member}","repositories_url":"https://api.github.com/teams/1781706/repos","permission":"pull"}],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/roslyn/pulls/24165/commits","review_comments_url":"https://api.github.com/repos/dotnet/roslyn/pulls/24165/comments","review_comment_url":"https://api.github.com/repos/dotnet/roslyn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/roslyn/issues/24165/comments","statuses_url":"https://api.github.com/repos/dotnet/roslyn/statuses/4ee27c16c07e4a96033483fbebdd44551b40626d","head":{"label":"jasonmalinowski:remove-ivisualstudioworkspacehost","ref":"remove-ivisualstudioworkspacehost","sha":"4ee27c16c07e4a96033483fbebdd44551b40626d","user":{"login":"jasonmalinowski","id":201340,"avatar_url":"https://avatars3.githubusercontent.com/u/201340?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonmalinowski","html_url":"https://github.com/jasonmalinowski","followers_url":"https://api.github.com/users/jasonmalinowski/followers","following_url":"https://api.github.com/users/jasonmalinowski/following{/other_user}","gists_url":"https://api.github.com/users/jasonmalinowski/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonmalinowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonmalinowski/subscriptions","organizations_url":"https://api.github.com/users/jasonmalinowski/orgs","repos_url":"https://api.github.com/users/jasonmalinowski/repos","events_url":"https://api.github.com/users/jasonmalinowski/events{/privacy}","received_events_url":"https://api.github.com/users/jasonmalinowski/received_events","type":"User","site_admin":false},"repo":{"id":30048558,"name":"roslyn","full_name":"jasonmalinowski/roslyn","owner":{"login":"jasonmalinowski","id":201340,"avatar_url":"https://avatars3.githubusercontent.com/u/201340?v=4","gravatar_id":"","url":"https://api.github.com/users/jasonmalinowski","html_url":"https://github.com/jasonmalinowski","followers_url":"https://api.github.com/users/jasonmalinowski/followers","following_url":"https://api.github.com/users/jasonmalinowski/following{/other_user}","gists_url":"https://api.github.com/users/jasonmalinowski/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonmalinowski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonmalinowski/subscriptions","organizations_url":"https://api.github.com/users/jasonmalinowski/orgs","repos_url":"https://api.github.com/users/jasonmalinowski/repos","events_url":"https://api.github.com/users/jasonmalinowski/events{/privacy}","received_events_url":"https://api.github.com/users/jasonmalinowski/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jasonmalinowski/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/jasonmalinowski/roslyn","forks_url":"https://api.github.com/repos/jasonmalinowski/roslyn/forks","keys_url":"https://api.github.com/repos/jasonmalinowski/roslyn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jasonmalinowski/roslyn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jasonmalinowski/roslyn/teams","hooks_url":"https://api.github.com/repos/jasonmalinowski/roslyn/hooks","issue_events_url":"https://api.github.com/repos/jasonmalinowski/roslyn/issues/events{/number}","events_url":"https://api.github.com/repos/jasonmalinowski/roslyn/events","assignees_url":"https://api.github.com/repos/jasonmalinowski/roslyn/assignees{/user}","branches_url":"https://api.github.com/repos/jasonmalinowski/roslyn/branches{/branch}","tags_url":"https://api.github.com/repos/jasonmalinowski/roslyn/tags","blobs_url":"https://api.github.com/repos/jasonmalinowski/roslyn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jasonmalinowski/roslyn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jasonmalinowski/roslyn/git/refs{/sha}","trees_url":"https://api.github.com/repos/jasonmalinowski/roslyn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jasonmalinowski/roslyn/statuses/{sha}","languages_url":"https://api.github.com/repos/jasonmalinowski/roslyn/languages","stargazers_url":"https://api.github.com/repos/jasonmalinowski/roslyn/stargazers","contributors_url":"https://api.github.com/repos/jasonmalinowski/roslyn/contributors","subscribers_url":"https://api.github.com/repos/jasonmalinowski/roslyn/subscribers","subscription_url":"https://api.github.com/repos/jasonmalinowski/roslyn/subscription","commits_url":"https://api.github.com/repos/jasonmalinowski/roslyn/commits{/sha}","git_commits_url":"https://api.github.com/repos/jasonmalinowski/roslyn/git/commits{/sha}","comments_url":"https://api.github.com/repos/jasonmalinowski/roslyn/comments{/number}","issue_comment_url":"https://api.github.com/repos/jasonmalinowski/roslyn/issues/comments{/number}","contents_url":"https://api.github.com/repos/jasonmalinowski/roslyn/contents/{+path}","compare_url":"https://api.github.com/repos/jasonmalinowski/roslyn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jasonmalinowski/roslyn/merges","archive_url":"https://api.github.com/repos/jasonmalinowski/roslyn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jasonmalinowski/roslyn/downloads","issues_url":"https://api.github.com/repos/jasonmalinowski/roslyn/issues{/number}","pulls_url":"https://api.github.com/repos/jasonmalinowski/roslyn/pulls{/number}","milestones_url":"https://api.github.com/repos/jasonmalinowski/roslyn/milestones{/number}","notifications_url":"https://api.github.com/repos/jasonmalinowski/roslyn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jasonmalinowski/roslyn/labels{/name}","releases_url":"https://api.github.com/repos/jasonmalinowski/roslyn/releases{/id}","deployments_url":"https://api.github.com/repos/jasonmalinowski/roslyn/deployments","created_at":"2015-01-30T00:33:25Z","updated_at":"2016-11-08T00:55:06Z","pushed_at":"2018-02-02T23:27:52Z","git_url":"git://github.com/jasonmalinowski/roslyn.git","ssh_url":"git@github.com:jasonmalinowski/roslyn.git","clone_url":"https://github.com/jasonmalinowski/roslyn.git","svn_url":"https://github.com/jasonmalinowski/roslyn","homepage":"","size":259417,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:dev15.6.x","ref":"dev15.6.x","sha":"07eb95df510dd0e01377ccb8479d44c4d70b6194","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","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://avatars0.githubusercontent.com/u/9141961?v=4","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}","deployments_url":"https://api.github.com/repos/dotnet/roslyn/deployments","created_at":"2015-01-11T02:39:03Z","updated_at":"2018-02-02T18:31:59Z","pushed_at":"2018-02-02T23:38:58Z","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":277938,"stargazers_count":8778,"watchers_count":8778,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2124,"mirror_url":null,"archived":false,"open_issues_count":4350,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":2124,"open_issues":4350,"watchers":8778,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/24165"},"html":{"href":"https://github.com/dotnet/roslyn/pull/24165"},"issue":{"href":"https://api.github.com/repos/dotnet/roslyn/issues/24165"},"comments":{"href":"https://api.github.com/repos/dotnet/roslyn/issues/24165/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/24165/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/roslyn/pulls/24165/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/roslyn/statuses/4ee27c16c07e4a96033483fbebdd44551b40626d"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"CyrusNajmabadi"}}