Skip to content

Commit 743a819

Browse files
authored
Merge pull request cli#11798 from cli/eugene/release_verify_tag_name_fix
Fix no tagname logic for release verify-asset
2 parents fdd9e76 + ea08200 commit 743a819

2 files changed

Lines changed: 46 additions & 3 deletions

File tree

pkg/cmd/release/verify-asset/verify_asset.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func verifyAssetRun(config *VerifyAssetConfig) error {
169169
}
170170

171171
// Filter attestations by tag name
172-
filteredAttestations, err := shared.FilterAttestationsByTag(attestations, opts.TagName)
172+
filteredAttestations, err := shared.FilterAttestationsByTag(attestations, tagName)
173173
if err != nil {
174174
return fmt.Errorf("error parsing attestations for tag %s: %w", tagName, err)
175175
}
@@ -202,9 +202,9 @@ func verifyAssetRun(config *VerifyAssetConfig) error {
202202
io := config.IO
203203
cs := io.ColorScheme()
204204
fmt.Fprintf(io.Out, "Calculated digest for %s: %s\n", fileName, fileDigest.DigestWithAlg())
205-
fmt.Fprintf(io.Out, "Resolved tag %s to %s\n", opts.TagName, releaseRefDigest.DigestWithAlg())
205+
fmt.Fprintf(io.Out, "Resolved tag %s to %s\n", tagName, releaseRefDigest.DigestWithAlg())
206206
fmt.Fprint(io.Out, "Loaded attestation from GitHub API\n\n")
207-
fmt.Fprintf(io.Out, cs.Green("%s Verification succeeded! %s is present in release %s\n"), cs.SuccessIcon(), fileName, opts.TagName)
207+
fmt.Fprintf(io.Out, cs.Green("%s Verification succeeded! %s is present in release %s\n"), cs.SuccessIcon(), fileName, tagName)
208208

209209
return nil
210210
}

pkg/cmd/release/verify-asset/verify_asset_test.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,49 @@ func Test_verifyAssetRun_Success(t *testing.T) {
123123
require.NoError(t, err)
124124
}
125125

126+
func Test_verifyAssetRun_SuccessNoTagArg(t *testing.T) {
127+
ios, _, _, _ := iostreams.Test()
128+
tagName := "v6"
129+
130+
fakeHTTP := &httpmock.Registry{}
131+
defer fakeHTTP.Verify(t)
132+
fakeSHA := "1234567890abcdef1234567890abcdef12345678"
133+
shared.StubFetchRefSHA(t, fakeHTTP, "OWNER", "REPO", tagName, fakeSHA)
134+
shared.StubFetchRelease(t, fakeHTTP, "OWNER", "REPO", "", `{
135+
"tag_name": "v6",
136+
"draft": false,
137+
"url": "https://api.github.com/repos/OWNER/REPO/releases/23456"
138+
}`)
139+
140+
baseRepo, err := ghrepo.FromFullName("OWNER/REPO")
141+
require.NoError(t, err)
142+
result := &verification.AttestationProcessingResult{
143+
Attestation: &api.Attestation{
144+
Bundle: data.GitHubReleaseBundle(t),
145+
BundleURL: "https://example.com",
146+
},
147+
VerificationResult: nil,
148+
}
149+
150+
releaseAssetPath := test.NormalizeRelativePath("../../attestation/test/data/github_release_artifact.zip")
151+
152+
cfg := &VerifyAssetConfig{
153+
Opts: &VerifyAssetOptions{
154+
AssetFilePath: releaseAssetPath,
155+
TagName: "", // No tag argument provided
156+
BaseRepo: baseRepo,
157+
Exporter: nil,
158+
},
159+
IO: ios,
160+
HttpClient: &http.Client{Transport: fakeHTTP},
161+
AttClient: api.NewTestClient(),
162+
AttVerifier: shared.NewMockVerifier(result),
163+
}
164+
165+
err = verifyAssetRun(cfg)
166+
require.NoError(t, err)
167+
}
168+
126169
func Test_verifyAssetRun_FailedNoAttestations(t *testing.T) {
127170
ios, _, _, _ := iostreams.Test()
128171
tagName := "v1"

0 commit comments

Comments
 (0)