start pulling in the github api client wrapper

Signed-off-by: Meredith Lancaster <malancas@github.com>
This commit is contained in:
Meredith Lancaster 2024-03-01 16:31:23 -07:00
parent 97c10f4c04
commit 5462df5e7b
3 changed files with 52 additions and 3 deletions

View file

@ -0,0 +1,33 @@
package github
import (
"fmt"
"github.com/sigstore/sigstore-go/pkg/bundle"
)
const (
GetAttestationByRepoAndSubjectDigestPath = "repos/%s/attestations/%s"
GetAttestationByOwnerAndSubjectDigestPath = "orgs/%s/attestations/%s"
)
type ErrNoAttestations struct {
name string
digest string
}
func (e ErrNoAttestations) Error() string {
return fmt.Sprintf("no attestations found for digest %s in %s", e.name, e.digest)
}
func newErrNoAttestations(name, digest string) ErrNoAttestations {
return ErrNoAttestations{name, digest}
}
type Attestation struct {
Bundle *bundle.ProtobufBundle `json:"bundle"`
}
type AttestationsResponse struct {
Attestations []*Attestation `json:"attestations"`
}

View file

@ -0,0 +1,19 @@
package github
import "github.com/cli/cli/v2/api"
type Client interface {
GetByRepoAndDigest(repo, digest string, limit int) ([]*Attestation, error)
GetByOwnerAndDigest(owner, digest string, limit int) ([]*Attestation, error)
}
type LiveClient struct {
apiClient api.Client
}
func NewLiveClient() (*LiveClient, error) {
apiClient := api.NewClientFromHTTP(httpClient)
return &LiveClient{
apiClient: apiClient,
}, nil
}

View file

@ -86,9 +86,6 @@ func NewVerifyCmd(f *cmdutil.Factory) *cobra.Command {
// when RunE is used, the command usage will be printed
// We only want to print the error, not usage
Run: func(cmd *cobra.Command, args []string) {
// Configure the GitHub API client
apiClient := api.NewClientFromHTTP(httpClient)
if err := runVerify(opts); err != nil {
opts.Logger.Println(opts.Logger.ColorScheme.Redf("Failed to verify the artifact: %s", err.Error()))
os.Exit(1)