summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorCiro Santilli <ciro.santilli@gmail.com>2014-11-03 20:02:12 +0100
committerCiro Santilli <ciro.santilli@gmail.com>2014-11-03 20:37:47 +0100
commit71ed0ab06974d0bc72ad737645c35facf2b01c31 (patch)
tree9cca426621e93e81cfbd1a1cff4223a1631ef82f /lib
parent1b1403804e03db3cea3ad6a84dcfead449ed29d5 (diff)
downloadgitlab-ce-71ed0ab06974d0bc72ad737645c35facf2b01c31.tar.gz
Fix push not allowed to protected branch if
commit starts with 7 zeros.
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/git.rb5
-rw-r--r--lib/gitlab/git_access.rb4
2 files changed, 7 insertions, 2 deletions
diff --git a/lib/gitlab/git.rb b/lib/gitlab/git.rb
new file mode 100644
index 00000000000..67aca5e36e9
--- /dev/null
+++ b/lib/gitlab/git.rb
@@ -0,0 +1,5 @@
+module Gitlab
+ module Git
+ BLANK_SHA = '0' * 40
+ end
+end
diff --git a/lib/gitlab/git_access.rb b/lib/gitlab/git_access.rb
index b768a99a0e8..129881060d5 100644
--- a/lib/gitlab/git_access.rb
+++ b/lib/gitlab/git_access.rb
@@ -67,7 +67,7 @@ module Gitlab
if forced_push?(project, oldrev, newrev)
:force_push_code_to_protected_branches
# and we dont allow remove of protected branch
- elsif newrev =~ /0000000/
+ elsif newrev == Gitlab::Git::BLANK_SHA
:remove_protected_branches
else
:push_code_to_protected_branches
@@ -85,7 +85,7 @@ module Gitlab
def forced_push?(project, oldrev, newrev)
return false if project.empty_repo?
- if oldrev !~ /00000000/ && newrev !~ /00000000/
+ if oldrev != Gitlab::Git::BLANK_SHA && newrev != Gitlab::Git::BLANK_SHA
missed_refs = IO.popen(%W(git --git-dir=#{project.repository.path_to_repo} rev-list #{oldrev} ^#{newrev})).read
missed_refs.split("\n").size > 0
else