diff options
-rw-r--r-- | lib/gitlab_shell.rb | 6 | ||||
-rw-r--r-- | spec/gitlab_shell_spec.rb | 14 |
2 files changed, 18 insertions, 2 deletions
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb index 842714e..75c7751 100644 --- a/lib/gitlab_shell.rb +++ b/lib/gitlab_shell.rb @@ -44,13 +44,17 @@ class GitlabShell def process_cmd repo_full_path = File.join(repos_path, repo_name) - system("#{@git_cmd} #{repo_full_path}") + exec_cmd "#{@git_cmd} #{repo_full_path}" end def validate_access api.allowed?(@git_cmd, @repo_name, @key_id, '_any') end + def exec_cmd args + Kernel::exec args + end + def api GitlabNet.new end diff --git a/spec/gitlab_shell_spec.rb b/spec/gitlab_shell_spec.rb index 51e02dd..2fa44a9 100644 --- a/spec/gitlab_shell_spec.rb +++ b/spec/gitlab_shell_spec.rb @@ -5,7 +5,7 @@ describe GitlabShell do subject do ARGV[0] = 'key-56' GitlabShell.new.tap do |shell| - shell.stub(process_cmd: true) + shell.stub(exec_cmd: :exec_called) shell.stub(api: api) end end @@ -53,6 +53,10 @@ describe GitlabShell do it "should process the command" do subject.should_receive(:process_cmd).with() end + + it "should execute the command" do + subject.should_receive(:exec_cmd).with("git-upload-pack /home/git/repositories/gitlab-ci.git") + end end context 'git-receive-pack' do @@ -62,6 +66,10 @@ describe GitlabShell do it "should process the command" do subject.should_receive(:process_cmd).with() end + + it "should execute the command" do + subject.should_receive(:exec_cmd).with("git-receive-pack /home/git/repositories/gitlab-ci.git") + end end context 'arbitrary command' do @@ -71,6 +79,10 @@ describe GitlabShell do it "should not process the command" do subject.should_not_receive(:process_cmd) end + + it "should not execute the command" do + subject.should_not_receive(:exec_cmd) + end end context 'no command' do |