diff --git a/hack/tools/release/notes/main_test.go b/hack/tools/release/notes/main_test.go index fda8b933bd0e..7670931c6475 100644 --- a/hack/tools/release/notes/main_test.go +++ b/hack/tools/release/notes/main_test.go @@ -72,38 +72,38 @@ func Test_trimAreaFromTitle(t *testing.T) { tests := []struct { name string title string - area string want string }{ { name: "PR title with area", - title: "e2e: improve logging for a detected rollout", - area: "e2e", + title: "test: improve logging for a detected rollout", want: "improve logging for a detected rollout", }, { name: "PR title without area", title: "improve logging for a detected rollout", - area: "e2e", want: "improve logging for a detected rollout", }, { name: "PR title without area being prefixed", title: "test/e2e: improve logging for a detected rollout", - area: "e2e", - want: "test/e2e: improve logging for a detected rollout", + want: "improve logging for a detected rollout", }, { name: "PR title without space between area and title", title: "e2e:improve logging for a detected rollout", - area: "e2e", + want: "improve logging for a detected rollout", + }, + { + name: "PR title with space between area and title", + title: "e2e/test: improve logging for a detected rollout", want: "improve logging for a detected rollout", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := trimAreaFromTitle(tt.title, tt.area); got != tt.want { + if got := trimAreaFromTitle(tt.title); got != tt.want { t.Errorf("trimAreaFromTitle() = %v, want %v", got, tt.want) } }) diff --git a/hack/tools/release/notes/process.go b/hack/tools/release/notes/process.go index d33864ee17b4..421fa0b8c169 100644 --- a/hack/tools/release/notes/process.go +++ b/hack/tools/release/notes/process.go @@ -31,10 +31,9 @@ import ( ) const ( - missingAreaLabelPrefix = "MISSING_AREA" - areaLabelPrefix = "area/" - multipleAreaLabelsPrefix = "MULTIPLE_AREAS[" - documentationArea = "Documentation" + missingAreaLabelPrefix = "MISSING_AREA" + areaLabelPrefix = "area/" + documentationArea = "Documentation" ) var ( @@ -192,7 +191,7 @@ func (g prEntriesProcessor) generateNoteEntry(p *pr) *notesEntry { } if g.addAreaPrefix { - entry.title = trimAreaFromTitle(entry.title, area) + entry.title = trimAreaFromTitle(entry.title) entry.title = capitalize(entry.title) entry.title = fmt.Sprintf("- %s: %s", area, entry.title) } else { @@ -227,7 +226,7 @@ func (g prEntriesProcessor) extractArea(pr *pr) string { case 1: return areaLabels[0] default: - return multipleAreaLabelsPrefix + strings.Join(areaLabels, "/") + "]" + return strings.Join(areaLabels, "/") } } @@ -281,11 +280,10 @@ func removePrefixes(title string, prefixes []string) string { } // trimAreaFromTitle removes the prefixed area from title to avoid duplication. -func trimAreaFromTitle(title, area string) string { - titleWithoutArea := title - pattern := `(?i)^` + regexp.QuoteMeta(area+":") - re := regexp.MustCompile(pattern) - titleWithoutArea = re.ReplaceAllString(titleWithoutArea, "") +func trimAreaFromTitle(title string) string { + re := regexp.MustCompile(`^[^:]*:\s*`) + titleWithoutArea := re.ReplaceAllString(title, "") titleWithoutArea = strings.TrimSpace(titleWithoutArea) + return titleWithoutArea }