diff --git a/.gitea/workflows/push-validation.yml b/.gitea/workflows/push-validation.yml index 10717c2..13e08be 100644 --- a/.gitea/workflows/push-validation.yml +++ b/.gitea/workflows/push-validation.yml @@ -98,8 +98,10 @@ jobs: repo_name="${GITHUB_REPOSITORY##*/}" prefix="${repo_name}/branch/${GITHUB_REF_NAME}" - report_url="${ARTEFACT_BUCKET_ENDPONT%/}/${ARTEFACT_BUCKET_NAME}/${prefix}/coverage.html" - badge_url="${ARTEFACT_BUCKET_ENDPONT%/}/${ARTEFACT_BUCKET_NAME}/${prefix}/coverage-badge.svg" + display_endpoint="${ARTEFACT_BUCKET_ENDPONT#https://}" + display_endpoint="${display_endpoint#http://}" + report_url="//${display_endpoint%/}/${ARTEFACT_BUCKET_NAME}/${prefix}/coverage.html" + badge_url="//${display_endpoint%/}/${ARTEFACT_BUCKET_NAME}/${prefix}/coverage-badge.svg" aws --endpoint-url "${ARTEFACT_BUCKET_ENDPONT}" s3 cp coverage.html "s3://${ARTEFACT_BUCKET_NAME}/${prefix}/coverage.html" --content-type text/html aws --endpoint-url "${ARTEFACT_BUCKET_ENDPONT}" s3 cp coverage-badge.svg "s3://${ARTEFACT_BUCKET_NAME}/${prefix}/coverage-badge.svg" --content-type image/svg+xml diff --git a/internal/vociferate/vociferate.go b/internal/vociferate/vociferate.go index 05f4725..dbf6d65 100644 --- a/internal/vociferate/vociferate.go +++ b/internal/vociferate/vociferate.go @@ -477,6 +477,8 @@ func addChangelogLinks(text, repoURL, rootDir string) string { return text } + displayRepoURL := displayURL(repoURL) + // Normalize headings to plain format, stripping any existing inline links. text = unreleasedHeadingRe.ReplaceAllString(text, "## [Unreleased]\n") text = releaseHeadingRe.ReplaceAllStringFunc(text, func(match string) string { @@ -512,30 +514,41 @@ 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", compareURL(repoURL, "v"+latest, "main"))) + linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s", compareURL(displayRepoURL, "v"+latest, "main"))) } else { - linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s/src/branch/main", repoURL)) + linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s/src/branch/main", displayRepoURL)) } firstCommitShort, hasFirstCommit := firstCommitShortHash(rootDir) for i, version := range releasedVersions { if i+1 < len(releasedVersions) { previousVersion := releasedVersions[i+1] - linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(repoURL, "v"+previousVersion, "v"+version))) + linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(displayRepoURL, "v"+previousVersion, "v"+version))) continue } if hasFirstCommit { - linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(repoURL, firstCommitShort, "v"+version))) + linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(displayRepoURL, firstCommitShort, "v"+version))) continue } - linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(repoURL, "v"+version, "main"))) + linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(displayRepoURL, "v"+version, "main"))) } return strings.TrimRight(text, "\n") + "\n\n" + strings.Join(linkDefs, "\n") + "\n" } +func displayURL(url string) string { + trimmed := strings.TrimSpace(url) + if strings.HasPrefix(trimmed, "https://") { + return "//" + strings.TrimPrefix(trimmed, "https://") + } + if strings.HasPrefix(trimmed, "http://") { + return "//" + strings.TrimPrefix(trimmed, "http://") + } + return trimmed +} + func firstCommitShortHash(rootDir string) (string, bool) { command := exec.Command("git", "-C", rootDir, "rev-list", "--max-parents=0", "--abbrev-commit", "HEAD") output, err := command.Output()