summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-12-20 10:14:20 +0000
committerSean McGivern <sean@mcgivern.me.uk>2016-12-20 10:14:20 +0000
commitdeb74f73d9432c90649142cf8333c5cd5d0984ea (patch)
treee4928ef04afee97dd500b5e609f2290ad2d14bb2
parent52278412c7350b8087ef4ffc688c79e4593369cc (diff)
parent212967aefb55e0792a36e67a881b66c8bd871e9f (diff)
downloadgitlab-ce-deb74f73d9432c90649142cf8333c5cd5d0984ea.tar.gz
Merge branch '25848-fix-git-rev-list-env-parsing' into 'master'
Reject blank environment variables in Gitlab::Git::RevList Closes #25848 See merge request !8189
-rw-r--r--lib/gitlab/git/rev_list.rb4
-rw-r--r--spec/lib/gitlab/git/rev_list_spec.rb7
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/gitlab/git/rev_list.rb b/lib/gitlab/git/rev_list.rb
index 25e9d619697..79dd0cf7df2 100644
--- a/lib/gitlab/git/rev_list.rb
+++ b/lib/gitlab/git/rev_list.rb
@@ -22,7 +22,7 @@ module Gitlab
def valid?
environment_variables.all? do |(name, value)|
- value.start_with?(project.repository.path_to_repo)
+ value.to_s.start_with?(project.repository.path_to_repo)
end
end
@@ -35,7 +35,7 @@ module Gitlab
end
def environment_variables
- @environment_variables ||= env.slice(*ALLOWED_VARIABLES)
+ @environment_variables ||= env.slice(*ALLOWED_VARIABLES).compact
end
end
end
diff --git a/spec/lib/gitlab/git/rev_list_spec.rb b/spec/lib/gitlab/git/rev_list_spec.rb
index 444639acbaa..1f9c987be0b 100644
--- a/spec/lib/gitlab/git/rev_list_spec.rb
+++ b/spec/lib/gitlab/git/rev_list_spec.rb
@@ -26,6 +26,13 @@ describe Gitlab::Git::RevList, lib: true do
expect(rev_list).not_to be_valid
end
+
+ it "ignores nil values" do
+ env = { var => nil }
+ rev_list = described_class.new('oldrev', 'newrev', project: project, env: env)
+
+ expect(rev_list).to be_valid
+ end
end
end
end