| File: GitHubAnnotationWriter.cs | Web Access |
| Project: src\tools\TypeScriptApiCompat\TypeScriptApiCompat.csproj (TypeScriptApiCompat) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace TypeScriptApiCompat; internal static class GitHubAnnotationWriter { public static void WriteErrors(ApiCompatResult result) { foreach (var diagnostic in result.UnsuppressedDiagnostics) { WriteError($"[{diagnostic.PackageName}] {diagnostic.Kind}: {diagnostic.Symbol}", diagnostic.Message); } foreach (var error in result.SuppressionErrors) { WriteError("TypeScript API compatibility suppression error", error); } foreach (var suppression in result.UnusedSuppressions) { WriteError( "Unused TypeScript API compatibility suppression", $"{suppression.FilePath}:{suppression.LineNumber}: {suppression.Kind} {suppression.PackageName} {suppression.Symbol}"); } } private static void WriteError(string title, string message) { Console.WriteLine($"::error title={Escape(title)}::{Escape(message)}"); } private static string Escape(string value) => value .Replace("%", "%25", StringComparison.Ordinal) .Replace("\r", "%0D", StringComparison.Ordinal) .Replace("\n", "%0A", StringComparison.Ordinal) .Replace(",", "%2C", StringComparison.Ordinal); }