diff --git a/hack/tools/release/notes.go b/hack/tools/release/notes.go index 478571212365..3a35223b3330 100644 --- a/hack/tools/release/notes.go +++ b/hack/tools/release/notes.go @@ -444,6 +444,17 @@ func modifyEntryTitle(title string, prefixes []string) string { return strings.ToUpper(string(entryWithoutTag[0])) + entryWithoutTag[1:] } +// trimAreaFromTitle removes area from title to avoid duplication +func trimAreaFromTitle(title, area string) string { + titleWithoutArea := title + position := strings.Index(title, area+":") + if position != -1 { + titleWithoutArea = strings.TrimSpace(titleWithoutArea[position+len(area+":"):]) + } + titleWithoutArea = fmt.Sprintf("- %s: %s", area, titleWithoutArea) + return titleWithoutArea +} + // generateReleaseNoteEntry processes a commit into a PR line item for the release notes. func generateReleaseNoteEntry(c *commit) (*releaseNoteEntry, error) { entry := &releaseNoteEntry{} @@ -501,7 +512,7 @@ func generateReleaseNoteEntry(c *commit) (*releaseNoteEntry, error) { } if *prefixAreaLabel { - entry.title = fmt.Sprintf("- %s: %s", area, entry.title) + entry.title = trimAreaFromTitle(entry.title, area) } else { entry.title = fmt.Sprintf("- %s", entry.title) }