github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/cmd/gosbom/cli/options/oidc.go (about) 1 package options 2 3 import ( 4 "github.com/spf13/cobra" 5 "github.com/spf13/pflag" 6 "github.com/spf13/viper" 7 ) 8 9 const DefaultOIDCIssuerURL = "https://oauth2.sigstore.dev/auth" 10 11 // OIDCOptions is the wrapper for OIDC related options. 12 type OIDCOptions struct { 13 Issuer string 14 ClientID string 15 RedirectURL string 16 } 17 18 var _ Interface = (*OIDCOptions)(nil) 19 20 // AddFlags implements Interface 21 func (o *OIDCOptions) AddFlags(cmd *cobra.Command, v *viper.Viper) error { 22 cmd.Flags().StringVar(&o.Issuer, "oidc-issuer", DefaultOIDCIssuerURL, 23 "OIDC provider to be used to issue ID token") 24 25 cmd.Flags().StringVar(&o.ClientID, "oidc-client-id", "sigstore", 26 "OIDC client ID for application") 27 28 cmd.Flags().StringVar(&o.RedirectURL, "oidc-redirect-url", "", 29 "OIDC redirect URL (Optional)") 30 31 return bindOIDCConfigOptions(cmd.Flags(), v) 32 } 33 34 //nolint:revive 35 func bindOIDCConfigOptions(flags *pflag.FlagSet, v *viper.Viper) error { 36 if err := v.BindPFlag("attest.oidc-issuer", flags.Lookup("oidc-issuer")); err != nil { 37 return err 38 } 39 40 if err := v.BindPFlag("attest.oidc-client-id", flags.Lookup("oidc-client-id")); err != nil { 41 return err 42 } 43 44 if err := v.BindPFlag("attest.oidc-redirect-url", flags.Lookup("oidc-redirect-url")); err != nil { 45 return err 46 } 47 48 return nil 49 }