package task import ( "go.dagger.io/dagger/compiler" "go.dagger.io/dagger/plancontext" ) type authValue struct { Target string Username string Secret *plancontext.Secret } // Decodes an auth field value // // Cue format: // auth: [...{ // target: string // username: string // secret: string | #Secret // }] func decodeAuthValue(pctx *plancontext.Context, v *compiler.Value) ([]*authValue, error) { vals, err := v.List() if err != nil { return nil, err } authVals := []*authValue{} for _, val := range vals { authVal := authValue{} target, err := val.Lookup("target").String() if err != nil { return nil, err } authVal.Target = target username, err := val.Lookup("username").String() if err != nil { return nil, err } authVal.Username = username secret, err := pctx.Secrets.FromValue(val.Lookup("secret")) if err != nil { return nil, err } authVal.Secret = secret authVals = append(authVals, &authVal) } return authVals, nil }