232 references to CiFailureJson
AnalyzeCiFailure (107)
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),
158
Encoding.UTF8.GetByteCount(
CiFailureJson
.Serialize(entry)) > AnalysisDiagnostics.MaximumFileBytes)
196
var text =
CiFailureJson
.Serialize(summary);
208
text =
CiFailureJson
.Serialize(summary);
AnalysisInvocation.cs (2)
69
Console.Error.WriteLine($"::error::Unable to retain analysis diagnostics: {
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(error.Message, limit: 500))}");
83
Console.Error.WriteLine($"::error::Unable to retain analysis recovery: {
CiFailureJson
.Display(error.Message)}");
AnalysisPublicationQueries.cs (12)
18
return new JsonArray(issues.Where(issue =>
CiFailureJson
.Field(issue, "pull_request") is null)
43
if (!(response is JsonObject &&
CiFailureJson
.Text(response["state"]) is not null &&
49
return
CiFailureJson
.Text(response!["state"]) == "open" &&
CiFailureJson
.IsFalse(response["locked"]);
63
var match = comments.Where(comment =>
CiFailureJson
.Text(
CiFailureJson
.Field(
CiFailureJson
.Field(comment, "user"), "login")) == "github-actions[bot]" &&
64
(
CiFailureJson
.Text(
CiFailureJson
.Field(comment, "body")) ?? "").StartsWith("<!-- analyze-ci-failure -->\n", StringComparison.Ordinal))
65
.OrderBy(comment => GitHubJson.ReadRequiredId(
CiFailureJson
.Field(comment, "id")))
68
return match is null ? "" :
CiFailureJson
.GetValueText(
CiFailureJson
.Field(match, "id"));
AnalysisPublisher.cs (1)
9
using static AnalyzeCiFailure.
CiFailureJson
;
AnalysisPublisher.Overflow.cs (1)
8
using static AnalyzeCiFailure.
CiFailureJson
;
AnalysisRerunner.cs (1)
9
using static AnalyzeCiFailure.
CiFailureJson
;
AnalysisScratch.cs (1)
36
Console.Error.WriteLine($"::warning::Unable to remove analysis scratch: {
CiFailureJson
.Display(error.Message)}");
AnalysisValidator.cs (1)
9
using static AnalyzeCiFailure.
CiFailureJson
;
BranchHistoryReader.cs (1)
8
using static AnalyzeCiFailure.
CiFailureJson
;
CauseHistoryStore.cs (1)
31
throw new ValidationException($"Unable to load CI failure history: {
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(reference.Error, limit: 4096))}");
CauseIssueRenderer.cs (1)
7
using static AnalyzeCiFailure.
CiFailureJson
;
CollectionProjection.cs (1)
6
using static AnalyzeCiFailure.
CiFailureJson
;
DiagnosticTextSanitizer.cs (1)
9
using static AnalyzeCiFailure.
CiFailureJson
;
EvidencePackageStore.cs (2)
23
CiFailureJson
.WriteContract(paths.PriorCauseIndex, input.Catalogue);
34
await File.WriteAllTextAsync(path,
CiFailureJson
.Serialize(value) + Environment.NewLine, ct);
EvidencePreparation.cs (7)
8
using static AnalyzeCiFailure.
CiFailureJson
;
54
Console.Error.WriteLine($"::error::Unable to write collection outcome: {
CiFailureJson
.Display(outcomeError.Message)}");
59
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(error.Message, limit: 1000)));
121
CiFailureJson
.Write(
153
Console.Error.WriteLine($"::error::Unable to write collection outcome: {
CiFailureJson
.Display(outcomeError.Message)}");
187
jsonContext.Add(name, JsonSerializer.SerializeToElement(
CiFailureJson
.Parse(attachment.Text)));
229
Console.Error.WriteLine($"::error::Unable to write collection outcome: {
CiFailureJson
.Display(error.Message)}");
GitHubActionsIntegration.cs (1)
6
using static AnalyzeCiFailure.
CiFailureJson
;
Infrastructure\AnalysisGitHubClient.cs (2)
29
var rows = property is null ? page :
CiFailureJson
.Field(page, property);
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)),
Models\EvidenceContracts.cs (27)
23
[JsonPropertyName("event"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
25
[JsonPropertyName("head_branch"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
27
[JsonPropertyName("pr_numbers"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
51
[JsonPropertyName("html_url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
62
[JsonPropertyName("name"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
66
[JsonPropertyName("html_url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
75
[JsonPropertyName("name"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
77
[JsonPropertyName("conclusion"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
86
[JsonPropertyName("title"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
88
[JsonPropertyName("user"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
90
[JsonPropertyName("state"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
92
[JsonPropertyName("head_branch"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
94
[JsonPropertyName("base_branch"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
96
[JsonPropertyName("html_url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
105
[JsonPropertyName("title"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
107
[JsonPropertyName("user"), JsonConverter(typeof(
CiFailureJson
.OptionalObjectConverter<GitHubUser>))]
109
[JsonPropertyName("state"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
111
[JsonPropertyName("head"), JsonConverter(typeof(
CiFailureJson
.OptionalObjectConverter<GitHubBranch>))]
113
[JsonPropertyName("base"), JsonConverter(typeof(
CiFailureJson
.OptionalObjectConverter<GitHubBranch>))]
115
[JsonPropertyName("html_url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
124
[JsonPropertyName("login"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
131
[JsonPropertyName("ref"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
140
[JsonPropertyName("message"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
142
[JsonPropertyName("html_url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
144
[JsonPropertyName("pull_request"), JsonConverter(typeof(
CiFailureJson
.OptionalObjectConverter<CandidatePullRequest>))]
153
[JsonPropertyName("title"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
155
[JsonPropertyName("url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
Models\PriorContextContracts.cs (7)
14
[JsonPropertyName("id"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
18
[JsonPropertyName("title"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
20
[JsonPropertyName("test_name"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
22
[JsonPropertyName("issue_url"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
24
[JsonPropertyName("error_pattern"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
44
[JsonPropertyName("name"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
51
[JsonPropertyName("observed_at"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
Models\RunSummaryContracts.cs (2)
27
internal NormalizedJsonNumber NormalizedId =>
CiFailureJson
.AsNormalizedNumber(Id)!.Value;
131
internal NormalizedJsonNumber? NormalizedJobId =>
CiFailureJson
.AsNormalizedNumber(JobId);
Models\ValidationModels.cs (2)
45
[property: JsonPropertyName("test_name"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))] string? TestName)
47
[JsonPropertyName("id"), JsonConverter(typeof(
CiFailureJson
.OptionalTextConverter))]
PrCommentRenderer.cs (1)
4
using static AnalyzeCiFailure.
CiFailureJson
;
PriorCauseCatalogue.cs (2)
29
var cause =
CiFailureJson
.ToContract<PriorCauseRecord>(System.Text.Json.Nodes.JsonNode.Parse(pair.Value.Text))
61
ReadError = "Cannot summarize prior cause record: " +
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(ex.Message, limit: 500)),
RecoveryCaptureWriter.cs (3)
43
CiFailureJson
.Serialize(DiagnosticTextSanitizer.SanitizeJson(value, MaximumFileBytes, multiline: true)),
55
CiFailureJson
.Serialize(DiagnosticTextSanitizer.SanitizeJson(diagnostic, MaximumFileBytes, multiline: true)),
116
CiFailureJson
.Write(
RunSummaryBuilder.cs (2)
5
using static AnalyzeCiFailure.
CiFailureJson
;
118
.Select(step =>
CiFailureJson
.ToContract<WorkflowStep>(step)!)
TestFailureReader.cs (7)
60
$"'{
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(artifact.JobName, limit: 500))}', but found {producingJobs.Length}. " +
61
$"artifact='{
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(artifact.Artifact.Name ?? "", limit: 100))}'");
160
$"Cannot parse test result '{
CiFailureJson
.Display(relativeDirectory + "/" + Path.GetFileName(file))}' from artifact {artifactId}: " +
161
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(ex.GetBaseException().Message, limit: 160)),
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))}'");
TestResultArtifacts.cs (1)
8
using static AnalyzeCiFailure.
CiFailureJson
;
TransientJson.cs (3)
59
CiFailureJson
.Display(DiagnosticTextSanitizer.Sanitize(ex.Message, limit: 1000)));
189
CiFailureJson
.TryReadEnum<T>(reader.GetString(), out var value))
202
writer.WriteStringValue(
CiFailureJson
.EnumText(value));
ValidationRules.cs (1)
5
using static AnalyzeCiFailure.
CiFailureJson
;
WorkflowFailureDiagnosisContextBuilder.cs (3)
33
("PREVIEW", string.Concat(focused.Select(cause => " " +
CiFailureJson
.Serialize(cause) + "\n")))));
49
summary.Append("### ").Append(
CiFailureJson
.Display(name)).Append('\n');
66
state =
CiFailureJson
.EnumText(bundle.TestEvidence.State),
WorkflowRunEvidenceCollector.cs (1)
11
using static AnalyzeCiFailure.
CiFailureJson
;
Workflows\AspireCiWorkflowConventions.cs (1)
6
using static AnalyzeCiFailure.
CiFailureJson
;
AnalyzeCiFailure.Tests (125)
AnalyzeCiFailureAlternateWorkflowTests.cs (3)
98
Assert.Equal(state,
CiFailureJson
.EnumText(evidence.TestEvidence.State));
185
Assert.Equal(state,
CiFailureJson
.EnumText(result.Run.Evidence.TestEvidence.State));
220
Assert.Equal(state,
CiFailureJson
.EnumText(result.Run!.Evidence.TestEvidence.State));
AnalyzeCiFailureEnumTests.cs (12)
26
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<AnalysisReport>(
CiFailureJson
.Parse(json)));
35
var value =
CiFailureJson
.Parse(json);
36
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<RunScope>(value));
37
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<EvidenceState>(value));
38
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<CandidateHistoryState>(value));
39
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<AnalysisVerdict>(value));
40
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<JobClassification>(value));
41
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<TestClassification>(value));
42
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<CauseType>(value));
43
Assert.ThrowsAny<JsonException>(() =>
CiFailureJson
.ToContract<TestArtifactFormat>(value));
61
await Verifier.Verify(
CiFailureJson
.Serialize(projection), "json").UseDirectory("Snapshots");
AnalyzeCiFailureEvidenceTests.cs (11)
24
CiFailureJson
.ToContract<TestFailureEvidence>(
CiFailureJson
.Parse(json)));
30
var metadata =
CiFailureJson
.ToContract<MergedPullRequest>(
31
CiFailureJson
.Parse("""{"number":42,"title":false,"user":{"login":[]},"head":{"ref":false}}"""))!;
43
var identity =
CiFailureJson
.ToContract<StoredCauseIdentity>(
CiFailureJson
.Parse(prior))!;
121
var evidence = new[] {
CiFailureJson
.ToContract<TestFailureEvidence>(DiagnosticTextSanitizer.SanitizeJson(source, int.MaxValue, multiline: true))! };
124
CiFailureJson
.WriteContract(file, evidence);
125
var restored =
CiFailureJson
.ReadContract<ImmutableArray<TestFailureEvidence>>(file);
151
CiFailureJson
.WriteContract(output, accepted.Report);
391
var jobs =
CiFailureJson
.ReadContract<WorkflowJob[]>(file)!;
AnalyzeCiFailureFixtures.cs (39)
59
var node = File.Exists(path) ?
CiFailureJson
.Read(path) : null;
60
return node is JsonObject ?
CiFailureJson
.ToContract<T>(node) : null;
66
var node = File.Exists(paths.CandidateMerges) ?
CiFailureJson
.Read(paths.CandidateMerges) : null;
67
candidates = node is JsonArray ?
CiFailureJson
.ToContract<ImmutableArray<CandidateMerge>>(node) : [];
87
return File.Exists(path) ?
CiFailureJson
.Read(path) : null;
91
var report =
CiFailureJson
.Read(Path.Combine(output, "analysis-result.json"))!;
95
var scope =
CiFailureJson
.ReadEnum<RunScope>(
CiFailureJson
.Text(context["run_scope"]), "Run scope is invalid");
96
var state =
CiFailureJson
.ReadEnum<EvidenceState>(
CiFailureJson
.Text(Read("test-evidence.json")?["state"]), "Test evidence state is invalid");
100
var input =
CiFailureJson
.ToContract<TestFailureInput>(test)!;
131
SubjectPrNumber = long.TryParse(
CiFailureJson
.Text(context["pr_numbers"]), NumberStyles.None, CultureInfo.InvariantCulture, out var pr) && pr > 0 ? pr : null,
153
Title =
CiFailureJson
.Text(prMetadata["title"]) ?? "", Author =
CiFailureJson
.Text(prMetadata["user"]) ?? "",
154
State =
CiFailureJson
.Text(prMetadata["state"]) ?? "", HeadBranch =
CiFailureJson
.Text(prMetadata["head_branch"]) ?? "",
155
BaseBranch =
CiFailureJson
.Text(prMetadata["base_branch"]) ?? "", Url =
CiFailureJson
.Text(prMetadata["html_url"]) ?? "",
158
?
CiFailureJson
.ToContract<CandidateHistoryStatus>(historyNode)?.State ?? CandidateHistoryState.Unavailable
161
?
CiFailureJson
.ToContract<ImmutableArray<CandidateMerge>>(candidateNodes) : [];
163
CiFailureJson
.Text(metadata["head_sha"]) ?? "",
171
var matching = bundle.TestEvidence.Failures.Where(collected => collected.Name ==
CiFailureJson
.Text(test?["name"]) &&
172
(test?["job_id"] is { } id ? collected.JobId == GitHubJson.ReadRequiredId(id) : jobs.Any(job => job.Id == collected.JobId && job.Name ==
CiFailureJson
.Text(test?["job"])))).ToArray();
173
var observation =
CiFailureJson
.Text(test?["observation_id"]);
179
Classification =
CiFailureJson
.ReadEnum<TestClassification>(
CiFailureJson
.Text(test?["classification"]), "Test classification is invalid"),
180
Reason =
CiFailureJson
.Text(test?["reason"]) ?? "",
186
var cause =
CiFailureJson
.Read(path)!;
187
var id =
CiFailureJson
.Text(cause["id"])!;
189
var type =
CiFailureJson
.ReadEnum<CauseType>(
CiFailureJson
.Text(cause["type"]), "Cause type is invalid");
192
? explicitTests.Any(reference =>
CiFailureJson
.Text(reference?["name"]) == test.Name &&
194
(reference?["observation_id"] is null ||
CiFailureJson
.Text(reference["observation_id"]) == $"observation-{bundle.TestEvidence.Failures.IndexOf(test) + 1}"))
195
: test.Name ==
CiFailureJson
.Text(cause["test_name"]) && jobIds.Contains(test.JobId))
215
Title =
CiFailureJson
.Text(cause["title"])!,
216
ErrorPattern =
CiFailureJson
.Text(cause["error_pattern"])!,
233
Classification =
CiFailureJson
.ReadEnum<JobClassification>(
CiFailureJson
.Text(job?["classification"]), "Job classification is invalid"),
234
Reason =
CiFailureJson
.Text(job?["reason"]) ?? "",
AnalyzeCiFailurePreparationTests.cs (8)
218
var state = AnalyzeCiFailure.
CiFailureJson
.ReadContract<AnalyzeCiFailureFixtures.TestEvidenceState>(Path.Combine(paths.RootDirectory, "test-evidence.json"))?.State
228
var jobData = (JsonArray)AnalyzeCiFailure.
CiFailureJson
.Read(paths.FailedJobs)!;
231
var selected = AnalyzeCiFailure.
CiFailureJson
.ReadContract<System.Collections.Immutable.ImmutableArray<AnalyzeCiFailure.TestResultArtifactRecord>>(paths.SelectedTestArtifacts);
246
AnalyzeCiFailure.
CiFailureJson
.WriteContract(Path.Combine(paths.RootDirectory, "test-failures.json"), projection);
252
diagnostic = "::error::" + AnalyzeCiFailure.
CiFailureJson
.Display(ex.Message);
255
AnalyzeCiFailure.
CiFailureJson
.WriteContract(Path.Combine(paths.RootDirectory, "test-evidence.json"), new AnalyzeCiFailureFixtures.TestEvidenceState(state));
262
AnalyzeCiFailure.
CiFailureJson
.WriteContract(paths.PriorCauseIndex, catalogue);
861
summary = AnalyzeCiFailure.
CiFailureJson
.ToNode(AnalyzeCiFailureFixtures.Validate(_workspace.Path).Report)!;
AnalyzeCiFailurePublicationTests.cs (5)
585
summary = AnalyzeCiFailure.
CiFailureJson
.ToNode(AnalyzeCiFailureFixtures.Validate(_workspace.Path).Report)!;
715
summary = AnalyzeCiFailure.
CiFailureJson
.ToNode(AnalyzeCiFailureFixtures.Validate(_workspace.Path).Report)!;
1070
AnalyzeCiFailure.
CiFailureJson
.ReadEnum<AnalyzeCiFailure.RunScope>(scope, "Invalid test scope"));
1074
AnalyzeCiFailure.
CiFailureJson
.ReadEnum<AnalyzeCiFailure.RunScope>(scope, "Invalid test scope"),
1380
["run_summary"] = AnalyzeCiFailure.
CiFailureJson
.ToNode(publishedSummary),
AnalyzeCiFailureRenderingTests.cs (13)
47
CiFailureJson
.ReadContract<AnalysisReport>(args[0])!,
48
CiFailureJson
.ReadContract<WorkflowJob[]>(args[1])!,
56
=> File.Exists(file) ?
CiFailureJson
.ReadContract<T>(file) : null;
64
(JsonObject)
CiFailureJson
.Read(args[0])!,
72
CiFailureJson
.Write(args[11], new JsonObject { ["title"] = projection.Title, ["labels"] = projection.Labels });
98
TestResultArtifacts.ReadArtifacts((JsonArray)
CiFailureJson
.Read(args[0])!),
99
((JsonArray)
CiFailureJson
.Read(args[3])!).OfType<JsonObject>()
110
CiFailureJson
.Read(args[0]),
157
var cause =
CiFailureJson
.Read(args[0])!;
158
var jobs =
CiFailureJson
.ToContract<System.Collections.Immutable.ImmutableArray<WorkflowJob>>(
CiFailureJson
.Read(args[1]));
160
jobs.First(job =>
CiFailureJson
.AsNormalizedNumber(job.Id) ==
CiFailureJson
.ReadNormalizedNumber(id)).Name!);
AnalyzeCiFailureRuleTests.cs (4)
23
var evidence = AnalyzeCiFailureFixtures.CreateEvidence(
CiFailureJson
.ReadEnum<RunScope>(scope, "Invalid scope"));
560
private static AnalysisJob Job(string id, string classification) => new() { Id =
CiFailureJson
.ToContract<System.Text.Json.JsonElement>(
CiFailureJson
.Parse(id)), Classification = Value<JobClassification>(classification) };
581
=>
CiFailureJson
.TryReadEnum<T>(text, out var value) ? value : default;
AnalyzeCiFailureTextTests.cs (12)
140
var node = json is null ? null : AnalyzeCiFailure.
CiFailureJson
.Parse(json);
142
Assert.Equal(expected, AnalyzeCiFailure.
CiFailureJson
.GetValueText(node));
150
Assert.Equal("\"x\"", AnalyzeCiFailure.
CiFailureJson
.GetValueText(node));
199
Assert.Equal(text, AnalyzeCiFailure.
CiFailureJson
.GetValueText(node));
208
? AnalyzeCiFailure.
CiFailureJson
.TryReadEnum<AnalyzeCiFailure.AnalysisVerdict>(text, out _)
209
: AnalyzeCiFailure.
CiFailureJson
.TryReadEnum<AnalyzeCiFailure.RunScope>(text, out _));
218
var exception = Assert.Throws<JsonException>(() => AnalyzeCiFailure.
CiFailureJson
.GetValueText(node));
232
Assert.Equal(expected, AnalyzeCiFailure.
CiFailureJson
.Safe(JsonValue.Create(text), limit));
250
Assert.False(AnalyzeCiFailure.
CiFailureJson
.Safe(text, max: 500));
251
Assert.False(AnalyzeCiFailure.
CiFailureJson
.Safe(text, max: 500, multiline: true));
261
Assert.False(AnalyzeCiFailure.
CiFailureJson
.Safe(text, max: 500));
262
Assert.True(AnalyzeCiFailure.
CiFailureJson
.Safe(text, max: 500, multiline: true));
AnalyzeCiFailureTransientContractTests.cs (1)
52
Assert.Equal("transient-infra",
CiFailureJson
.EnumText(Assert.Single(analysis.Report.Tests).Classification!.Value));
AnalyzeCiFailureVerdictMatrixTests.cs (1)
106
accepted.Add(
CiFailureJson
.EnumText(verdict));
AnalyzeCiFailureWorkflowTests.cs (14)
870
using var analysis = JsonDocument.Parse(AnalyzeCiFailure.
CiFailureJson
.Serialize(AnalyzeCiFailureFixtures.Validate(_workspace.Path).Report));
937
using var analysis = JsonDocument.Parse(AnalyzeCiFailure.
CiFailureJson
.Serialize(AnalyzeCiFailureFixtures.Validate(_workspace.Path).Report));
1451
using var sanitized = JsonDocument.Parse(AnalyzeCiFailure.
CiFailureJson
.Serialize(AnalyzeCiFailureFixtures.Validate(_workspace.Path).Report));
1675
using var sanitizedCause = JsonDocument.Parse(AnalyzeCiFailure.
CiFailureJson
.Serialize(
5109
return new(ExitCode: 1, "::error::" + AnalyzeCiFailure.
CiFailureJson
.Display(ex.Message) + "\n");
5159
AnalyzeCiFailure.
CiFailureJson
.Write(outputPath, run);
5180
AnalyzeCiFailure.
CiFailureJson
.WriteContract(candidatesPath, candidates);
5181
AnalyzeCiFailure.
CiFailureJson
.WriteContract(statusPath, new AnalyzeCiFailure.CandidateHistoryStatus { State = state });
5235
var analysis = AnalyzeCiFailure.
CiFailureJson
.ReadContract<AnalyzeCiFailure.AnalysisReport>(
5238
var context = AnalyzeCiFailure.
CiFailureJson
.ReadContract<AnalyzeCiFailure.RunContext>(Path.Combine(paths.RootDirectory, "run-context.json"))!;
5239
var jobs = AnalyzeCiFailure.
CiFailureJson
.Read(paths.FailedJobs);
5242
AnalyzeCiFailure.
CiFailureJson
.ReadContract<AnalyzeCiFailure.WorkflowRun>(paths.Run)!,
5243
AnalyzeCiFailure.
CiFailureJson
.ToContract<System.Collections.Immutable.ImmutableArray<AnalyzeCiFailure.WorkflowJob>>(jobs));
5244
AnalyzeCiFailure.
CiFailureJson
.WriteContract(
TestServices\AlternateWorkflowConventions.cs (2)
19
=>
CiFailureJson
.Text(job["name"]) == "Alternate gate";
23
var name =
CiFailureJson
.Text(job["name"])!;