feat: emit protocol-relative display urls

This commit is contained in:
Micheal Wilkinson
2026-03-20 23:56:42 +00:00
parent 788ef1b49d
commit a139417f02
2 changed files with 22 additions and 7 deletions

View File

@@ -98,8 +98,10 @@ jobs:
repo_name="${GITHUB_REPOSITORY##*/}" repo_name="${GITHUB_REPOSITORY##*/}"
prefix="${repo_name}/branch/${GITHUB_REF_NAME}" prefix="${repo_name}/branch/${GITHUB_REF_NAME}"
report_url="${ARTEFACT_BUCKET_ENDPONT%/}/${ARTEFACT_BUCKET_NAME}/${prefix}/coverage.html" display_endpoint="${ARTEFACT_BUCKET_ENDPONT#https://}"
badge_url="${ARTEFACT_BUCKET_ENDPONT%/}/${ARTEFACT_BUCKET_NAME}/${prefix}/coverage-badge.svg" 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.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 aws --endpoint-url "${ARTEFACT_BUCKET_ENDPONT}" s3 cp coverage-badge.svg "s3://${ARTEFACT_BUCKET_NAME}/${prefix}/coverage-badge.svg" --content-type image/svg+xml

View File

@@ -477,6 +477,8 @@ func addChangelogLinks(text, repoURL, rootDir string) string {
return text return text
} }
displayRepoURL := displayURL(repoURL)
// Normalize headings to plain format, stripping any existing inline links. // Normalize headings to plain format, stripping any existing inline links.
text = unreleasedHeadingRe.ReplaceAllString(text, "## [Unreleased]\n") text = unreleasedHeadingRe.ReplaceAllString(text, "## [Unreleased]\n")
text = releaseHeadingRe.ReplaceAllStringFunc(text, func(match string) string { 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) 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", compareURL(repoURL, "v"+latest, "main"))) linkDefs = append(linkDefs, fmt.Sprintf("[Unreleased]: %s", compareURL(displayRepoURL, "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", displayRepoURL))
} }
firstCommitShort, hasFirstCommit := firstCommitShortHash(rootDir) firstCommitShort, hasFirstCommit := firstCommitShortHash(rootDir)
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", version, compareURL(repoURL, "v"+previousVersion, "v"+version))) linkDefs = append(linkDefs, fmt.Sprintf("[%s]: %s", version, compareURL(displayRepoURL, "v"+previousVersion, "v"+version)))
continue continue
} }
if hasFirstCommit { 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 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" 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) { func firstCommitShortHash(rootDir string) (string, bool) {
command := exec.Command("git", "-C", rootDir, "rev-list", "--max-parents=0", "--abbrev-commit", "HEAD") command := exec.Command("git", "-C", rootDir, "rev-list", "--max-parents=0", "--abbrev-commit", "HEAD")
output, err := command.Output() output, err := command.Output()