From 3784028a85b155c7a6de6bb4119ef653fcb2a78f Mon Sep 17 00:00:00 2001 From: Liam Bigelow Date: Wed, 18 Feb 2026 17:50:27 +1300 Subject: [PATCH] Strip single quotes from secrets when parsing. --- internal/command/secrets/parser.go | 3 +++ internal/command/secrets/parser_test.go | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/internal/command/secrets/parser.go b/internal/command/secrets/parser.go index 7fd7d62dca..dff3f9fd57 100644 --- a/internal/command/secrets/parser.go +++ b/internal/command/secrets/parser.go @@ -53,6 +53,9 @@ func parseSecrets(reader io.Reader) (map[string]string, error) { if strings.HasPrefix(value, `"`) && strings.HasSuffix(value, `"`) { // Remove double quotes value = value[1 : len(value)-1] + } else if strings.HasPrefix(value, `'`) && strings.HasSuffix(value, `'`) { + // Remove single quotes + value = value[1 : len(value)-1] } secrets[key] = value } diff --git a/internal/command/secrets/parser_test.go b/internal/command/secrets/parser_test.go index 1b3520100f..6057968bfc 100644 --- a/internal/command/secrets/parser_test.go +++ b/internal/command/secrets/parser_test.go @@ -111,6 +111,16 @@ func Test_parse_with_comment(t *testing.T) { }, secrets) } +func Test_parse_with_single_quotes(t *testing.T) { + reader := strings.NewReader("FOO='BAR BAZ'\nKEY='value'") + secrets, err := parseSecrets(reader) + assert.NoError(t, err) + assert.Equal(t, map[string]string{ + "FOO": "BAR BAZ", + "KEY": "value", + }, secrets) +} + // Test single-line triple-quoted strings func Test_parse_singleline_triple_quotes(t *testing.T) { reader := strings.NewReader(`VARIABLE="""my-single-line-multiline-string"""