Commit 341c1a20 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Immediatly raise exception if git-annex is disabled

parent b37c4d67
...@@ -50,11 +50,15 @@ class GitlabShell ...@@ -50,11 +50,15 @@ class GitlabShell
args = Shellwords.shellwords(@origin_cmd) args = Shellwords.shellwords(@origin_cmd)
@git_cmd = args.first @git_cmd = args.first
if @git_cmd == 'git-annex-shell' && @config.git_annex_enabled? if @git_cmd == 'git-annex-shell'
@repo_name = escape_path(args[2].sub(/\A\/~\//, '')) if @config.git_annex_enabled?
@repo_name = escape_path(args[2].sub(/\A\/~\//, ''))
# Make sure repository has git-annex enabled # Make sure repository has git-annex enabled
init_git_annex(@repo_name) init_git_annex(@repo_name)
else
raise DisallowedCommandError
end
else else
raise DisallowedCommandError unless args.count == 2 raise DisallowedCommandError unless args.count == 2
@repo_name = escape_path(args.last) @repo_name = escape_path(args.last)
...@@ -68,21 +72,25 @@ class GitlabShell ...@@ -68,21 +72,25 @@ class GitlabShell
def process_cmd def process_cmd
repo_full_path = File.join(repos_path, repo_name) repo_full_path = File.join(repos_path, repo_name)
if @git_cmd == 'git-annex-shell' && @config.git_annex_enabled? if @git_cmd == 'git-annex-shell'
args = Shellwords.shellwords(@origin_cmd) if @config.git_annex_enabled?
parsed_args = args = Shellwords.shellwords(@origin_cmd)
args.map do |arg| parsed_args =
# Convert /~/group/project.git to group/project.git args.map do |arg|
# to make git annex path compatible with gitlab-shell # Convert /~/group/project.git to group/project.git
if arg =~ /\A\/~\/.*\.git\Z/ # to make git annex path compatible with gitlab-shell
repo_full_path if arg =~ /\A\/~\/.*\.git\Z/
else repo_full_path
arg else
arg
end
end end
end
$logger.info "gitlab-shell: executing git-annex command <#{parsed_args.join(' ')}> for #{log_username}." $logger.info "gitlab-shell: executing git-annex command <#{parsed_args.join(' ')}> for #{log_username}."
exec_cmd(*parsed_args) exec_cmd(*parsed_args)
else
raise DisallowedCommandError
end
else else
$logger.info "gitlab-shell: executing git command <#{@git_cmd} #{repo_full_path}> for #{log_username}." $logger.info "gitlab-shell: executing git command <#{@git_cmd} #{repo_full_path}> for #{log_username}."
exec_cmd(@git_cmd, repo_full_path) exec_cmd(@git_cmd, repo_full_path)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment