{"action":"created","comment":{"url":"https://api.github.com/repos/aspnet/Docs/pulls/comments/131938836","pull_request_review_id":54967080,"id":131938836,"diff_hunk":"@@ -0,0 +1,146 @@\n+---\n+title: HttpSys web server implementation in ASP.NET Core\n+author: rick-anderson\n+description: Introduces HttpSys, a web server for ASP.NET Core on Windows. Built on the Http.Sys kernel mode driver, HttpSys is an alternative to Kestrel that can be used for direct connection to the Internet without IIS.\n+keywords: ASP.NET Core, HttpSys, HttpListener, url prefixes, SSL \n+ms.author: riande\n+manager: wpickett\n+ms.date: 08/07/2017\n+ms.topic: article\n+ms.assetid: 0a7286e4-6428-424e-b5c4-5c98815cf61c\n+ms.technology: aspnet\n+ms.prod: asp.net-core\n+uid: fundamentals/servers/HttpSys\n+---\n+# HttpSys web server implementation in ASP.NET Core\n+\n+By [Tom Dykstra](http://github.com/tdykstra) and [Chris Ross](https://github.com/Tratcher)\n+\n+> [!NOTE]\n+> This topic applies only to ASP.NET Core 2.0 and later. In earlier versions of ASP.NET Core, HttpSys is named [WebListener](WebListener.md).\n+\n+HttpSys is a [web server for ASP.NET Core](index.md) that runs only on Windows. It's built on the [Http.Sys kernel mode driver](https://msdn.microsoft.com/library/windows/desktop/aa364510.aspx). HttpSys is an alternative to [Kestrel](kestrel.md) that offers some features that Kestel doesn't. **HttpSys can't be used with IIS or IIS Express, as it isn't compatible with the [ASP.NET Core Module](aspnet-core-module.md).**\n+\n+HttpSys supports the following features:\n+\n+- [Windows Authentication](xref:security/authentication/windowsauth)\n+- Port sharing\n+- HTTPS with SNI\n+- HTTP/2 over TLS (Windows 10)\n+- Direct file transmission\n+- Response caching\n+- WebSockets (Windows 8)\n+\n+Supported Windows versions:\n+\n+- Windows 7 and Windows Server 2008 R2 and later\n+\n+[View or download sample code](https://github.com/aspnet/Docs/tree/master/aspnetcore/fundamentals/servers/httpsys/sample)\n+\n+## When to use HttpSys\n+\n+HttpSys is useful for deployments where you need to expose the server directly to the Internet without using IIS.\n+\n+![HttpSys to Internet](httpsys/_static/httpsys-to-internet.png)\n+\n+Because it's built on Http.Sys, HttpSys doesn't require a reverse proxy server for protection against attacks. Http.Sys is mature technology that protects against many kinds of attacks and provides the robustness, security, and scalability of a full-featured web server. IIS itself runs as an HTTP listener on top of Http.Sys. \n+\n+HttpSys is also a good choice for internal deployments when you need one of the features it offers that you can't get by using Kestrel.\n+\n+![HttpSys to Internet](httpsys/_static/httpsys-to-internal.png)\n+\n+## How to use HttpSys\n+\n+Here's an overview of setup tasks for the host OS and your ASP.NET Core application.\n+\n+### Configure Windows Server\n+\n+* Install the version of .NET that your application requires, such as [.NET Core](https://go.microsoft.com/fwlink/?LinkID=827524) or .NET Framework.\n+\n+* Preregister URL prefixes to bind to HttpSys, and set up SSL certificates\n+\n+   If you don't preregister URL prefixes in Windows, you have to run your application with administrator privileges. The only exception is if you bind to localhost using HTTP (not HTTPS) with a port number greater than 1024; in that case administrator privileges aren't required.\n+\n+   For details, see [How to preregister prefixes and configure SSL](#preregister-url-prefixes-and-configure-ssl) later in this article.\n+\n+* Open firewall ports to allow traffic to reach HttpSys.\n+\n+   You can use netsh.exe or [PowerShell cmdlets](https://technet.microsoft.com/library/jj554906).\n+\n+There are also [Http.Sys registry settings](https://support.microsoft.com/kb/820129).\n+\n+### Configure your ASP.NET Core application\n+\n+* No package install is needed if you use the [Microsoft.AspNetCore.All](xref:fundamentals/metapackage) metapackage. The [Microsoft.AspNetCore.Server.HttpSys](https://www.nuget.org/packages/Microsoft.AspNetCore.Server.HttpSys/) package is included in the metapackage.\n+\n+* Call the [`UseHttpSys`](http://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNetCore/Hosting/WebHostBuilderKestrelExtensions/index.html#Microsoft.AspNetCore.Hosting.WebHostBuilderHttpSysExtensions.UseHttpSys.md) extension method on [WebHostBuilder](http://docs.asp.net/projects/api/en/latest/autoapi/Microsoft/AspNetCore/Hosting/WebHostBuilder/index.html#Microsoft.AspNetCore.Hosting.WebHostBuilder.md) in your `Main` method, specifying any HttpSys [options](https://github.com/aspnet/HttpSysServer/blob/rel/2.0.0/src/Microsoft.AspNetCore.Server.HttpSys/HttpSysOptions.cs) that you need, as shown in the following example:\n+\n+  [!code-csharp[](HttpSys/sample/Program.cs?name=snippet_Main&highlight=13-18)]\n+\n+* Configure URLs and ports to listen on \n+\n+  By default ASP.NET Core binds to `http://localhost:5000`. To configure URL prefixes and ports, you can use the `UseUrls` extension method, the `urls` command-line argument, or the `UrlPrefixes` property on [HttpSysOptions](https://github.com/aspnet/HttpSysServer/blob/rel/2.0.0/src/Microsoft.AspNetCore.Server.HttpSys/HttpSysOptions.cs). The preceding code example uses `UrlPrefixes`.\n+\n+  An advantage of `UrlPrefixes` is that you get an error message immediately if you try to add a prefix that is formatted wrong. An advantage of `UseUrls` is that you can more easily switch between Kestrel and HttpSys. (But this applies only if you don't use SSL, because you can't use SSL with `UseUrls` and Kestrel.)\n+\n+  If you use both `UseUrls` and `UrlPrefixes`, the settings in `UrlPrefixes` override the ones in `UseUrls`. For more information, see [Hosting](../../fundamentals/hosting.md).\n+\n+  HttpSys uses the [Http.Sys prefix string formats](https://msdn.microsoft.com/library/windows/desktop/aa364698.aspx). There are no prefix string format requirements that are specific to HttpSys.\n+\n+  > [!NOTE]\n+  > Make sure that you specify the same prefix strings in `UseUrls` or `UrlPrefixes` that you preregister on the server. \n+\n+* Make sure your application is not configured to run IIS or IIS Express.\n+\n+  In Visual Studio, the default launch profile is for IIS Express.  To run the project as a console application you have to manually change the selected profile, as shown in the following screen shot.\n+\n+  ![Select console app profile](HttpSys/_static/vs-choose-profile.png)\n+\n+## Preregister URL prefixes and configure SSL\n+\n+Both IIS and HttpSys rely on the underlying Http.Sys kernel mode driver to listen for requests and do initial processing. In IIS, the management UI gives you a relatively easy way to configure everything. However, if you're using HttpSys you need to configure Http.Sys yourself. The built-in tool for doing that is netsh.exe. \n+\n+The most common tasks you need to use netsh.exe for are reserving URL prefixes and assigning SSL certificates.\n+\n+NetSh.exe is not an easy tool to use for beginners. The following example shows the bare minimum needed to reserve URL prefixes for ports 80 and 443:\n+\n+```console\n+netsh http add urlacl url=http://+:80/ user=Users\n+netsh http add urlacl url=https://+:443/ user=Users\n+```\n+\n+The following example shows how to assign an SSL certificate:\n+\n+```console\n+netsh http add sslcert ipport=0.0.0.0:443 certhash=MyCertHash_Here appid={00000000-0000-0000-0000-000000000000}\".\n+```\n+\n+Here is the official reference documentation:\n+\n+* [Netsh Commands for Hypertext Transfer Protocol (HTTP)](http://technet.microsoft.com/library/cc725882.aspx)\n+* [UrlPrefix Strings](https://msdn.microsoft.com/library/windows/desktop/aa364698.aspx)\n+\n+The following resources provide detailed instructions for several scenarios. Articles that refer to `HttpListener` apply equally to `HttpSys`, as both are based on Http.Sys.\n+\n+* [How to: Configure a Port with an SSL Certificate](http://msdn.microsoft.com/library/ms733791.aspx)\n+* [HTTPS Communication - HttpListener based Hosting and Client Certification](http://sunshaking.blogspot.com/2012/11/https-communication-httplistener-based.html) This is a third-party blog and is fairly old but still has useful information.\n+* [How To: Walkthrough Using HttpListener or Http Server unmanaged code (C++) as an SSL Simple Server](http://blogs.msdn.com/b/jpsanders/archive/2009/09/29/walkthrough-using-httplistener-as-an-ssl-simple-server.aspx) This too is an older blog with useful information.\n+* [How Do I Set Up A .NET Core HttpSys With SSL?](https://blogs.msdn.microsoft.com/timomta/2016/11/04/how-do-i-set-up-a-net-core-HttpSys-with-ssl/)\n+\n+Here are some third-party tools that can be easier to use than the netsh.exe command line. These are not provided by or endorsed by Microsoft. The tools run as administrator by default, since netsh.exe itself requires administrator privileges.\n+\n+* [HttpSysManager](http://httpsysmanager.codeplex.com/) provides UI for listing and configuring SSL certificates and options, prefix reservations, and certificate trust lists. \n+* [HttpConfig](http://www.stevestechspot.com/ABetterHttpcfg.aspx) lets you list or configure SSL certificates and URL prefixes. The UI is more refined than HttpSysManager and exposes a few more configuration options, but otherwise it provides similar functionality. It cannot create a new certificate trust list (CTL), but can assign existing ones.\n+\n+For generating self-signed SSL certificates, Microsoft provides command-line tools: [MakeCert.exe](https://msdn.microsoft.com/library/windows/desktop/aa386968) and the PowerShell cmdlet [New-SelfSignedCertificate](https://technet.microsoft.com/library/hh848633). There are also third-party UI tools that make it easier for you to generate self-signed SSL certificates:","path":"aspnetcore/fundamentals/servers/httpsys.md","position":135,"original_position":135,"commit_id":"25c7ce0c2ba60261dea02bdb7e86a7b831e782cc","original_commit_id":"57351660477fa4a4f79386f9265bee410622eccf","user":{"login":"tdykstra","id":1569635,"avatar_url":"https://avatars2.githubusercontent.com/u/1569635?v=4","gravatar_id":"","url":"https://api.github.com/users/tdykstra","html_url":"https://github.com/tdykstra","followers_url":"https://api.github.com/users/tdykstra/followers","following_url":"https://api.github.com/users/tdykstra/following{/other_user}","gists_url":"https://api.github.com/users/tdykstra/gists{/gist_id}","starred_url":"https://api.github.com/users/tdykstra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tdykstra/subscriptions","organizations_url":"https://api.github.com/users/tdykstra/orgs","repos_url":"https://api.github.com/users/tdykstra/repos","events_url":"https://api.github.com/users/tdykstra/events{/privacy}","received_events_url":"https://api.github.com/users/tdykstra/received_events","type":"User","site_admin":false},"body":"That's correct, but here it's a link and we don't generally put extra styling on links.","created_at":"2017-08-08T15:02:28Z","updated_at":"2017-08-08T15:02:28Z","html_url":"https://github.com/aspnet/Docs/pull/3875#discussion_r131938836","pull_request_url":"https://api.github.com/repos/aspnet/Docs/pulls/3875","_links":{"self":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/comments/131938836"},"html":{"href":"https://github.com/aspnet/Docs/pull/3875#discussion_r131938836"},"pull_request":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/3875"}}},"pull_request":{"url":"https://api.github.com/repos/aspnet/Docs/pulls/3875","id":134003587,"html_url":"https://github.com/aspnet/Docs/pull/3875","diff_url":"https://github.com/aspnet/Docs/pull/3875.diff","patch_url":"https://github.com/aspnet/Docs/pull/3875.patch","issue_url":"https://api.github.com/repos/aspnet/Docs/issues/3875","number":3875,"state":"open","locked":false,"title":"Kestrel and WebListener/HttpSys - 2.0 changes","user":{"login":"tdykstra","id":1569635,"avatar_url":"https://avatars2.githubusercontent.com/u/1569635?v=4","gravatar_id":"","url":"https://api.github.com/users/tdykstra","html_url":"https://github.com/tdykstra","followers_url":"https://api.github.com/users/tdykstra/followers","following_url":"https://api.github.com/users/tdykstra/following{/other_user}","gists_url":"https://api.github.com/users/tdykstra/gists{/gist_id}","starred_url":"https://api.github.com/users/tdykstra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tdykstra/subscriptions","organizations_url":"https://api.github.com/users/tdykstra/orgs","repos_url":"https://api.github.com/users/tdykstra/repos","events_url":"https://api.github.com/users/tdykstra/events{/privacy}","received_events_url":"https://api.github.com/users/tdykstra/received_events","type":"User","site_admin":false},"body":"Fixes #3385 Kestrel\r\nFixes #2648 WebListener/HttpSys\r\n\r\nReview URLs\r\n[Servers](https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/?branch=td-kestrel&tabs=aspnetcore2x)\r\n[Kestrel](https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?branch=td-kestrel&tabs=aspnetcore2x)\r\n[ANCM](https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?branch=td-kestrel&tabs=aspnetcore2x)\r\n[HttpSys](https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/httpsys?branch=td-kestrel)\r\n[WebListener](https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/weblistener?branch=td-kestrel)\r\n[Hosting fundamentals](https://review.docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/httpsys?branch=td-kestrel)\r\n[Hosting and deployment](https://review.docs.microsoft.com/en-us/aspnet/core/publishing/?branch=td-kestrel&tabs=aspnetcore2x)\r\n\r\n","created_at":"2017-08-03T17:49:42Z","updated_at":"2017-08-08T15:02:28Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a60ec578d91a978c104273b25242345116a3d563","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/aspnet/Docs/pulls/3875/commits","review_comments_url":"https://api.github.com/repos/aspnet/Docs/pulls/3875/comments","review_comment_url":"https://api.github.com/repos/aspnet/Docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/aspnet/Docs/issues/3875/comments","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/25c7ce0c2ba60261dea02bdb7e86a7b831e782cc","head":{"label":"aspnet:td-kestrel","ref":"td-kestrel","sha":"25c7ce0c2ba60261dea02bdb7e86a7b831e782cc","user":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars3.githubusercontent.com/u/6476660?v=4","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"repo":{"id":28239455,"name":"Docs","full_name":"aspnet/Docs","owner":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars3.githubusercontent.com/u/6476660?v=4","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aspnet/Docs","description":"Documentation for ASP.NET and ASP.NET Core","fork":false,"url":"https://api.github.com/repos/aspnet/Docs","forks_url":"https://api.github.com/repos/aspnet/Docs/forks","keys_url":"https://api.github.com/repos/aspnet/Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aspnet/Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aspnet/Docs/teams","hooks_url":"https://api.github.com/repos/aspnet/Docs/hooks","issue_events_url":"https://api.github.com/repos/aspnet/Docs/issues/events{/number}","events_url":"https://api.github.com/repos/aspnet/Docs/events","assignees_url":"https://api.github.com/repos/aspnet/Docs/assignees{/user}","branches_url":"https://api.github.com/repos/aspnet/Docs/branches{/branch}","tags_url":"https://api.github.com/repos/aspnet/Docs/tags","blobs_url":"https://api.github.com/repos/aspnet/Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aspnet/Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aspnet/Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/aspnet/Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/aspnet/Docs/languages","stargazers_url":"https://api.github.com/repos/aspnet/Docs/stargazers","contributors_url":"https://api.github.com/repos/aspnet/Docs/contributors","subscribers_url":"https://api.github.com/repos/aspnet/Docs/subscribers","subscription_url":"https://api.github.com/repos/aspnet/Docs/subscription","commits_url":"https://api.github.com/repos/aspnet/Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/aspnet/Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/aspnet/Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/aspnet/Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/aspnet/Docs/contents/{+path}","compare_url":"https://api.github.com/repos/aspnet/Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aspnet/Docs/merges","archive_url":"https://api.github.com/repos/aspnet/Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aspnet/Docs/downloads","issues_url":"https://api.github.com/repos/aspnet/Docs/issues{/number}","pulls_url":"https://api.github.com/repos/aspnet/Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/aspnet/Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/aspnet/Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aspnet/Docs/labels{/name}","releases_url":"https://api.github.com/repos/aspnet/Docs/releases{/id}","deployments_url":"https://api.github.com/repos/aspnet/Docs/deployments","created_at":"2014-12-19T17:38:02Z","updated_at":"2017-08-08T12:49:33Z","pushed_at":"2017-08-08T15:00:52Z","git_url":"git://github.com/aspnet/Docs.git","ssh_url":"git@github.com:aspnet/Docs.git","clone_url":"https://github.com/aspnet/Docs.git","svn_url":"https://github.com/aspnet/Docs","homepage":"https://docs.microsoft.com/aspnet","size":508109,"stargazers_count":1477,"watchers_count":1477,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3594,"mirror_url":null,"open_issues_count":249,"forks":3594,"open_issues":249,"watchers":1477,"default_branch":"master"}},"base":{"label":"aspnet:master","ref":"master","sha":"d182d04934c2b35cc61de8ff00b212914965ad1c","user":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars3.githubusercontent.com/u/6476660?v=4","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"repo":{"id":28239455,"name":"Docs","full_name":"aspnet/Docs","owner":{"login":"aspnet","id":6476660,"avatar_url":"https://avatars3.githubusercontent.com/u/6476660?v=4","gravatar_id":"","url":"https://api.github.com/users/aspnet","html_url":"https://github.com/aspnet","followers_url":"https://api.github.com/users/aspnet/followers","following_url":"https://api.github.com/users/aspnet/following{/other_user}","gists_url":"https://api.github.com/users/aspnet/gists{/gist_id}","starred_url":"https://api.github.com/users/aspnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aspnet/subscriptions","organizations_url":"https://api.github.com/users/aspnet/orgs","repos_url":"https://api.github.com/users/aspnet/repos","events_url":"https://api.github.com/users/aspnet/events{/privacy}","received_events_url":"https://api.github.com/users/aspnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/aspnet/Docs","description":"Documentation for ASP.NET and ASP.NET Core","fork":false,"url":"https://api.github.com/repos/aspnet/Docs","forks_url":"https://api.github.com/repos/aspnet/Docs/forks","keys_url":"https://api.github.com/repos/aspnet/Docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aspnet/Docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aspnet/Docs/teams","hooks_url":"https://api.github.com/repos/aspnet/Docs/hooks","issue_events_url":"https://api.github.com/repos/aspnet/Docs/issues/events{/number}","events_url":"https://api.github.com/repos/aspnet/Docs/events","assignees_url":"https://api.github.com/repos/aspnet/Docs/assignees{/user}","branches_url":"https://api.github.com/repos/aspnet/Docs/branches{/branch}","tags_url":"https://api.github.com/repos/aspnet/Docs/tags","blobs_url":"https://api.github.com/repos/aspnet/Docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aspnet/Docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aspnet/Docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/aspnet/Docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aspnet/Docs/statuses/{sha}","languages_url":"https://api.github.com/repos/aspnet/Docs/languages","stargazers_url":"https://api.github.com/repos/aspnet/Docs/stargazers","contributors_url":"https://api.github.com/repos/aspnet/Docs/contributors","subscribers_url":"https://api.github.com/repos/aspnet/Docs/subscribers","subscription_url":"https://api.github.com/repos/aspnet/Docs/subscription","commits_url":"https://api.github.com/repos/aspnet/Docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/aspnet/Docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/aspnet/Docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/aspnet/Docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/aspnet/Docs/contents/{+path}","compare_url":"https://api.github.com/repos/aspnet/Docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aspnet/Docs/merges","archive_url":"https://api.github.com/repos/aspnet/Docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aspnet/Docs/downloads","issues_url":"https://api.github.com/repos/aspnet/Docs/issues{/number}","pulls_url":"https://api.github.com/repos/aspnet/Docs/pulls{/number}","milestones_url":"https://api.github.com/repos/aspnet/Docs/milestones{/number}","notifications_url":"https://api.github.com/repos/aspnet/Docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aspnet/Docs/labels{/name}","releases_url":"https://api.github.com/repos/aspnet/Docs/releases{/id}","deployments_url":"https://api.github.com/repos/aspnet/Docs/deployments","created_at":"2014-12-19T17:38:02Z","updated_at":"2017-08-08T12:49:33Z","pushed_at":"2017-08-08T15:00:52Z","git_url":"git://github.com/aspnet/Docs.git","ssh_url":"git@github.com:aspnet/Docs.git","clone_url":"https://github.com/aspnet/Docs.git","svn_url":"https://github.com/aspnet/Docs","homepage":"https://docs.microsoft.com/aspnet","size":508109,"stargazers_count":1477,"watchers_count":1477,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3594,"mirror_url":null,"open_issues_count":249,"forks":3594,"open_issues":249,"watchers":1477,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/3875"},"html":{"href":"https://github.com/aspnet/Docs/pull/3875"},"issue":{"href":"https://api.github.com/repos/aspnet/Docs/issues/3875"},"comments":{"href":"https://api.github.com/repos/aspnet/Docs/issues/3875/comments"},"review_comments":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/3875/comments"},"review_comment":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/aspnet/Docs/pulls/3875/commits"},"statuses":{"href":"https://api.github.com/repos/aspnet/Docs/statuses/25c7ce0c2ba60261dea02bdb7e86a7b831e782cc"}}}}
{"actor":{"display_login":"tdykstra"}}