aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/pkg/api/api.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-02-13 11:57:14 +0100
committerAleksandr Nogikh <nogikh@google.com>2025-02-14 13:40:12 +0000
commitf20e88b2468bdcdb631b14e384f1f9a67e984013 (patch)
treed2758c08ab9deea9354a91237a3d9234de0efce3 /syz-cluster/pkg/api/api.go
parenteaf86f3f4dc8a7190abf09fe840e20bcf83709d8 (diff)
syz-cluster: report session results
Provide an API to set up the reporting of finished sessions for which syz-cluster collected reportable findings. The actual sending of the results is to be done in a separate component that would: 1) Call Next() to get the next report to send. 2) Call Confirm() to confirm that the report has been sent. 3) Call Upstream() if the report has been moderated and needs to be sent to e.g. public mailing lists.
Diffstat (limited to 'syz-cluster/pkg/api/api.go')
-rw-r--r--syz-cluster/pkg/api/api.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/syz-cluster/pkg/api/api.go b/syz-cluster/pkg/api/api.go
index 1b2f991dc..b9126520e 100644
--- a/syz-cluster/pkg/api/api.go
+++ b/syz-cluster/pkg/api/api.go
@@ -77,8 +77,8 @@ type BootResult struct {
Success bool `json:"success"`
}
-// Finding is a kernel crash, boot error, etc. found during a test.
-type Finding struct {
+// NewFinding is a kernel crash, boot error, etc. found during a test.
+type NewFinding struct {
SessionID string `json:"session_id"`
TestName string `json:"test_name"`
Title string `json:"title"`
@@ -118,6 +118,21 @@ type NewSession struct {
Tags []string `json:"tags"`
}
+type SessionReport struct {
+ ID string `json:"id"`
+ Moderation bool `json:"moderation"`
+ // TODO: add some session info?
+ Series *Series `json:"series"`
+ Findings []*Finding `json:"findings"`
+ Link string `json:"link"` // URL to the web dashboard.
+}
+
+type Finding struct {
+ Title string `json:"title"`
+ Report []byte `json:"report"`
+ LogURL string `json:"log_url"`
+}
+
// For now, there's no reason to obtain these really via a real API call.
var defaultTrees = []*Tree{
{