ProtoTest.Feedback
1.1.6
dotnet add package ProtoTest.Feedback --version 1.1.6
NuGet\Install-Package ProtoTest.Feedback -Version 1.1.6
<PackageReference Include="ProtoTest.Feedback" Version="1.1.6" />
<PackageVersion Include="ProtoTest.Feedback" Version="1.1.6" />
<PackageReference Include="ProtoTest.Feedback" />
paket add ProtoTest.Feedback --version 1.1.6
#r "nuget: ProtoTest.Feedback, 1.1.6"
#:package ProtoTest.Feedback@1.1.6
#addin nuget:?package=ProtoTest.Feedback&version=1.1.6
#tool nuget:?package=ProtoTest.Feedback&version=1.1.6
ProtoTest.Feedback
Preview: the surface can change before 1.2.
Posts a failing run's digest where a pull request reads it: a comment with the trace link, check
annotations and a webhook for a machine consumer. The digest is the ProtoTest.Diagnosis document,
so the comment, the CLI and the MCP tools cannot tell different stories.
dotnet add package ProtoTest.Feedback
var digest = ProtoFeedback.ReadDigest("TestResults/Shop.prototrace");
var report = await ProtoFeedback.PostAsync(
digest,
new ProtoFeedbackTarget
{
Token = token,
Repository = "owner/repo",
PullRequestNumber = 7,
TraceLink = "https://github.com/owner/repo/actions/runs/1/artifacts/2"
},
httpClient,
Console.Out);
foreach (var channel in report.Channels)
{
Console.WriteLine($"{channel.Channel}: {channel.Status} {channel.Reason}");
}
The channels are pure functions of the digest and report one outcome each:
| Channel | Posts | Skips when |
|---|---|---|
github-annotations |
one ::error per failing test, with its source location, and one per failed run gate |
the run has no failures |
github-pr-comment |
the evidence comment: what failed, what the change broke and fixed, the coverage that moved, and the trace link, to POST /repos/{repo}/issues/{number}/comments |
no token, no repository, no pull request number, or a run with nothing to report |
webhook |
the digest JSON to the configured address, with an optional shared-secret header | no webhook URL |
prototest feedback <file.prototrace> runs the same post, reading the targets from the environment;
see ProtoTest.Cli.
Limits
- Post-run by design: the digest is read from the written
.prototracearchive. A run-time sink cannot be the mechanism, because the archive is written after sinks and a failed assertion is not a report item. - One digest:
ProtoDiagnosis.Readbuilds it from the archive and its embedded report. The channels render it and never recompute coverage or the failure selection. - Nothing leaves the machine by default: no target means no post, and the annotations are written to the writer the caller gives. A refused target fails its channel, named, instead of being swallowed.
- The comment posts only when the digest carries a failure or a failed gate; a green run's status check is the report. The webhook posts every digest, because a machine consumer decides.
- The summary card is an image URL that carries counts and coverage category names only. The
library leaves it out unless
SummaryCardUrlis set; the CLI sets it unless told not to. - The comment shows at most 20 failing tests and 20 coverage rows; the trace has the rest.
- The shared-secret header carries the secret value; it is not an HMAC signature.
- A skipped test is not annotated: it did not fail.
Learn more
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- ProtoTest.Diagnosis (>= 1.1.6)
- ProtoTest.Verification (>= 1.1.6)
-
net8.0
- ProtoTest.Diagnosis (>= 1.1.6)
- ProtoTest.Verification (>= 1.1.6)
-
net9.0
- ProtoTest.Diagnosis (>= 1.1.6)
- ProtoTest.Verification (>= 1.1.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.