start pulling in the github api client wrapper
Signed-off-by: Meredith Lancaster <malancas@github.com>
This commit is contained in:
parent
97c10f4c04
commit
5462df5e7b
3 changed files with 52 additions and 3 deletions
33
pkg/cmd/attestation/github/attestation.go
Normal file
33
pkg/cmd/attestation/github/attestation.go
Normal 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"`
|
||||
}
|
||||
19
pkg/cmd/attestation/github/client.go
Normal file
19
pkg/cmd/attestation/github/client.go
Normal 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
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue