From fd4fd25d3c1f81b669711755eda07089353b86b3 Mon Sep 17 00:00:00 2001
From: Grzegorz Bizon <grzesiek.bizon@gmail.com>
Date: Thu, 19 Jul 2018 14:13:49 +0200
Subject: [PATCH] Fix passing a hash with string keys when fabricating a
 variable

---
 lib/gitlab/ci/variables/collection/item.rb           | 2 +-
 spec/lib/gitlab/ci/variables/collection/item_spec.rb | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/gitlab/ci/variables/collection/item.rb b/lib/gitlab/ci/variables/collection/item.rb
index 222aa06b80019..7da6d09d4409a 100644
--- a/lib/gitlab/ci/variables/collection/item.rb
+++ b/lib/gitlab/ci/variables/collection/item.rb
@@ -34,7 +34,7 @@ def to_runner_variable
           def self.fabricate(resource)
             case resource
             when Hash
-              self.new(resource)
+              self.new(resource.symbolize_keys)
             when ::HasVariable
               self.new(resource.to_runner_variable)
             when self
diff --git a/spec/lib/gitlab/ci/variables/collection/item_spec.rb b/spec/lib/gitlab/ci/variables/collection/item_spec.rb
index adb3ff4321f31..46874662edd8d 100644
--- a/spec/lib/gitlab/ci/variables/collection/item_spec.rb
+++ b/spec/lib/gitlab/ci/variables/collection/item_spec.rb
@@ -75,6 +75,14 @@
       expect(resource).to eq variable
     end
 
+    it 'supports using a hash with stringified values' do
+      variable = { 'key' => 'VARIABLE', 'value' => 'my value' }
+
+      resource = described_class.fabricate(variable)
+
+      expect(resource).to eq(key: 'VARIABLE', value: 'my value')
+    end
+
     it 'supports using an active record resource' do
       variable = create(:ci_variable, key: 'CI_VAR', value: '123')
       resource = described_class.fabricate(variable)
-- 
GitLab