Commit e03d01d036bf5f5257d767a1b6ab23f06787a421

Authored by Jakub Zienkiewicz
1 parent 5e35f216

extract server-side git commands to constants

Showing 1 changed file with 7 additions and 3 deletions   Show diff stats
lib/api/internal.rb
1 module API 1 module API
2 # Internal access API 2 # Internal access API
3 class Internal < Grape::API 3 class Internal < Grape::API
  4 +
  5 + DOWNLOAD_COMMANDS = %w{ git-upload-pack git-upload-archive }
  6 + PUSH_COMMANDS = %w{ git-receive-pack }
  7 +
4 namespace 'internal' do 8 namespace 'internal' do
5 # 9 #
6 # Check if ssh key has access to project code 10 # Check if ssh key has access to project code
@@ -26,16 +30,16 @@ module API @@ -26,16 +30,16 @@ module API
26 30
27 31
28 if key.is_a? DeployKey 32 if key.is_a? DeployKey
29 - key.projects.include?(project) && git_cmd.starts_with?('git-upload-') 33 + key.projects.include?(project) && DOWNLOAD_COMMANDS.include?(git_cmd)
30 else 34 else
31 user = key.user 35 user = key.user
32 36
33 return false if user.blocked? 37 return false if user.blocked?
34 38
35 action = case git_cmd 39 action = case git_cmd
36 - when 'git-upload-pack', 'git-upload-archive' 40 + when *DOWNLOAD_COMMANDS
37 then :download_code 41 then :download_code
38 - when 'git-receive-pack' 42 + when *PUSH_COMMANDS
39 then 43 then
40 if project.protected_branch?(params[:ref]) 44 if project.protected_branch?(params[:ref])
41 :push_code_to_protected_branches 45 :push_code_to_protected_branches