From 4900776683dc4943329b74edaca4a37e24d66a41 Mon Sep 17 00:00:00 2001 From: Jeff Rescignano Date: Thu, 11 Jun 2026 00:11:56 -0400 Subject: [PATCH] fix: propagate alias resolution and encoder close errors Signed-off-by: Jeff Rescignano --- pkg/action/action.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pkg/action/action.go b/pkg/action/action.go index a36774033..2d70732a0 100644 --- a/pkg/action/action.go +++ b/pkg/action/action.go @@ -207,8 +207,9 @@ func annotateAndMerge(files map[string]string) (string, error) { // kio.ParseAll flattens `kind: List` into one document per item; resolve aliases // first so an anchor and its alias aren't split across documents (anchors are // document-scoped), which would leave the alias dangling. - if resolved, rerr := resolveYAMLAliases(doc); rerr == nil { - doc = resolved + doc, err := resolveYAMLAliases(doc) + if err != nil { + return "", fmt.Errorf("resolving aliases in %s: %w", fname, err) } manifests, err := kio.ParseAll(doc) if err != nil { @@ -235,7 +236,9 @@ func annotateAndMerge(files map[string]string) (string, error) { func resolveYAMLAliases(doc string) (string, error) { var node yaml.Node if err := yaml.Unmarshal([]byte(doc), &node); err != nil { - return "", err + // Preserve the surrounding code's leniency for badly-formed docs; + // kio.ParseAll reports them downstream. + return doc, nil } if !resolveAliasNodes(&node) { return doc, nil @@ -247,7 +250,9 @@ func resolveYAMLAliases(doc string) (string, error) { if err := enc.Encode(&node); err != nil { return "", err } - _ = enc.Close() + if err := enc.Close(); err != nil { + return "", err + } return buf.String(), nil }