aboutsummaryrefslogtreecommitdiffstats
path: root/syz-cluster/series-tracker
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2025-07-23 13:40:51 +0200
committerAleksandr Nogikh <nogikh@google.com>2025-07-23 12:19:42 +0000
commit232127f5523d40abb108cd855148401c8bd89e3b (patch)
tree2e9729e9a509516587eda0e2641983293caf05ec /syz-cluster/series-tracker
parente0b9ac936f136a5a03a40283b911bc4802d98bef (diff)
syz-cluster/series-tracker: use simpler lore links
Trim away angle brackets because otherwise email clients do not recognize the resulting links.
Diffstat (limited to 'syz-cluster/series-tracker')
-rw-r--r--syz-cluster/series-tracker/main.go7
-rw-r--r--syz-cluster/series-tracker/main_test.go9
2 files changed, 15 insertions, 1 deletions
diff --git a/syz-cluster/series-tracker/main.go b/syz-cluster/series-tracker/main.go
index d6f28a497..015f69290 100644
--- a/syz-cluster/series-tracker/main.go
+++ b/syz-cluster/series-tracker/main.go
@@ -15,6 +15,7 @@ import (
"regexp"
"slices"
"sort"
+ "strings"
"time"
"github.com/google/syzkaller/pkg/email"
@@ -158,7 +159,7 @@ func (sf *SeriesFetcher) handleSeries(ctx context.Context, series *lore.Series,
Title: series.Subject,
Version: series.Version,
SubjectTags: series.Tags,
- Link: "https://lore.kernel.org/all/" + series.MessageID,
+ Link: loreLink(series.MessageID),
PublishedAt: date,
}
sp := seriesProcessor{}
@@ -198,6 +199,10 @@ func (sf *SeriesFetcher) handleSeries(ctx context.Context, series *lore.Series,
return nil
}
+func loreLink(messageID string) string {
+ return "https://lore.kernel.org/all/" + strings.Trim(messageID, "<>")
+}
+
type seriesProcessor map[string]struct{}
var errFailedToParse = errors.New("failed to parse the email")
diff --git a/syz-cluster/series-tracker/main_test.go b/syz-cluster/series-tracker/main_test.go
index 805335076..9b207989e 100644
--- a/syz-cluster/series-tracker/main_test.go
+++ b/syz-cluster/series-tracker/main_test.go
@@ -43,3 +43,12 @@ second body`,
"bob@example.com", "d@d.com",
}, sp.Emails())
}
+
+func TestLoreLink(t *testing.T) {
+ for id, link := range map[string]string{
+ "<id@domain>": "https://lore.kernel.org/all/id@domain",
+ "id@domain": "https://lore.kernel.org/all/id@domain",
+ } {
+ assert.Equal(t, link, loreLink(id), "id=%q", id)
+ }
+}