diff --git a/cmd/registry/auth/basic/basic.go b/cmd/registry/auth/basic/basic.go index f02aef73..fb47ace3 100644 --- a/cmd/registry/auth/basic/basic.go +++ b/cmd/registry/auth/basic/basic.go @@ -30,6 +30,7 @@ import ( "github.com/falcosecurity/falcoctl/internal/config" "github.com/falcosecurity/falcoctl/internal/login/basic" + "github.com/falcosecurity/falcoctl/internal/utils" "github.com/falcosecurity/falcoctl/pkg/oci/authn" "github.com/falcosecurity/falcoctl/pkg/options" "github.com/falcosecurity/falcoctl/pkg/output" @@ -95,8 +96,15 @@ Example - Login with username and password in an interactive prompt: // RunBasic executes the business logic for the basic command. func (o *loginOptions) RunBasic(ctx context.Context, args []string) error { - reg := args[0] + var reg string logger := o.Printer.Logger + + // Allow to have the registry expressed as a ref, but actually extract it. + reg, err := utils.GetRegistryFromRef(args[0]) + if err != nil { + reg = args[0] + } + if err := getCredentials(o.Printer, o); err != nil { return err } diff --git a/internal/config/config.go b/internal/config/config.go index 3e29978e..6b7114e2 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -30,6 +30,7 @@ import ( "github.com/mitchellh/mapstructure" "github.com/spf13/viper" + "github.com/falcosecurity/falcoctl/internal/utils" drivertype "github.com/falcosecurity/falcoctl/pkg/driver/type" "github.com/falcosecurity/falcoctl/pkg/oci" ) @@ -395,8 +396,14 @@ func basicAuthListHookFunc() mapstructure.DecodeHookFuncType { return data, fmt.Errorf("not valid token %q", token) } + // Allow to have the registry expressed as a ref, but actually extract it. + registry, err := utils.GetRegistryFromRef(values[0]) + if err != nil { + registry = values[0] + } + auths[i] = BasicAuth{ - Registry: values[0], + Registry: registry, User: values[1], Password: values[2], }