@@ -144,6 +144,28 @@ func TestLiveSigstoreVerifier(t *testing.T) {
144144 require .Len (t , results , 2 )
145145 require .NoError (t , err )
146146 })
147+
148+ t .Run ("returns an error instead of panicking when the GitHub verifier failed to initialize" , func (t * testing.T ) {
149+ githubArtifactPath := test .NormalizeRelativePath ("../test/data/github_provenance_demo-0.0.12-py3-none-any.whl" )
150+ githubArtifact , err := artifact .NewDigestedArtifact (nil , githubArtifactPath , "sha256" )
151+ require .NoError (t , err )
152+
153+ githubPolicy := buildPolicy (t , * githubArtifact )
154+ attestations := getAttestationsFor (t , "../test/data/github_provenance_demo-0.0.12-py3-none-any-bundle.jsonl" )
155+
156+ verifier , err := NewLiveSigstoreVerifier (SigstoreConfig {
157+ ExternalHttpClient : http .DefaultClient ,
158+ Logger : io .NewTestHandler (),
159+ TrustDomain : "missing-trust-domain" ,
160+ TUFMetadataDir : o .Some (t .TempDir ()),
161+ })
162+ require .NoError (t , err )
163+ results , verifyErr := verifier .Verify (attestations , githubPolicy )
164+ require .Nil (t , results )
165+ require .Error (t , verifyErr )
166+ require .ErrorContains (t , verifyErr , "failed to choose verifier based on provided bundle issuer" )
167+ require .ErrorContains (t , verifyErr , "GitHub verifier is not available" )
168+ })
147169}
148170
149171func publicGoodPolicy (t * testing.T ) verify.PolicyBuilder {
0 commit comments