refactor: extract compare URL helper

This commit is contained in:
Micheal Wilkinson
2026-03-20 23:31:58 +00:00
parent 48b36bddcd
commit 8ddc58f5b9

View File

@@ -468,7 +468,7 @@ func addChangelogLinks(text, repoURL, rootDir string) string {
linkDefs := make([]string, 0, len(releasedVersions)+1) linkDefs := make([]string, 0, len(releasedVersions)+1)
if len(releasedVersions) > 0 { if len(releasedVersions) > 0 {
latest := 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 { } else {
linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s/src/branch/main", repoURL)) 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 { for i, version := range releasedVersions {
if i+1 < len(releasedVersions) { if i+1 < len(releasedVersions) {
previousVersion := releasedVersions[i+1] 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 continue
} }
if hasFirstCommit { 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 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" 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 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) { func parseSemver(version string) (semver, error) {
parts := strings.Split(strings.TrimSpace(version), ".") parts := strings.Split(strings.TrimSpace(version), ".")
if len(parts) != 3 { if len(parts) != 3 {