diff --git a/internal/vociferate/vociferate.go b/internal/vociferate/vociferate.go index d014006..c0ed9e8 100644 --- a/internal/vociferate/vociferate.go +++ b/internal/vociferate/vociferate.go @@ -468,7 +468,7 @@ func addChangelogLinks(text, repoURL, rootDir string) string { linkDefs := make([]string, 0, len(releasedVersions)+1) if len(releasedVersions) > 0 { latest := releasedVersions[0] - linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s/compare/v%s...main", repoURL, latest)) + linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s", compareURL(repoURL, "v"+latest, "main"))) } else { linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s/src/branch/main", repoURL)) } @@ -477,16 +477,16 @@ func addChangelogLinks(text, repoURL, rootDir string) string { for i, version := range releasedVersions { if i+1 < len(releasedVersions) { previousVersion := releasedVersions[i+1] - linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s/compare/v%s...v%s", version, repoURL, previousVersion, version)) + linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(repoURL, "v"+previousVersion, "v"+version))) continue } if hasFirstCommit { - linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s/compare/%s...v%s", version, repoURL, firstCommitShort, version)) + linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(repoURL, firstCommitShort, "v"+version))) continue } - linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s/compare/v%s...main", version, repoURL, version)) + linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(repoURL, "v"+version, "main"))) } return strings.TrimRight(text, "\n") + "\n\n" + strings.Join(linkDefs, "\n") + "\n" @@ -511,6 +511,10 @@ func firstCommitShortHash(rootDir string) (string, bool) { return commit, true } +func compareURL(repoURL, baseRef, headRef string) string { + return fmt.Sprintf("%s/compare/%s...%s", repoURL, baseRef, headRef) +} + func parseSemver(version string) (semver, error) { parts := strings.Split(strings.TrimSpace(version), ".") if len(parts) != 3 {