{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/comments/167037988","pull_request_review_id":95197215,"id":167037988,"diff_hunk":"@@ -0,0 +1,416 @@\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;\n+using System.Collections.Generic;\n+using System.Collections.Immutable;\n+using System.Linq;\n+using Analyzer.Utilities.Extensions;\n+using Microsoft.CodeAnalysis;\n+using Microsoft.CodeAnalysis.CSharp;\n+using Microsoft.CodeAnalysis.CSharp.Syntax;\n+using Microsoft.CodeAnalysis.Diagnostics;\n+using Spelling;\n+\n+namespace Text.Analyzers\n+{\n+    /// <summary>\n+    /// CA1704: Identifiers should be spelled correctly\n+    /// </summary>\n+    public abstract class IdentifiersShouldBeSpelledCorrectlyAnalyzer : DiagnosticAnalyzer\n+    {\n+        public const string RuleId = \"CA1704\";\n+\n+        private static readonly LocalizableString LocalizableTitle = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyTitle), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+\n+        private static readonly LocalizableString LocalizableMessageAssembly = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageAssembly), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageNamespace = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageNamespace), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageType = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageType), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageMember = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageMember), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageMemberParameter = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageMemberParameter), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageDelegateParameter = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageDelegateParameter), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageTypeTypeParameter = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageTypeTypeParameter), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageMethodTypeParameter = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageMethodTypeParameter), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageAssemblyMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageAssemblyMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageNamespaceMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageNamespaceMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageTypeMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageTypeMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageMemberMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageMemberMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageMemberParameterMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageMemberParameterMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageDelegateParameterMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageDelegateParameterMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageTypeTypeParameterMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageTypeTypeParameterMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+        private static readonly LocalizableString LocalizableMessageMethodTypeParameterMoreMeaningfulName = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyMessageMethodTypeParameterMoreMeaningfulName), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+\n+        private static readonly LocalizableString LocalizableDescription = new LocalizableResourceString(nameof(TextAnalyzersResources.IdentifiersShouldBeSpelledCorrectlyDescription), TextAnalyzersResources.ResourceManager, typeof(TextAnalyzersResources));\n+\n+        internal static DiagnosticDescriptor AssemblyRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageAssembly,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor NamespaceRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageNamespace,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor TypeRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageType,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor MemberRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageMember,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor MemberParameterRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageMemberParameter,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor DelegateParameterRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageDelegateParameter,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor TypeTypeParameterRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageTypeTypeParameter,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor MethodTypeParameterRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageMethodTypeParameter,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor AssemblyMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageAssemblyMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor NamespaceMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageNamespaceMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor TypeMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageTypeMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor MemberMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageMemberMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor MemberParameterMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageMemberParameterMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor DelegateParameterMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageDelegateParameterMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor TypeTypeParameterMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageTypeTypeParameterMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+        internal static DiagnosticDescriptor MethodTypeParameterMoreMeaningfulNameRule = new DiagnosticDescriptor(RuleId,\n+                                                                             LocalizableTitle,\n+                                                                             LocalizableMessageMethodTypeParameterMoreMeaningfulName,\n+                                                                             DiagnosticCategory.Naming,\n+                                                                             DiagnosticSeverity.Warning,\n+                                                                             isEnabledByDefault: false,\n+                                                                             description: LocalizableDescription,\n+                                                                             helpLinkUri: \"https://msdn.microsoft.com/en-us/library/bb264492.aspx\",\n+                                                                             customTags: WellKnownDiagnosticTags.Telemetry);\n+\n+        private SemanticModel _model;\n+        private NamingService _namingService;\n+\n+        public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics => ImmutableArray.Create(\n+            AssemblyRule,\n+            NamespaceRule,\n+            TypeRule,\n+            MemberRule,\n+            MemberParameterRule,\n+            DelegateParameterRule,\n+            TypeTypeParameterRule,\n+            MethodTypeParameterRule,\n+            AssemblyMoreMeaningfulNameRule,\n+            NamespaceMoreMeaningfulNameRule,\n+            TypeMoreMeaningfulNameRule,\n+            MemberMoreMeaningfulNameRule,\n+            MemberParameterMoreMeaningfulNameRule,\n+            DelegateParameterMoreMeaningfulNameRule,\n+            TypeTypeParameterMoreMeaningfulNameRule,\n+            MethodTypeParameterMoreMeaningfulNameRule\n+        );\n+\n+        public override void Initialize(AnalysisContext analysisContext)\n+        {\n+            analysisContext.EnableConcurrentExecution();\n+            analysisContext.ConfigureGeneratedCodeAnalysis(GeneratedCodeAnalysisFlags.None);\n+\n+            // Do everything within a CompilationStartAction so we have access to the assembly name before the other actions run\n+            analysisContext.RegisterCompilationStartAction(compilationStartContext =>\n+            {\n+                var assemblyName = compilationStartContext.Compilation.AssemblyName;\n+\n+                // Store the assembly name each time this analyzer runs so the appropriate custom dictionaries can be retrieved from the cache.\n+                // The cache will remain in memory until Visual Studio is closed, so it's possible multiple solutions containing the same\n+                // assembly names will be opened while the cache persists. This is not a problem because the cache associating assembly name\n+                // to dictionaries is refreshed on the call to LoadDictionaries.\n+                _namingService = new NamingService(assemblyName);\n+                _namingService.LoadDictionaries(compilationStartContext.Options.AdditionalFiles, compilationStartContext.CancellationToken);\n+\n+                // CompilationStartAction doesn't support reporting diagnostics, so we have to check the assembly name in CompilationEndAction\n+                compilationStartContext.RegisterCompilationEndAction(compilationEndContext =>\n+                {\n+                    if (assemblyName.Length == 1)\n+                    {\n+                        var diagnostic = Diagnostic.Create(AssemblyMoreMeaningfulNameRule, Location.None, assemblyName);\n+                        compilationEndContext.ReportDiagnostic(diagnostic);\n+                    }\n+                    else\n+                    {\n+                        foreach (var misspelledWord in GetMisspelledWords(assemblyName))\n+                        {\n+                            var diagnostic = Diagnostic.Create(AssemblyRule, Location.None, misspelledWord, assemblyName);\n+                            compilationEndContext.ReportDiagnostic(diagnostic);\n+                        }\n+                    }\n+                });\n+\n+                // Find IdentifierTokens with the syntax tree because SyntaxNodeAction only filters on \"methods and above\"\n+                // Reference: http://stackoverflow.com/a/28004943\n+                compilationStartContext.RegisterSyntaxTreeAction(syntaxTreeContext =>","path":"src/Text.Analyzers/Core (Net4)/IdentifiersShouldBeSpelledCorrectly.cs","position":248,"original_position":248,"commit_id":"29c7252ba16e121603b51b4d6a14d506fa7a6150","original_commit_id":"29c7252ba16e121603b51b4d6a14d506fa7a6150","user":{"login":"mavasani","id":10605811,"avatar_url":"https://avatars2.githubusercontent.com/u/10605811?v=4","gravatar_id":"","url":"https://api.github.com/users/mavasani","html_url":"https://github.com/mavasani","followers_url":"https://api.github.com/users/mavasani/followers","following_url":"https://api.github.com/users/mavasani/following{/other_user}","gists_url":"https://api.github.com/users/mavasani/gists{/gist_id}","starred_url":"https://api.github.com/users/mavasani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mavasani/subscriptions","organizations_url":"https://api.github.com/users/mavasani/orgs","repos_url":"https://api.github.com/users/mavasani/repos","events_url":"https://api.github.com/users/mavasani/events{/privacy}","received_events_url":"https://api.github.com/users/mavasani/received_events","type":"User","site_admin":false},"body":"This is wrong. `RegisterSyntaxTreeAction` is designed only for reporting syntax diagnostics, where semantic model is not required. If you want to use the semantic model, you should register a semantic model action.","created_at":"2018-02-08T19:11:38Z","updated_at":"2018-02-08T19:11:38Z","html_url":"https://github.com/dotnet/roslyn-analyzers/pull/1111#discussion_r167037988","pull_request_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/comments/167037988"},"html":{"href":"https://github.com/dotnet/roslyn-analyzers/pull/1111#discussion_r167037988"},"pull_request":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111"}}},"pull_request":{"url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111","id":107865873,"html_url":"https://github.com/dotnet/roslyn-analyzers/pull/1111","diff_url":"https://github.com/dotnet/roslyn-analyzers/pull/1111.diff","patch_url":"https://github.com/dotnet/roslyn-analyzers/pull/1111.patch","issue_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues/1111","number":1111,"state":"open","locked":false,"title":"Implemented CA1704: Identifiers should be spelled correctly","user":{"login":"pakdev","id":1248927,"avatar_url":"https://avatars3.githubusercontent.com/u/1248927?v=4","gravatar_id":"","url":"https://api.github.com/users/pakdev","html_url":"https://github.com/pakdev","followers_url":"https://api.github.com/users/pakdev/followers","following_url":"https://api.github.com/users/pakdev/following{/other_user}","gists_url":"https://api.github.com/users/pakdev/gists{/gist_id}","starred_url":"https://api.github.com/users/pakdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pakdev/subscriptions","organizations_url":"https://api.github.com/users/pakdev/orgs","repos_url":"https://api.github.com/users/pakdev/repos","events_url":"https://api.github.com/users/pakdev/events{/privacy}","received_events_url":"https://api.github.com/users/pakdev/received_events","type":"User","site_admin":false},"body":"fixes https://github.com/dotnet/roslyn-analyzers/issues/443 \r\nCA1704 checks that assembly, delegate parameters, members, member parameters, method type parameters, namespaces, types, and type parameters are spelled correctly and “meaningful”, where meaningful means their identifier is more than a single character. To support this analyzer, multiple new non-portable projects had to be created; there's no portable .NET spell checker that I could find. The spell checker itself is ported from the open source StyleCop project because 1. it includes a dictionary and 2. that dictionary (should) match what was used in FxCop (easing the transition to Roslyn).\r\n\r\nLike the previous FxCop rule, this analyzer also supports custom dictionaries. They are passed as additional files, and existing codebases can easily transition to this mechanism by adding `<PropertyGroup><AdditionalFileItemNames>$(AdditionalFileItemNames);CodeAnalysisDictionary</AdditionalFileItemNames></PropertyGroup>` to the project file ([more information](https://github.com/dotnet/roslyn/blob/master/docs/analyzers/Using%20Additional%20Files.md)). If the file  path exists and does not update, a caching mechanism will ensure it's only parsed once per Visual Studio instance.","created_at":"2017-02-24T16:50:02Z","updated_at":"2018-02-08T19:11:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8ce1301ce12fdc2b0869037874131259476efd41","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111/commits","review_comments_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111/comments","review_comment_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues/1111/comments","statuses_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/statuses/29c7252ba16e121603b51b4d6a14d506fa7a6150","head":{"label":"pakdev:ca1704","ref":"ca1704","sha":"29c7252ba16e121603b51b4d6a14d506fa7a6150","user":{"login":"pakdev","id":1248927,"avatar_url":"https://avatars3.githubusercontent.com/u/1248927?v=4","gravatar_id":"","url":"https://api.github.com/users/pakdev","html_url":"https://github.com/pakdev","followers_url":"https://api.github.com/users/pakdev/followers","following_url":"https://api.github.com/users/pakdev/following{/other_user}","gists_url":"https://api.github.com/users/pakdev/gists{/gist_id}","starred_url":"https://api.github.com/users/pakdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pakdev/subscriptions","organizations_url":"https://api.github.com/users/pakdev/orgs","repos_url":"https://api.github.com/users/pakdev/repos","events_url":"https://api.github.com/users/pakdev/events{/privacy}","received_events_url":"https://api.github.com/users/pakdev/received_events","type":"User","site_admin":false},"repo":{"id":78785893,"name":"roslyn-analyzers","full_name":"pakdev/roslyn-analyzers","owner":{"login":"pakdev","id":1248927,"avatar_url":"https://avatars3.githubusercontent.com/u/1248927?v=4","gravatar_id":"","url":"https://api.github.com/users/pakdev","html_url":"https://github.com/pakdev","followers_url":"https://api.github.com/users/pakdev/followers","following_url":"https://api.github.com/users/pakdev/following{/other_user}","gists_url":"https://api.github.com/users/pakdev/gists{/gist_id}","starred_url":"https://api.github.com/users/pakdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pakdev/subscriptions","organizations_url":"https://api.github.com/users/pakdev/orgs","repos_url":"https://api.github.com/users/pakdev/repos","events_url":"https://api.github.com/users/pakdev/events{/privacy}","received_events_url":"https://api.github.com/users/pakdev/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/pakdev/roslyn-analyzers","description":null,"fork":true,"url":"https://api.github.com/repos/pakdev/roslyn-analyzers","forks_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/forks","keys_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/teams","hooks_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/hooks","issue_events_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/issues/events{/number}","events_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/events","assignees_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/assignees{/user}","branches_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/branches{/branch}","tags_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/tags","blobs_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/git/refs{/sha}","trees_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/statuses/{sha}","languages_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/languages","stargazers_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/stargazers","contributors_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/contributors","subscribers_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/subscribers","subscription_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/subscription","commits_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/commits{/sha}","git_commits_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/git/commits{/sha}","comments_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/comments{/number}","issue_comment_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/issues/comments{/number}","contents_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/contents/{+path}","compare_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/merges","archive_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/downloads","issues_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/issues{/number}","pulls_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/pulls{/number}","milestones_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/milestones{/number}","notifications_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/labels{/name}","releases_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/releases{/id}","deployments_url":"https://api.github.com/repos/pakdev/roslyn-analyzers/deployments","created_at":"2017-01-12T20:51:14Z","updated_at":"2017-01-12T20:51:20Z","pushed_at":"2017-04-20T15:02:19Z","git_url":"git://github.com/pakdev/roslyn-analyzers.git","ssh_url":"git@github.com:pakdev/roslyn-analyzers.git","clone_url":"https://github.com/pakdev/roslyn-analyzers.git","svn_url":"https://github.com/pakdev/roslyn-analyzers","homepage":null,"size":11129,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"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:master","ref":"master","sha":"edf5c9d52705e5892bb3e3f40df27574a14af83b","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":36946704,"name":"roslyn-analyzers","full_name":"dotnet/roslyn-analyzers","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-analyzers","description":null,"fork":false,"url":"https://api.github.com/repos/dotnet/roslyn-analyzers","forks_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/forks","keys_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/teams","hooks_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/hooks","issue_events_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/events","assignees_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/tags","blobs_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/languages","stargazers_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/stargazers","contributors_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/contributors","subscribers_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/subscribers","subscription_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/subscription","commits_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/merges","archive_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/downloads","issues_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/roslyn-analyzers/deployments","created_at":"2015-06-05T17:48:07Z","updated_at":"2018-02-06T11:57:11Z","pushed_at":"2018-02-08T18:49:05Z","git_url":"git://github.com/dotnet/roslyn-analyzers.git","ssh_url":"git@github.com:dotnet/roslyn-analyzers.git","clone_url":"https://github.com/dotnet/roslyn-analyzers.git","svn_url":"https://github.com/dotnet/roslyn-analyzers","homepage":null,"size":12744,"stargazers_count":297,"watchers_count":297,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":125,"mirror_url":null,"archived":false,"open_issues_count":265,"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":125,"open_issues":265,"watchers":297,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111"},"html":{"href":"https://github.com/dotnet/roslyn-analyzers/pull/1111"},"issue":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues/1111"},"comments":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/issues/1111/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/pulls/1111/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/roslyn-analyzers/statuses/29c7252ba16e121603b51b4d6a14d506fa7a6150"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"mavasani"}}