diff --git a/buildmodel/buildassets/buildassets.go b/buildmodel/buildassets/buildassets.go index ecb10238..b7a285ec 100644 --- a/buildmodel/buildassets/buildassets.go +++ b/buildmodel/buildassets/buildassets.go @@ -119,7 +119,10 @@ func (b BuildAssets) GoVersion() *goversion.GoVersion { var ( archiveSuffixes = []string{".tar.gz", ".zip"} checksumSuffix = ".sha256" - signatureSuffix = ".sig" + // signatureSuffixes are the extensions used to store signatures, in alphabetical order. Both + // hold identical content (the same PGP signature file); we publish it under both extensions so + // consumers can find it by whichever name they expect. Both are produced and shipped. + signatureSuffixes = []string{".asc", ".sig"} ) // BuildResultsDirectoryInfo points to locations in the filesystem that contain a Go build from @@ -246,10 +249,9 @@ func (b BuildResultsDirectoryInfo) CreateSummary() (*BuildAssets, error) { continue } - // Is it a signature file? - if associatedName, ok := stringutil.CutSuffix(e.Name(), signatureSuffix); ok { - a := getOrCreateArch(associatedName) - + // Is it a .sig signature file? + if sigName, ok := stringutil.CutSuffix(e.Name(), ".sig"); ok { + a := getOrCreateArch(sigName) a.PGPSignatureURL, err = getURL(e.Name()) if err != nil { return nil, fmt.Errorf("unable to get URL for signature file %q: %w", e.Name(), err) @@ -257,6 +259,16 @@ func (b BuildResultsDirectoryInfo) CreateSummary() (*BuildAssets, error) { continue } + // Is it a .asc signature file? Identical content to .sig, published under both names. + if ascName, ok := stringutil.CutSuffix(e.Name(), ".asc"); ok { + a := getOrCreateArch(ascName) + a.ASCSignatureURL, err = getURL(e.Name()) + if err != nil { + return nil, fmt.Errorf("unable to get URL for signature file %q: %w", e.Name(), err) + } + continue + } + // Is it a source archive file? if platform == "src" { goSrcURL, err = getURL(e.Name()) @@ -334,11 +346,13 @@ func (b BuildResultsDirectoryInfo) CreateSummary() (*BuildAssets, error) { // assets.json file should be used for the canonical version information. func CutToolsetFileParts(filename string) (prefix, platform, ext string, ok bool) { for _, archiveExt := range archiveSuffixes { - for _, ext := range []string{ - archiveExt, - archiveExt + checksumSuffix, - archiveExt + signatureSuffix, - } { + var suffixes []string + suffixes = append(suffixes, archiveExt) + suffixes = append(suffixes, archiveExt+checksumSuffix) + for _, sigSuffix := range signatureSuffixes { + suffixes = append(suffixes, archiveExt+sigSuffix) + } + for _, ext := range suffixes { preExt, ok := stringutil.CutSuffix(filename, ext) if !ok { continue diff --git a/buildmodel/buildassets/testdata/1.17-build/bin.txtar b/buildmodel/buildassets/testdata/1.17-build/bin.txtar index 00782b82..270b3464 100644 --- a/buildmodel/buildassets/testdata/1.17-build/bin.txtar +++ b/buildmodel/buildassets/testdata/1.17-build/bin.txtar @@ -6,11 +6,14 @@ files have been truncated to have no content. -- go.linux-amd64.tar.gz.sha256 -- 0000000000000000000000000000000000000000000000000000000000000000 go.linux-amd64.tar.gz -- go.linux-amd64.tar.gz.sig -- +-- go.linux-amd64.tar.gz.asc -- -- go.linux-arm64.tar.gz -- -- go.linux-arm64.tar.gz.sha256 -- 0000000000000000000000000000000000000000000000000000000000000000 go.linux-arm64.tar.gz -- go.linux-arm64.tar.gz.sig -- +-- go.linux-arm64.tar.gz.asc -- -- go.linux-armv6l.tar.gz -- -- go.linux-armv6l.tar.gz.sha256 -- 0000000000000000000000000000000000000000000000000000000000000000 go.linux-armv6l.tar.gz -- go.linux-armv6l.tar.gz.sig -- +-- go.linux-armv6l.tar.gz.asc -- diff --git a/buildmodel/buildassets/testdata/1.23dev-missing-publish/bin.txtar b/buildmodel/buildassets/testdata/1.23dev-missing-publish/bin.txtar index f327ca72..ae9ea9ec 100644 --- a/buildmodel/buildassets/testdata/1.23dev-missing-publish/bin.txtar +++ b/buildmodel/buildassets/testdata/1.23dev-missing-publish/bin.txtar @@ -7,6 +7,7 @@ manifest doesn't have a matching entry. The summary creation process should dete -- go1.23-0def9d5c-20240709.2.src.tar.gz.sha256 -- e18be7a50671fa8fce652bf58cb5e0960b2ebcd064d526c7616274ad3799a1cf go1.23-0def9d5c-20240709.2.src.tar.gz -- go1.23-0def9d5c-20240709.2.src.tar.gz.sig -- +-- go1.23-0def9d5c-20240709.2.src.tar.gz.asc -- -- go1.23-0def9d5c-20240709.2.windows-amd64.zip -- -- go1.23-0def9d5c-20240709.2.windows-amd64.zip.sha256 -- cd6a8dc304f80147155fb3aded2e714238a4a7f939fb57e47f4b75281e662555 go1.23-0def9d5c-20240709.2.windows-amd64.zip diff --git a/buildmodel/buildassets/testdata/1.23dev-missing-publish/msGo.output.manifest.json b/buildmodel/buildassets/testdata/1.23dev-missing-publish/msGo.output.manifest.json index 173d6d26..ae1dc3a7 100644 Binary files a/buildmodel/buildassets/testdata/1.23dev-missing-publish/msGo.output.manifest.json and b/buildmodel/buildassets/testdata/1.23dev-missing-publish/msGo.output.manifest.json differ diff --git a/buildmodel/buildassets/testdata/1.23dev-publish/bin.txtar b/buildmodel/buildassets/testdata/1.23dev-publish/bin.txtar index 799af916..f18b80c0 100644 --- a/buildmodel/buildassets/testdata/1.23dev-publish/bin.txtar +++ b/buildmodel/buildassets/testdata/1.23dev-publish/bin.txtar @@ -4,18 +4,22 @@ A set of files representing a build, but with no content in the binary files. -- go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.sha256 -- 4d43335c30e564053b32a0f4489eeaf399d49fe5a201961a573e42234201e5d3 go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz -- go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.sig -- +-- go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.asc -- -- go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz -- -- go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.sha256 -- 4ff938e9b8bafe42809d441ec288679fb9759b34a5c4b162e0e4c335ecb4bcdd go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz -- go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.sig -- +-- go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.asc -- -- go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz -- -- go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.sha256 -- 11cb59a7da47abfdb8b88be7339d97ce1e9e0ca3ebd8e0fbdc1cfde73d547279 go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz -- go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.sig -- +-- go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.asc -- -- go1.23-0def9d5c-20240709.2.src.tar.gz -- -- go1.23-0def9d5c-20240709.2.src.tar.gz.sha256 -- e18be7a50671fa8fce652bf58cb5e0960b2ebcd064d526c7616274ad3799a1cf go1.23-0def9d5c-20240709.2.src.tar.gz -- go1.23-0def9d5c-20240709.2.src.tar.gz.sig -- +-- go1.23-0def9d5c-20240709.2.src.tar.gz.asc -- -- go1.23-0def9d5c-20240709.2.windows-amd64.zip -- -- go1.23-0def9d5c-20240709.2.windows-amd64.zip.sha256 -- cd6a8dc304f80147155fb3aded2e714238a4a7f939fb57e47f4b75281e662555 go1.23-0def9d5c-20240709.2.windows-amd64.zip diff --git a/buildmodel/buildassets/testdata/1.23dev-publish/msGo.output.manifest.json b/buildmodel/buildassets/testdata/1.23dev-publish/msGo.output.manifest.json index d64f026a..6dd2e1e3 100644 Binary files a/buildmodel/buildassets/testdata/1.23dev-publish/msGo.output.manifest.json and b/buildmodel/buildassets/testdata/1.23dev-publish/msGo.output.manifest.json differ diff --git a/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.17-build/result.golden.txt b/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.17-build/result.golden.txt index 25a6afd0..5ea9eb22 100644 --- a/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.17-build/result.golden.txt +++ b/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.17-build/result.golden.txt @@ -11,7 +11,8 @@ "sha256": "0000000000000000000000000000000000000000000000000000000000000000", "url": "https://example.org/go.linux-amd64.tar.gz", "sha256ChecksumUrl": "https://example.org/go.linux-amd64.tar.gz.sha256", - "pgpSignatureUrl": "https://example.org/go.linux-amd64.tar.gz.sig" + "pgpSignatureUrl": "https://example.org/go.linux-amd64.tar.gz.sig", + "ascSignatureUrl": "https://example.org/go.linux-amd64.tar.gz.asc" }, { "env": { @@ -21,7 +22,8 @@ "sha256": "0000000000000000000000000000000000000000000000000000000000000000", "url": "https://example.org/go.linux-arm64.tar.gz", "sha256ChecksumUrl": "https://example.org/go.linux-arm64.tar.gz.sha256", - "pgpSignatureUrl": "https://example.org/go.linux-arm64.tar.gz.sig" + "pgpSignatureUrl": "https://example.org/go.linux-arm64.tar.gz.sig", + "ascSignatureUrl": "https://example.org/go.linux-arm64.tar.gz.asc" }, { "env": { @@ -32,7 +34,8 @@ "sha256": "0000000000000000000000000000000000000000000000000000000000000000", "url": "https://example.org/go.linux-armv6l.tar.gz", "sha256ChecksumUrl": "https://example.org/go.linux-armv6l.tar.gz.sha256", - "pgpSignatureUrl": "https://example.org/go.linux-armv6l.tar.gz.sig" + "pgpSignatureUrl": "https://example.org/go.linux-armv6l.tar.gz.sig", + "ascSignatureUrl": "https://example.org/go.linux-armv6l.tar.gz.asc" } ], "goSrcURL": "", diff --git a/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.23dev-publish/result.golden.txt b/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.23dev-publish/result.golden.txt index 98b1138d..1020b3ef 100644 --- a/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.23dev-publish/result.golden.txt +++ b/buildmodel/buildassets/testdata/TestBuildResultsDirectoryInfo_GoldenCreateSummary/1.23dev-publish/result.golden.txt @@ -12,7 +12,8 @@ "sha256": "11cb59a7da47abfdb8b88be7339d97ce1e9e0ca3ebd8e0fbdc1cfde73d547279", "url": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/4f51/go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz", "sha256ChecksumUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/3df7/go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.sha256", - "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c211/go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.sig" + "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c211/go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.sig", + "ascSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c211/go1.23-0def9d5c-20240709.2.linux-armv6l.tar.gz.asc" }, { "env": { @@ -31,7 +32,8 @@ "sha256": "4d43335c30e564053b32a0f4489eeaf399d49fe5a201961a573e42234201e5d3", "url": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c226/go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz", "sha256ChecksumUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/3507/go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.sha256", - "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/20eb/go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.sig" + "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/20eb/go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.sig", + "ascSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/20eb/go1.23-0def9d5c-20240709.2.linux-amd64.tar.gz.asc" }, { "env": { @@ -41,13 +43,15 @@ "sha256": "4ff938e9b8bafe42809d441ec288679fb9759b34a5c4b162e0e4c335ecb4bcdd", "url": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/cee0/go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz", "sha256ChecksumUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/a6f0/go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.sha256", - "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c815f/go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.sig" + "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c815f/go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.sig", + "ascSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/c815f/go1.23-0def9d5c-20240709.2.linux-arm64.tar.gz.asc" }, { "sha256": "e18be7a50671fa8fce652bf58cb5e0960b2ebcd064d526c7616274ad3799a1cf", "url": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/e035/go1.23-0def9d5c-20240709.2.src.tar.gz", "sha256ChecksumUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/85a9/go1.23-0def9d5c-20240709.2.src.tar.gz.sha256", - "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/eb070/go1.23-0def9d5c-20240709.2.src.tar.gz.sig" + "pgpSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/eb070/go1.23-0def9d5c-20240709.2.src.tar.gz.sig", + "ascSignatureUrl": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/eb070/go1.23-0def9d5c-20240709.2.src.tar.gz.asc" } ], "goSrcURL": "https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/e035/go1.23-0def9d5c-20240709.2.src.tar.gz", diff --git a/buildmodel/dockerversions/dockerversions.go b/buildmodel/dockerversions/dockerversions.go index 591f7126..930ec1a4 100644 --- a/buildmodel/dockerversions/dockerversions.go +++ b/buildmodel/dockerversions/dockerversions.go @@ -85,11 +85,17 @@ type Arch struct { // If not specified, the file can be reached by appending ".sha256" to the URL. SHA256ChecksumURL string `json:"sha256ChecksumUrl,omitempty"` - // PGPSignatureURL is the URL of a PGP signature file for this artifact, commonly verified using - // the "gpg" tool. + // PGPSignatureURL is the URL of a PGP signature file (.sig) for this artifact, commonly + // verified using the "gpg" tool. // // If not specified, the file can be reached by appending ".sig" to the URL. PGPSignatureURL string `json:"pgpSignatureUrl,omitempty"` + + // ASCSignatureURL is the URL of a .asc copy of the PGP signature for this artifact. It holds + // identical content to the .sig file, published under the ".asc" name that some tools expect. + // + // If not specified, the file can be reached by appending ".asc" to the URL. + ASCSignatureURL string `json:"ascSignatureUrl,omitempty"` } // ArchEnv is the environment an artifact is expected to be useful in. diff --git a/cmd/releasego/akams_test.go b/cmd/releasego/akams_test.go index 02eb3924..819d467e 100644 --- a/cmd/releasego/akams_test.go +++ b/cmd/releasego/akams_test.go @@ -43,11 +43,13 @@ func Test_createLinkPairs(t *testing.T) { URL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/333aa/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz", SHA256ChecksumURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/87654/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sha256", PGPSignatureURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12345/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sig", + ASCSignatureURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12346/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.asc", }, { URL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/3b32d/go1.23-90bcc55-20240626.1.src.tar.gz", SHA256ChecksumURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/66dda/go1.23-90bcc55-20240626.1.src.tar.gz.sha256", PGPSignatureURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af253/go1.23-90bcc55-20240626.1.src.tar.gz.sig", + ASCSignatureURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af254/go1.23-90bcc55-20240626.1.src.tar.gz.asc", }, }, GoSrcURL: "https://download.visualstudio.microsoft.com/download/pr/8330ba2b/3b32d/go1.23-90bcc55-20240626.1.src.tar.gz", diff --git a/cmd/releasego/main.go b/cmd/releasego/main.go index 6f2d5f53..77bca22d 100644 --- a/cmd/releasego/main.go +++ b/cmd/releasego/main.go @@ -47,6 +47,7 @@ func appendPathAndVerificationFilePaths(p []string, path string) []string { p = append(p, path, path+".sha256") if strings.HasSuffix(path, ".tar.gz") { p = append(p, path+".sig") + p = append(p, path+".asc") } return p } @@ -78,6 +79,13 @@ func appendReleaseURLs(urls []string, assets *buildassets.BuildAssets, assetJSON } else { urls = append(urls, a.PGPSignatureURL) } + if a.ASCSignatureURL == "" { + if strings.HasSuffix(a.URL, ".tar.gz") { + urls = append(urls, a.URL+".asc") + } + } else { + urls = append(urls, a.ASCSignatureURL) + } } if !addedSrc { // If there wasn't a source archive in the "arches" section, apply a URL suffix convention. diff --git a/cmd/releasego/testdata/Test_createLinkPairs/blob/aka.golden.txt b/cmd/releasego/testdata/Test_createLinkPairs/blob/aka.golden.txt index bb39b55e..9a82c531 100644 --- a/cmd/releasego/testdata/Test_createLinkPairs/blob/aka.golden.txt +++ b/cmd/releasego/testdata/Test_createLinkPairs/blob/aka.golden.txt @@ -1,21 +1,27 @@ testing/go1.17.linux-amd64.tar.gz -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz testing/go1.17.linux-amd64.tar.gz.sha256 -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.sha256 testing/go1.17.linux-amd64.tar.gz.sig -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.sig +testing/go1.17.linux-amd64.tar.gz.asc -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.asc testing/go1.17.src.tar.gz -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz testing/go1.17.src.tar.gz.sha256 -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.sha256 testing/go1.17.src.tar.gz.sig -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.sig +testing/go1.17.src.tar.gz.asc -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.asc testing/go1.17.assets.json -> https://example.org/golang/build/1234.10/assets.json testing/go1.17.7.linux-amd64.tar.gz -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz testing/go1.17.7.linux-amd64.tar.gz.sha256 -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.sha256 testing/go1.17.7.linux-amd64.tar.gz.sig -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.sig +testing/go1.17.7.linux-amd64.tar.gz.asc -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.asc testing/go1.17.7.src.tar.gz -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz testing/go1.17.7.src.tar.gz.sha256 -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.sha256 testing/go1.17.7.src.tar.gz.sig -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.sig +testing/go1.17.7.src.tar.gz.asc -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.asc testing/go1.17.7.assets.json -> https://example.org/golang/build/1234.10/assets.json testing/go1.17.7-1.linux-amd64.tar.gz -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz testing/go1.17.7-1.linux-amd64.tar.gz.sha256 -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.sha256 testing/go1.17.7-1.linux-amd64.tar.gz.sig -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.sig +testing/go1.17.7-1.linux-amd64.tar.gz.asc -> https://example.org/golang/build/1234.10/go.1234.10.linux-amd64.tar.gz.asc testing/go1.17.7-1.src.tar.gz -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz testing/go1.17.7-1.src.tar.gz.sha256 -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.sha256 testing/go1.17.7-1.src.tar.gz.sig -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.sig +testing/go1.17.7-1.src.tar.gz.asc -> https://example.org/golang/build/1234.10/go.1234.10.src.tar.gz.asc testing/go1.17.7-1.assets.json -> https://example.org/golang/build/1234.10/assets.json diff --git a/cmd/releasego/testdata/Test_createLinkPairs/release_studio/aka.golden.txt b/cmd/releasego/testdata/Test_createLinkPairs/release_studio/aka.golden.txt index bae17559..4990344a 100644 --- a/cmd/releasego/testdata/Test_createLinkPairs/release_studio/aka.golden.txt +++ b/cmd/releasego/testdata/Test_createLinkPairs/release_studio/aka.golden.txt @@ -3,25 +3,31 @@ testing/go1.22.windows-amd64.zip.sha256 -> https://download.visualstudio.mi testing/go1.22.linux-amd64.tar.gz -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/333aa/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz testing/go1.22.linux-amd64.tar.gz.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/87654/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sha256 testing/go1.22.linux-amd64.tar.gz.sig -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12345/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sig +testing/go1.22.linux-amd64.tar.gz.asc -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12346/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.asc testing/go1.22.src.tar.gz -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/3b32d/go1.23-90bcc55-20240626.1.src.tar.gz testing/go1.22.src.tar.gz.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/66dda/go1.23-90bcc55-20240626.1.src.tar.gz.sha256 testing/go1.22.src.tar.gz.sig -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af253/go1.23-90bcc55-20240626.1.src.tar.gz.sig +testing/go1.22.src.tar.gz.asc -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af254/go1.23-90bcc55-20240626.1.src.tar.gz.asc testing/go1.22.assets.json -> https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/3df7/assets.json testing/go1.22.3.windows-amd64.zip -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/62f44/go1.23-90bcc55-20240626.1.windows-amd64.zip testing/go1.22.3.windows-amd64.zip.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/41bc5/go1.23-90bcc55-20240626.1.windows-amd64.zip.sha256 testing/go1.22.3.linux-amd64.tar.gz -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/333aa/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz testing/go1.22.3.linux-amd64.tar.gz.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/87654/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sha256 testing/go1.22.3.linux-amd64.tar.gz.sig -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12345/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sig +testing/go1.22.3.linux-amd64.tar.gz.asc -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12346/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.asc testing/go1.22.3.src.tar.gz -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/3b32d/go1.23-90bcc55-20240626.1.src.tar.gz testing/go1.22.3.src.tar.gz.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/66dda/go1.23-90bcc55-20240626.1.src.tar.gz.sha256 testing/go1.22.3.src.tar.gz.sig -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af253/go1.23-90bcc55-20240626.1.src.tar.gz.sig +testing/go1.22.3.src.tar.gz.asc -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af254/go1.23-90bcc55-20240626.1.src.tar.gz.asc testing/go1.22.3.assets.json -> https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/3df7/assets.json testing/go1.22.3-1.windows-amd64.zip -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/62f44/go1.23-90bcc55-20240626.1.windows-amd64.zip testing/go1.22.3-1.windows-amd64.zip.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/41bc5/go1.23-90bcc55-20240626.1.windows-amd64.zip.sha256 testing/go1.22.3-1.linux-amd64.tar.gz -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/333aa/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz testing/go1.22.3-1.linux-amd64.tar.gz.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/87654/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sha256 testing/go1.22.3-1.linux-amd64.tar.gz.sig -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12345/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.sig +testing/go1.22.3-1.linux-amd64.tar.gz.asc -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/12346/go1.23-90bcc55-20240626.1.linux-amd64.tar.gz.asc testing/go1.22.3-1.src.tar.gz -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/3b32d/go1.23-90bcc55-20240626.1.src.tar.gz testing/go1.22.3-1.src.tar.gz.sha256 -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/66dda/go1.23-90bcc55-20240626.1.src.tar.gz.sha256 testing/go1.22.3-1.src.tar.gz.sig -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af253/go1.23-90bcc55-20240626.1.src.tar.gz.sig +testing/go1.22.3-1.src.tar.gz.asc -> https://download.visualstudio.microsoft.com/download/pr/8330ba2b/af254/go1.23-90bcc55-20240626.1.src.tar.gz.asc testing/go1.22.3-1.assets.json -> https://download.visualstudio.microsoft.com/download/pr/1234-56-78-123456/3df7/assets.json