Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion app/cli/cmd/referrer_discover.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,21 @@ import (

func newReferrerDiscoverCmd() *cobra.Command {
var digest, kind string
var fromPublicIndex bool

cmd := &cobra.Command{
Use: "discover",
Short: "(Preview) inspect pieces of evidence or artifacts stored through Chainloop",
RunE: func(cmd *cobra.Command, args []string) error {
res, err := action.NewReferrerDiscover(actionOpts).Run(context.Background(), digest, kind)
var res *action.ReferrerItem
var err error

if fromPublicIndex {
res, err = action.NewReferrerDiscoverPublicIndex(actionOpts).Run(context.Background(), digest, kind)
} else {
res, err = action.NewReferrerDiscoverPrivate(actionOpts).Run(context.Background(), digest, kind)
}

if err != nil {
return err
}
Expand All @@ -43,6 +52,8 @@ func newReferrerDiscoverCmd() *cobra.Command {
err := cmd.MarkFlagRequired("digest")
cobra.CheckErr(err)
cmd.Flags().StringVarP(&kind, "kind", "k", "", "optional kind of the referrer, used to disambiguate between multiple referrers with the same digest")
cobra.CheckErr(err)
cmd.Flags().BoolVar(&fromPublicIndex, "public", false, "discover from public shared index instead of your organizations'")

return cmd
}
23 changes: 21 additions & 2 deletions app/cli/internal/action/referrer_discover.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ import (
type ReferrerDiscover struct {
cfg *ActionsOpts
}
type ReferrerDiscoverPublic struct {
cfg *ActionsOpts
}

type ReferrerItem struct {
Digest string `json:"digest"`
Expand All @@ -35,13 +38,29 @@ type ReferrerItem struct {
References []*ReferrerItem `json:"references"`
}

func NewReferrerDiscover(cfg *ActionsOpts) *ReferrerDiscover {
func NewReferrerDiscoverPrivate(cfg *ActionsOpts) *ReferrerDiscover {
return &ReferrerDiscover{cfg}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe here we have some nomenclature inconsistency?
xyzPrivate vs. xyzPublic everywhere, except here: the public has the "Public" suffix, the private it simply doesn't have suffix

}

func (action *ReferrerDiscover) Run(ctx context.Context, digest, kind string) (*ReferrerItem, error) {
client := pb.NewReferrerServiceClient(action.cfg.CPConnection)
resp, err := client.Discover(ctx, &pb.ReferrerServiceDiscoverRequest{
resp, err := client.DiscoverPrivate(ctx, &pb.ReferrerServiceDiscoverPrivateRequest{
Digest: digest, Kind: kind,
})
if err != nil {
return nil, err
}

return pbReferrerItemToAction(resp.Result), nil
}

func NewReferrerDiscoverPublicIndex(cfg *ActionsOpts) *ReferrerDiscoverPublic {
return &ReferrerDiscoverPublic{cfg}
}

func (action *ReferrerDiscoverPublic) Run(ctx context.Context, digest, kind string) (*ReferrerItem, error) {
client := pb.NewReferrerServiceClient(action.cfg.CPConnection)
resp, err := client.DiscoverPublicShared(ctx, &pb.DiscoverPublicSharedRequest{
Digest: digest, Kind: kind,
})
if err != nil {
Expand Down
313 changes: 233 additions & 80 deletions app/controlplane/api/controlplane/v1/referrer.pb.go

Large diffs are not rendered by default.

Loading