summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-12-20 09:45:37 +0100
committerRémy Coutable <remy@rymai.me>2016-12-20 09:45:37 +0100
commit212967aefb55e0792a36e67a881b66c8bd871e9f (patch)
tree0dff682d6403318633ce9dddc4a119ead7294839
parentc1dbae90033c10bef1aaa3c5c34219c1d0e5ef61 (diff)
downloadgitlab-ce-25848-fix-git-rev-list-env-parsing.tar.gz
Reject blank environment vcariables in Gitlab::Git::RevList25848-fix-git-rev-list-env-parsing
Signed-off-by: Rémy Coutable <remy@rymai.me>
-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