Skip to content

Commit 775a557

Browse files
committed
Add support to ConvertToString for converting SecretValue to strings
1 parent 5a849b1 commit 775a557

1 file changed

Lines changed: 18 additions & 14 deletions

File tree

core/inputs.go

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -703,23 +703,27 @@ func ConvertToString(c *ExecutionState, elem reflect.Value) (string, error) {
703703
}
704704
return str.String(), nil
705705
case reflect.Struct:
706-
dsf, ok := elem.Interface().(DataStreamFactory)
707-
if !ok {
708-
return "", CreateErr(c, nil, "cannot convert '%s' to string", elem.Kind())
709-
}
710706

711-
bytes, err := io.ReadAll(dsf.Reader)
712-
if err != nil {
713-
dsf.CloseStreamAndIgnoreError()
714-
return "", CreateErr(c, nil, "error reading from io.Reader: %s", err)
715-
}
707+
switch t := elem.Interface().(type) {
708+
case DataStreamFactory:
709+
bytes, err := io.ReadAll(t.Reader)
710+
if err != nil {
711+
t.CloseStreamAndIgnoreError()
712+
return "", CreateErr(c, nil, "error reading from io.Reader: %s", err)
713+
}
716714

717-
err = dsf.CloseStream()
718-
if err != nil {
719-
return "", CreateErr(c, nil, "error closing reader: %s", err)
720-
}
715+
err = t.CloseStream()
716+
if err != nil {
717+
return "", CreateErr(c, nil, "error closing reader: %s", err)
718+
}
721719

722-
return string(bytes), nil
720+
return string(bytes), nil
721+
case SecretValue:
722+
return t.Secret, nil
723+
default:
724+
// fallthrough to error handler
725+
break
726+
}
723727
}
724728

725729
if elem.IsValid() {

0 commit comments

Comments
 (0)