114 references to DiagnosticTextSanitizer
AnalyzeCiFailure (103)
AnalysisCommands.cs (1)
270
Console.WriteLine($"::error::{CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 1000))}");
AnalysisDiagnostics.cs (5)
96
var text = CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(message, limit: 1000))
155
["detail"] =
DiagnosticTextSanitizer
.SanitizeJson(CiFailureJson.ToNode(detail), limit: 500, multiline: true),
173
var outcome =
DiagnosticTextSanitizer
.SanitizeJson(JsonNode.Parse(TransientJson.Write(progress.CreateOutcome(status))), limit: 500, multiline: true)!;
218
["message"] =
DiagnosticTextSanitizer
.Sanitize(error.Message, limit: 500, multiline: true),
219
["stack_trace"] =
DiagnosticTextSanitizer
.Sanitize(error.StackTrace ?? "", limit: 8000, multiline: true),
AnalysisInvocation.cs (1)
69
Console.Error.WriteLine($"::error::Unable to retain analysis diagnostics: {CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(error.Message, limit: 500))}");
AnalysisPublisher.cs (1)
363
var storedJob =
DiagnosticTextSanitizer
.Sanitize(Text(occurrence["job"]) ?? "");
AnalysisPublisher.Overflow.cs (4)
98
var title = MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(Text(item.History["title"]) ?? item.Cause.Id, limit: 238));
100
var diagnostic =
DiagnosticTextSanitizer
.Sanitize(Text(item.History["error_pattern"]) ?? "", limit: 500);
114
var storedJobs =
DiagnosticTextSanitizer
.Sanitize(Text(occurrence?["job"]) ?? "");
130
var name = MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(job.Name, limit: 500));
AnalysisRerunner.cs (3)
91
Display(
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 500)));
103
Display(
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 500)));
127
Display(
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 500)));
AnalysisValidator.cs (5)
65
var jobs = evidence.Jobs.Select(job => new FailedJob(Id(job.Id), Decimal(job.Id),
DiagnosticTextSanitizer
.Sanitize(job.Name, limit: 500))).ToImmutableArray();
215
var title =
DiagnosticTextSanitizer
.Sanitize(proposedDefinition.Title);
216
var pattern =
DiagnosticTextSanitizer
.Sanitize(proposedDefinition.ErrorPattern, multiline: true);
319
?
DiagnosticTextSanitizer
.Sanitize(value, limit: 500)
343
evidence.Jobs.Select(job => job with { Name =
DiagnosticTextSanitizer
.Sanitize(job.Name!, limit: 500) }),
CauseHistoryStore.cs (1)
31
throw new ValidationException($"Unable to load CI failure history: {CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(reference.Error, limit: 4096))}");
CauseIssueRenderer.cs (12)
25
var safe = names.Select(name =>
DiagnosticTextSanitizer
.Sanitize(name, limit: 500)).ToArray();
40
cause = (JsonObject)
DiagnosticTextSanitizer
.SanitizeCause(cause)!;
44
var title =
DiagnosticTextSanitizer
.Sanitize(Text(cause["title"]) ?? "", limit: 238);
45
var test =
DiagnosticTextSanitizer
.Sanitize(Text(cause["test_name"]) ?? "", limit: 500);
69
.Append(MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(evidence.TriggeringMerge.Title ?? "", limit: 238))).Append('\n');
87
:
DiagnosticTextSanitizer
.Sanitize(error, limit: 500, multiline: true);
163
var row = $"- {MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(Text(t["name"])!, limit: 500))} — job {GetValueText(t["job_id"])} ({MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(Text(t["job"])!, limit: 500))})";
166
row += $" — {MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(observation, limit: 100))}, result {MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(Text(t["result_file"]) ?? "", limit: 500))}";
169
row += $", execution {MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(execution, limit: 500))}";
177
row += $"\n\n {field}:\n\n" + MarkdownFormatting.Indent(
DiagnosticTextSanitizer
.Sanitize(diagnostic, limit: 4000, multiline: true), spaces: 8);
EvidencePreparation.cs (3)
59
CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(error.Message, limit: 1000)));
278
Console.Error.WriteLine($"::error::{Display(
DiagnosticTextSanitizer
.Sanitize(message, limit: 1000))}");
288
Console.Error.WriteLine($"::error::Unable to finalize workflow failure: {Display(
DiagnosticTextSanitizer
.Sanitize(finalization.Message, limit: 500))}");
GitHubActionsIntegration.cs (3)
67
$"(collection status: {Display(
DiagnosticTextSanitizer
.Sanitize(collectionStatus ?? "", limit: 100))}; " +
68
$"collection result: {Display(
DiagnosticTextSanitizer
.Sanitize(collectionResult ?? "", limit: 100))}; " +
69
$"publication result: {Display(
DiagnosticTextSanitizer
.Sanitize(publicationResult ?? "", limit: 100))}). Check the collection and publication logs.");
Infrastructure\AnalysisGitHubClient.cs (1)
41
$"page {pageNumber}, row {rowNumber} for {CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(endpoint, limit: 200))}");
Infrastructure\AnalyzerCommandExecutor.cs (1)
34
throw new ValidationException($"{executable} failed ({result.ExitCode}): {CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(result.Error, limit: 4096))}");
Models\CollectionModels.cs (1)
72
Message = CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(message, limit: 500)),
PrCommentRenderer.cs (8)
19
var jobs = collectedJobs.Select(job => job with { Name =
DiagnosticTextSanitizer
.Sanitize(job.Name!, limit: 500) }).ToArray();
27
return $"- {MarkdownFormatting.CodeSpan(job.Name!)} — {MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(proposal.Reason ?? "", limit: 500))} ({classification})";
31
var job = jobs.FirstOrDefault(j => j.Name ==
DiagnosticTextSanitizer
.Sanitize(test.Job ?? "", limit: 500));
32
var text = $"- {MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(test.Name ?? "", limit: 500))}" +
34
"\n - **Error**:\n\n" + MarkdownFormatting.Indent(
DiagnosticTextSanitizer
.Sanitize(test.Error ?? "", limit: 1000, multiline: true), spaces: 8) + "\n";
35
var stack =
DiagnosticTextSanitizer
.Sanitize(test.StackTrace ?? "", limit: 2000, multiline: true);
42
var diagnostic =
DiagnosticTextSanitizer
.Sanitize(value ?? "", limit: 4000, multiline: true);
49
return text + " - **Why likely flaky**: " + MarkdownFormatting.CodeSpan(
DiagnosticTextSanitizer
.Sanitize(test.Reason ?? "", limit: 500));
PriorCauseCatalogue.cs (6)
45
Title =
DiagnosticTextSanitizer
.Sanitize(cause.Title ?? id, limit: 238),
46
TestName = cause.TestName is { } label ?
DiagnosticTextSanitizer
.Sanitize(label, limit: 500) : null,
47
IssueUrl = cause.IssueUrl is { } url ?
DiagnosticTextSanitizer
.Sanitize(url, limit: 500) : null,
48
ErrorPattern =
DiagnosticTextSanitizer
.Sanitize(cause.ErrorPattern ?? "", limit: 500, multiline: true),
51
.Order(StringComparer.Ordinal).LastOrDefault() is { } last ?
DiagnosticTextSanitizer
.Sanitize(last, limit: 500) : null,
61
ReadError = "Cannot summarize prior cause record: " + CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 500)),
PublicationEvidenceProjection.cs (7)
14
var jobs = evidence.Jobs.ToDictionary(job => job.Id, job =>
DiagnosticTextSanitizer
.Sanitize(job.Name, limit: 500));
20
DisplayName =
DiagnosticTextSanitizer
.Sanitize(test.DisplayName, limit: 500),
24
Error =
DiagnosticTextSanitizer
.Sanitize(test.Diagnostics.Error, limit: 1000, multiline: true),
25
StackTrace =
DiagnosticTextSanitizer
.Sanitize(test.Diagnostics.StackTrace, limit: 2000, multiline: true),
26
StandardOutput =
DiagnosticTextSanitizer
.Sanitize(test.Diagnostics.StandardOutput, limit: 4000, multiline: true),
27
StandardError =
DiagnosticTextSanitizer
.Sanitize(test.Diagnostics.StandardError, limit: 4000, multiline: true),
33
?
DiagnosticTextSanitizer
.Sanitize(execution, limit: 500) : null,
RecoveryCaptureWriter.cs (5)
43
CiFailureJson.Serialize(
DiagnosticTextSanitizer
.SanitizeJson(value, MaximumFileBytes, multiline: true)),
55
CiFailureJson.Serialize(
DiagnosticTextSanitizer
.SanitizeJson(diagnostic, MaximumFileBytes, multiline: true)),
71
DiagnosticTextSanitizer
.Sanitize(value.Text, MaximumFileBytes, multiline: true),
91
DiagnosticTextSanitizer
.Sanitize(await File.ReadAllTextAsync(file), MaximumFileBytes, multiline: true),
112
DiagnosticTextSanitizer
.Sanitize(await File.ReadAllTextAsync(file), MaximumFileBytes, multiline: true),
RunSummaryBuilder.cs (3)
22
var jobs = evidence.Jobs.Select(job => job with { Name =
DiagnosticTextSanitizer
.Sanitize(job.Name!, limit: 500) }).ToArray();
95
Name =
DiagnosticTextSanitizer
.Sanitize(test.DisplayName ?? test.Name ?? "", limit: 500),
122
=>
DiagnosticTextSanitizer
.SanitizeRunMetadata(value ?? "", limit);
TestFailureReader.cs (14)
60
$"'{CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(artifact.JobName, limit: 500))}', but found {producingJobs.Length}. " +
61
$"artifact='{CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(artifact.Artifact.Name ?? "", limit: 100))}'");
139
if (string.IsNullOrEmpty(name) ||
DiagnosticTextSanitizer
.Sanitize(name).Length == 0)
161
CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(ex.GetBaseException().Message, limit: 160)),
184
if (string.IsNullOrEmpty(input.Name) ||
DiagnosticTextSanitizer
.Sanitize(input.Name).Length == 0)
187
$"job={input.JobId} artifact={source.ArtifactId} file={CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(source.ResultFile, limit: 80))}");
198
$"job={input.JobId} execution='{CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(execution, limit: 80))}' " +
200
$"test='{CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(input.Name, limit: 80))}'");
213
.ThenBy(item =>
DiagnosticTextSanitizer
.Sanitize(item.Raw.JobName, limit: 500), StringComparer.Ordinal)
219
DisplayName =
DiagnosticTextSanitizer
.Sanitize(item.Raw.Name, limit: 500),
222
Error =
DiagnosticTextSanitizer
.Sanitize(item.Raw.Diagnostics.Error, limit: 1000, multiline: true),
223
StackTrace =
DiagnosticTextSanitizer
.Sanitize(item.Raw.Diagnostics.StackTrace, limit: 2000, multiline: true),
224
StandardOutput =
DiagnosticTextSanitizer
.Sanitize(item.Raw.Diagnostics.StandardOutput, limit: 4000, multiline: true),
225
StandardError =
DiagnosticTextSanitizer
.Sanitize(item.Raw.Diagnostics.StandardError, limit: 4000, multiline: true),
TestResultArtifacts.cs (4)
142
$"id={Display(
DiagnosticTextSanitizer
.Sanitize(GetValueText(invalid.Artifact.Id), limit: 40))} " +
143
$"size={Display(
DiagnosticTextSanitizer
.Sanitize(GetValueText(invalid.Artifact.SizeInBytes), limit: 40))} limit={maxArtifactBytes}");
178
=> $"job='{Display(
DiagnosticTextSanitizer
.Sanitize(job.JobName, limit: 80))}' " +
179
$"artifact='{Display(
DiagnosticTextSanitizer
.Sanitize(job.ArtifactName, limit: 100))}'";
TransientJson.cs (1)
59
CiFailureJson.Display(
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 1000)));
WorkflowFailureDiagnosisContextBuilder.cs (2)
114
=> summary.Append(MarkdownFormatting.Indent(
DiagnosticTextSanitizer
.Sanitize(value, limit, multiline: true))).Append("\n\n");
117
=> summary.Append(" ").Append(
DiagnosticTextSanitizer
.SanitizeJson(value, limit, multiline)?.ToJsonString() ?? "null").Append("\n\n");
WorkflowRunEvidenceCollector.cs (10)
210
Console.WriteLine($"::warning::Unable to parse retry patterns: {Display(
DiagnosticTextSanitizer
.Sanitize(error.Message, limit: 500))}");
254
DiagnosticTextSanitizer
.Sanitize(diagnostic, limit: 2000, multiline: true) + "\n";
279
$"execution='{Display(
DiagnosticTextSanitizer
.Sanitize(conflict.Key.ExecutionId ?? "", limit: 80))}' " +
439
DiagnosticTextSanitizer
.Sanitize(logResult.Error, limit: 300, multiline: false);
443
var safeLog =
DiagnosticTextSanitizer
.Sanitize(logText, limit: 10485760, multiline: true);
463
DiagnosticTextSanitizer
.Sanitize(logResult.Error, limit: 500, multiline: true);
645
$"job='{Display(
DiagnosticTextSanitizer
.Sanitize(Text(job["name"]) ?? "", limit: 80))}'; " +
761
$"Unable to extract test results artifact: {
DiagnosticTextSanitizer
.Sanitize(ex.Message, limit: 200)}; " +
799
$"attempt={_progress.RunAttempt} workflow={
DiagnosticTextSanitizer
.Sanitize(_workflow.WorkflowPath, limit: 80)} " +
801
var safeMessage = Display(
DiagnosticTextSanitizer
.Sanitize(context, limit: 1000));
Workflows\AspireCiWorkflowConventions.cs (1)
54
Display(
DiagnosticTextSanitizer
.Sanitize(name, limit: 500)));
AnalyzeCiFailure.Tests (11)
AnalyzeCiFailureEvidenceTests.cs (1)
121
var evidence = new[] { CiFailureJson.ToContract<TestFailureEvidence>(
DiagnosticTextSanitizer
.SanitizeJson(source, int.MaxValue, multiline: true))! };
AnalyzeCiFailureRenderingTests.cs (3)
109
=> RunFunctionAsync(() => " " +
DiagnosticTextSanitizer
.SanitizeJson(
115
=> RunFunctionAsync(() => MarkdownFormatting.Indent(
DiagnosticTextSanitizer
.Sanitize(File.ReadAllText(args[0]), Int(args, index: 1, fallback: 65536), multiline: true)) + "\n");
120
File.WriteAllText(args[1],
DiagnosticTextSanitizer
.Sanitize(File.ReadAllText(args[0]), Int(args, index: 2, fallback: 10485760), multiline: true) + "\n");
AnalyzeCiFailureTextTests.cs (7)
20
_ = AnalyzeCiFailure.
DiagnosticTextSanitizer
.Sanitize("warmup");
24
? AnalyzeCiFailure.
DiagnosticTextSanitizer
.SanitizeRunMetadata(text, limit: 4000)
25
: AnalyzeCiFailure.
DiagnosticTextSanitizer
.Sanitize(text, limit: 4000);
48
Assert.Equal(expected, AnalyzeCiFailure.
DiagnosticTextSanitizer
.Sanitize(input));
49
Assert.Equal(expected, AnalyzeCiFailure.
DiagnosticTextSanitizer
.SanitizeRunMetadata(input, int.MaxValue));
117
Assert.Equal(diagnostic, AnalyzeCiFailure.
DiagnosticTextSanitizer
.Sanitize(input));
118
Assert.Equal(metadata, AnalyzeCiFailure.
DiagnosticTextSanitizer
.SanitizeRunMetadata(input, int.MaxValue));