diff options
Diffstat (limited to 'app/services/ci/parse_dotenv_artifact_service.rb')
-rw-r--r-- | app/services/ci/parse_dotenv_artifact_service.rb | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/app/services/ci/parse_dotenv_artifact_service.rb b/app/services/ci/parse_dotenv_artifact_service.rb index 14e8dc41cf5..d4d5acef44e 100644 --- a/app/services/ci/parse_dotenv_artifact_service.rb +++ b/app/services/ci/parse_dotenv_artifact_service.rb @@ -3,6 +3,7 @@ module Ci class ParseDotenvArtifactService < ::BaseService include ::Gitlab::Utils::StrongMemoize + include ::Gitlab::EncodingHelper SizeLimitError = Class.new(StandardError) ParserError = Class.new(StandardError) @@ -36,6 +37,10 @@ module Ci variables = {} artifact.each_blob do |blob| + # Windows powershell may output UTF-16LE files, so convert the whole file + # to UTF-8 before proceeding. + blob = strip_bom(encode_utf8_with_replacement_character(blob)) + blob.each_line do |line| key, value = scan_line!(line) |