diff options
author | Ciro Santilli <ciro.santilli@gmail.com> | 2014-11-03 20:02:12 +0100 |
---|---|---|
committer | Ciro Santilli <ciro.santilli@gmail.com> | 2014-11-03 20:37:47 +0100 |
commit | 71ed0ab06974d0bc72ad737645c35facf2b01c31 (patch) | |
tree | 9cca426621e93e81cfbd1a1cff4223a1631ef82f /lib | |
parent | 1b1403804e03db3cea3ad6a84dcfead449ed29d5 (diff) | |
download | gitlab-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.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/git_access.rb | 4 |
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 |