summaryrefslogtreecommitdiff
path: root/app/services/ci/parse_dotenv_artifact_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/ci/parse_dotenv_artifact_service.rb')
-rw-r--r--app/services/ci/parse_dotenv_artifact_service.rb5
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)