Skip to content

Commit 047ede6

Browse files
Merge pull request #7 from actionforge/secret-to-string
Add SecretValue to string converter
2 parents 5a849b1 + 38d2347 commit 047ede6

2 files changed

Lines changed: 21 additions & 15 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() {

nodes/secret-get@v1.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ func (n *SecretNode) OutputValueById(c *core.ExecutionState, outputId core.Outpu
3737
return "", nil
3838
}
3939

40-
return fmt.Sprintf("%s%s", prefix, secretValue), nil
40+
return core.SecretValue{
41+
Secret: fmt.Sprintf("%s%s", prefix, secretValue),
42+
}, nil
4143
}
4244

4345
func init() {

0 commit comments

Comments
 (0)