{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/comments/177824290","pull_request_review_id":107767313,"id":177824290,"diff_hunk":"@@ -0,0 +1,150 @@\n+﻿namespace Microsoft.ApplicationInsights.WindowsServer\n+{\n+    using System;\n+    using System.Collections.Generic;\n+    using Microsoft.ApplicationInsights.Extensibility;\n+    using Microsoft.ApplicationInsights.Extensibility.Implementation;\n+    using Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing;\n+    using Microsoft.ApplicationInsights.WindowsServer.Implementation;\n+\n+    /// <summary>\n+    /// Provides default values for the heartbeat feature of Application Insights that\n+    /// are specific to Azure App Services (Web Apps, Functions, etc...).\n+    /// </summary>\n+    internal class AppServicesHeartbeatTelemetryModule : ITelemetryModule, IDisposable\n+    {\n+        internal const int SiteNameMaxLength = 256;\n+        internal const int StampNameMaxLength = 256;\n+        internal const int HostNameMaxLength = 256;\n+\n+        /// <summary>\n+        /// Environment variables and the Application Insights heartbeat field names that accompany them.\n+        /// </summary>\n+        internal static readonly KeyValuePair<string, string>[] WebHeartbeatPropertyNameEnvVarMap = new KeyValuePair<string, string>[]\n+        {\n+            new KeyValuePair<string, string>(\"appSrv_SiteName\", \"WEBSITE_SITE_NAME\"),\n+            new KeyValuePair<string, string>(\"appSrv_wsStamp\", \"WEBSITE_HOME_STAMPNAME\"),\n+            new KeyValuePair<string, string>(\"appSrv_wsHost\", \"WEBSITE_HOSTNAME\")\n+        };\n+\n+        private static AppServicesHeartbeatTelemetryModule instance;\n+        private object lockObject = new object();\n+        private bool isInitialized = false;\n+\n+        /// <summary>\n+        /// Initializes a new instance of the<see cref=\"AppServicesHeartbeatTelemetryModule\" /> class.\n+        /// </summary>\n+        internal AppServicesHeartbeatTelemetryModule()\n+        {\n+            AppServicesHeartbeatTelemetryModule.Instance = this;\n+        }\n+\n+        /// <summary>\n+        /// Gets a value to provide internal access to the only instance of this class that *should* be available.\n+        /// </summary>\n+        internal static AppServicesHeartbeatTelemetryModule Instance\n+        {\n+            get => AppServicesHeartbeatTelemetryModule.instance;\n+            private set => AppServicesHeartbeatTelemetryModule.instance = value;\n+        }\n+\n+        /// <summary>\n+        /// Initialize the default heartbeat provider for Azure App Services. This module\n+        /// looks for specific environment variables and sets them into the heartbeat \n+        /// properties for Application Insights, if they exist.\n+        /// </summary>\n+        /// <param name=\"configuration\">Unused parameter.</param>\n+        public void Initialize(TelemetryConfiguration configuration)\n+        {\n+            // Core SDK creates 1 instance of a module but calls Initialize multiple times\n+            if (!this.isInitialized)\n+            {\n+                lock (this.lockObject)\n+                {\n+                    if (!this.isInitialized)\n+                    {\n+                        this.AddAppServiceEnvironmentVariablesToHeartbeat(this.GetHeartbeatPropertyManager(), false);\n+\n+                        this.isInitialized = true;\n+                    }\n+                }\n+            }\n+        }\n+\n+        /// <summary>\n+        /// Ensure we've cleaned up our static Instance.\n+        /// </summary>\n+        public void Dispose()\n+        {\n+            // ensure our Instance variable is not kept around.\n+            AppServicesHeartbeatTelemetryModule.instance = null;\n+        }\n+\n+        /// <summary>\n+        /// Signal the AppServicesHeartbeatTelemetryModule to update the values of the \n+        /// Environment variables we use in our heartbeat payload.\n+        /// </summary>\n+        internal void UpdateHeartbeatWithAppServiceEnvVarValues()\n+        {\n+            if (this.isInitialized)\n+            {\n+                this.AddAppServiceEnvironmentVariablesToHeartbeat(this.GetHeartbeatPropertyManager(), isUpdateOperation: true);\n+            }\n+        }\n+\n+        private IHeartbeatPropertyManager GetHeartbeatPropertyManager()\n+        {\n+            IHeartbeatPropertyManager hbeatManager = null;\n+            var telemetryModules = TelemetryModules.Instance;\n+\n+            try\n+            {\n+                foreach (var module in telemetryModules.Modules)\n+                {\n+                    if (module is IHeartbeatPropertyManager hman)\n+                    {\n+                        hbeatManager = hman;\n+                    }\n+                }\n+            }\n+            catch (Exception hearbeatManagerAccessException)\n+            {\n+                WindowsServerEventSource.Log.HeartbeatManagerAccessFailure(hearbeatManagerAccessException.Message);\n+            }\n+\n+            return hbeatManager;\n+        }\n+\n+        private void AddAppServiceEnvironmentVariablesToHeartbeat(IHeartbeatPropertyManager hbeatManager, bool isUpdateOperation = false)\n+        {\n+            var telemetryModules = TelemetryModules.Instance;\n+            Dictionary<string, string> hbeatProps = new Dictionary<string, string>();\n+\n+            foreach (var kvp in WebHeartbeatPropertyNameEnvVarMap)\n+            {\n+                try\n+                {\n+                    // get the variable, then expand it (otherwise we get the name we queried for in the value)\n+                    string hbeatValue = Environment.GetEnvironmentVariable(kvp.Value);\n+                    if (!string.IsNullOrEmpty(hbeatValue))\n+                    {\n+                        hbeatValue = Environment.ExpandEnvironmentVariables(hbeatValue);\n+                        string hbeatKey = kvp.Key.ToString();\n+                        if (isUpdateOperation)\n+                        {\n+                            hbeatManager.SetHeartbeatProperty(hbeatKey, hbeatValue);","path":"Src/WindowsServer/WindowsServer.Shared/AppServicesHeartbeatTelemetryModule.cs","position":135,"original_position":135,"commit_id":"f2bd43678bbaecf56434c9b2dabc92b49e365428","original_commit_id":"f2bd43678bbaecf56434c9b2dabc92b49e365428","user":{"login":"SergeyKanzhelev","id":9950081,"avatar_url":"https://avatars2.githubusercontent.com/u/9950081?v=4","gravatar_id":"","url":"https://api.github.com/users/SergeyKanzhelev","html_url":"https://github.com/SergeyKanzhelev","followers_url":"https://api.github.com/users/SergeyKanzhelev/followers","following_url":"https://api.github.com/users/SergeyKanzhelev/following{/other_user}","gists_url":"https://api.github.com/users/SergeyKanzhelev/gists{/gist_id}","starred_url":"https://api.github.com/users/SergeyKanzhelev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SergeyKanzhelev/subscriptions","organizations_url":"https://api.github.com/users/SergeyKanzhelev/orgs","repos_url":"https://api.github.com/users/SergeyKanzhelev/repos","events_url":"https://api.github.com/users/SergeyKanzhelev/events{/privacy}","received_events_url":"https://api.github.com/users/SergeyKanzhelev/received_events","type":"User","site_admin":false},"body":"Would you expect `hbeatManager` to be `null` ever?","created_at":"2018-03-28T17:15:28Z","updated_at":"2018-03-28T17:17:53Z","html_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/pull/869#discussion_r177824290","pull_request_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/comments/177824290"},"html":{"href":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/pull/869#discussion_r177824290"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869","id":177890219,"html_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/pull/869","diff_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/pull/869.diff","patch_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/pull/869.patch","issue_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/869","number":869,"state":"open","locked":false,"title":"[Do Not Merge] Add Heartbeat properties for App Services","user":{"login":"d3r3kk","id":11466735,"avatar_url":"https://avatars0.githubusercontent.com/u/11466735?v=4","gravatar_id":"","url":"https://api.github.com/users/d3r3kk","html_url":"https://github.com/d3r3kk","followers_url":"https://api.github.com/users/d3r3kk/followers","following_url":"https://api.github.com/users/d3r3kk/following{/other_user}","gists_url":"https://api.github.com/users/d3r3kk/gists{/gist_id}","starred_url":"https://api.github.com/users/d3r3kk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d3r3kk/subscriptions","organizations_url":"https://api.github.com/users/d3r3kk/orgs","repos_url":"https://api.github.com/users/d3r3kk/repos","events_url":"https://api.github.com/users/d3r3kk/events{/privacy}","received_events_url":"https://api.github.com/users/d3r3kk/received_events","type":"User","site_admin":false},"body":"Fix Issue #868.\r\nAdd heartbeat properties when App Services environment is detected. Keep App Services environment in sync using existing telemetry initializer used for same purpose.\r\n\r\n- [ ] I ran Unit Tests locally.\r\n**NOTE:** I need to follow up with some unit tests / functional tests here. Just getting the PR evaluation started before testing is complete...\r\n\r\n- [x] Changes in public surface reviewed\r\n   - No change to public API\r\n- [x] Design discussion issue #868\r\n- [x] CHANGELOG.md updated with one line description of the fix, and a link to the original issue.","created_at":"2018-03-27T23:14:06Z","updated_at":"2018-03-28T17:17:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e692835a318da868ec0280202605dcb67c0cdd39","assignee":{"login":"d3r3kk","id":11466735,"avatar_url":"https://avatars0.githubusercontent.com/u/11466735?v=4","gravatar_id":"","url":"https://api.github.com/users/d3r3kk","html_url":"https://github.com/d3r3kk","followers_url":"https://api.github.com/users/d3r3kk/followers","following_url":"https://api.github.com/users/d3r3kk/following{/other_user}","gists_url":"https://api.github.com/users/d3r3kk/gists{/gist_id}","starred_url":"https://api.github.com/users/d3r3kk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d3r3kk/subscriptions","organizations_url":"https://api.github.com/users/d3r3kk/orgs","repos_url":"https://api.github.com/users/d3r3kk/repos","events_url":"https://api.github.com/users/d3r3kk/events{/privacy}","received_events_url":"https://api.github.com/users/d3r3kk/received_events","type":"User","site_admin":false},"assignees":[{"login":"d3r3kk","id":11466735,"avatar_url":"https://avatars0.githubusercontent.com/u/11466735?v=4","gravatar_id":"","url":"https://api.github.com/users/d3r3kk","html_url":"https://github.com/d3r3kk","followers_url":"https://api.github.com/users/d3r3kk/followers","following_url":"https://api.github.com/users/d3r3kk/following{/other_user}","gists_url":"https://api.github.com/users/d3r3kk/gists{/gist_id}","starred_url":"https://api.github.com/users/d3r3kk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d3r3kk/subscriptions","organizations_url":"https://api.github.com/users/d3r3kk/orgs","repos_url":"https://api.github.com/users/d3r3kk/repos","events_url":"https://api.github.com/users/d3r3kk/events{/privacy}","received_events_url":"https://api.github.com/users/d3r3kk/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"cijothomas","id":5232798,"avatar_url":"https://avatars3.githubusercontent.com/u/5232798?v=4","gravatar_id":"","url":"https://api.github.com/users/cijothomas","html_url":"https://github.com/cijothomas","followers_url":"https://api.github.com/users/cijothomas/followers","following_url":"https://api.github.com/users/cijothomas/following{/other_user}","gists_url":"https://api.github.com/users/cijothomas/gists{/gist_id}","starred_url":"https://api.github.com/users/cijothomas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cijothomas/subscriptions","organizations_url":"https://api.github.com/users/cijothomas/orgs","repos_url":"https://api.github.com/users/cijothomas/repos","events_url":"https://api.github.com/users/cijothomas/events{/privacy}","received_events_url":"https://api.github.com/users/cijothomas/received_events","type":"User","site_admin":false},{"login":"Dmitry-Matveev","id":12158043,"avatar_url":"https://avatars0.githubusercontent.com/u/12158043?v=4","gravatar_id":"","url":"https://api.github.com/users/Dmitry-Matveev","html_url":"https://github.com/Dmitry-Matveev","followers_url":"https://api.github.com/users/Dmitry-Matveev/followers","following_url":"https://api.github.com/users/Dmitry-Matveev/following{/other_user}","gists_url":"https://api.github.com/users/Dmitry-Matveev/gists{/gist_id}","starred_url":"https://api.github.com/users/Dmitry-Matveev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dmitry-Matveev/subscriptions","organizations_url":"https://api.github.com/users/Dmitry-Matveev/orgs","repos_url":"https://api.github.com/users/Dmitry-Matveev/repos","events_url":"https://api.github.com/users/Dmitry-Matveev/events{/privacy}","received_events_url":"https://api.github.com/users/Dmitry-Matveev/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":272772339,"url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"milestone":{"url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/milestones/31","html_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/milestone/31","labels_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/milestones/31/labels","id":3021141,"number":31,"title":"2.6-Beta3","description":"","creator":{"login":"Dmitry-Matveev","id":12158043,"avatar_url":"https://avatars0.githubusercontent.com/u/12158043?v=4","gravatar_id":"","url":"https://api.github.com/users/Dmitry-Matveev","html_url":"https://github.com/Dmitry-Matveev","followers_url":"https://api.github.com/users/Dmitry-Matveev/followers","following_url":"https://api.github.com/users/Dmitry-Matveev/following{/other_user}","gists_url":"https://api.github.com/users/Dmitry-Matveev/gists{/gist_id}","starred_url":"https://api.github.com/users/Dmitry-Matveev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Dmitry-Matveev/subscriptions","organizations_url":"https://api.github.com/users/Dmitry-Matveev/orgs","repos_url":"https://api.github.com/users/Dmitry-Matveev/repos","events_url":"https://api.github.com/users/Dmitry-Matveev/events{/privacy}","received_events_url":"https://api.github.com/users/Dmitry-Matveev/received_events","type":"User","site_admin":false},"open_issues":22,"closed_issues":8,"state":"open","created_at":"2018-01-08T21:48:24Z","updated_at":"2018-03-27T23:15:34Z","due_on":"2018-04-01T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869/commits","review_comments_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869/comments","review_comment_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/869/comments","statuses_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/statuses/f2bd43678bbaecf56434c9b2dabc92b49e365428","head":{"label":"Microsoft:dekeeler/heartbeat-appservices","ref":"dekeeler/heartbeat-appservices","sha":"f2bd43678bbaecf56434c9b2dabc92b49e365428","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":44223665,"name":"ApplicationInsights-dotnet-server","full_name":"Microsoft/ApplicationInsights-dotnet-server","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server","description":"Microsoft Application Insights for .NET Web Applications","fork":false,"url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server","forks_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/forks","keys_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/teams","hooks_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/events","assignees_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/tags","blobs_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/languages","stargazers_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/subscription","commits_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/merges","archive_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/downloads","issues_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/deployments","created_at":"2015-10-14T04:20:22Z","updated_at":"2018-03-28T00:37:31Z","pushed_at":"2018-03-28T00:34:02Z","git_url":"git://github.com/Microsoft/ApplicationInsights-dotnet-server.git","ssh_url":"git@github.com:Microsoft/ApplicationInsights-dotnet-server.git","clone_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server.git","svn_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server","homepage":"https://azure.microsoft.com/services/application-insights/","size":56649,"stargazers_count":72,"watchers_count":72,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":51,"mirror_url":null,"archived":false,"open_issues_count":110,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":51,"open_issues":110,"watchers":72,"default_branch":"develop"}},"base":{"label":"Microsoft:develop","ref":"develop","sha":"2a1fe18a46167456c1ea30ff730cd1ed18d792ce","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":44223665,"name":"ApplicationInsights-dotnet-server","full_name":"Microsoft/ApplicationInsights-dotnet-server","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars2.githubusercontent.com/u/6154722?v=4","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server","description":"Microsoft Application Insights for .NET Web Applications","fork":false,"url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server","forks_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/forks","keys_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/teams","hooks_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/events","assignees_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/tags","blobs_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/languages","stargazers_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/subscription","commits_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/merges","archive_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/downloads","issues_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/deployments","created_at":"2015-10-14T04:20:22Z","updated_at":"2018-03-28T00:37:31Z","pushed_at":"2018-03-28T00:34:02Z","git_url":"git://github.com/Microsoft/ApplicationInsights-dotnet-server.git","ssh_url":"git@github.com:Microsoft/ApplicationInsights-dotnet-server.git","clone_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server.git","svn_url":"https://github.com/Microsoft/ApplicationInsights-dotnet-server","homepage":"https://azure.microsoft.com/services/application-insights/","size":56649,"stargazers_count":72,"watchers_count":72,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":51,"mirror_url":null,"archived":false,"open_issues_count":110,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":51,"open_issues":110,"watchers":72,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869"},"html":{"href":"https://github.com/Microsoft/ApplicationInsights-dotnet-server/pull/869"},"issue":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/869"},"comments":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/issues/869/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/pulls/869/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/ApplicationInsights-dotnet-server/statuses/f2bd43678bbaecf56434c9b2dabc92b49e365428"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"SergeyKanzhelev"}}