Commit 51727f5c authored by ash's avatar ash

Specs for logging in gitlab-shell.

parent cdbfbc9b
...@@ -64,6 +64,13 @@ describe GitlabShell do ...@@ -64,6 +64,13 @@ describe GitlabShell do
it "should set the GL_ID environment variable" do it "should set the GL_ID environment variable" do
ENV.should_receive("[]=").with("GL_ID", key_id) ENV.should_receive("[]=").with("GL_ID", key_id)
end end
it "should log the command execution" do
message = "gitlab-shell: executing git command "
message << "<git-upload-pack #{File.join(repository_path, 'gitlab-ci.git')}> "
message << "for user with key #{key_id}."
$logger.should_receive(:info).with(message)
end
end end
context 'git-receive-pack' do context 'git-receive-pack' do
...@@ -77,6 +84,13 @@ describe GitlabShell do ...@@ -77,6 +84,13 @@ describe GitlabShell do
it "should execute the command" do it "should execute the command" do
subject.should_receive(:exec_cmd).with("git-receive-pack #{File.join(repository_path, 'gitlab-ci.git')}") subject.should_receive(:exec_cmd).with("git-receive-pack #{File.join(repository_path, 'gitlab-ci.git')}")
end end
it "should log the command execution" do
message = "gitlab-shell: executing git command "
message << "<git-receive-pack #{File.join(repository_path, 'gitlab-ci.git')}> "
message << "for user with key #{key_id}."
$logger.should_receive(:info).with(message)
end
end end
context 'arbitrary command' do context 'arbitrary command' do
...@@ -90,6 +104,11 @@ describe GitlabShell do ...@@ -90,6 +104,11 @@ describe GitlabShell do
it "should not execute the command" do it "should not execute the command" do
subject.should_not_receive(:exec_cmd) subject.should_not_receive(:exec_cmd)
end end
it "should log the attempt" do
message = "gitlab-shell: Attempt to execute disallowed command <arbitrary command> by user with key #{key_id}."
$logger.should_receive(:warn).with(message)
end
end end
context 'no command' do context 'no command' do
...@@ -110,6 +129,13 @@ describe GitlabShell do ...@@ -110,6 +129,13 @@ describe GitlabShell do
api.should_receive(:allowed?). api.should_receive(:allowed?).
with('git-upload-pack', 'gitlab-ci.git', key_id, '_any') with('git-upload-pack', 'gitlab-ci.git', key_id, '_any')
end end
it "should disallow access and log the attempt if allowed? returns false" do
api.stub(allowed?: false)
message = "gitlab-shell: Access denied for git command <git-upload-pack gitlab-ci.git> "
message << "by user with key #{key_id}."
$logger.should_receive(:warn).with(message)
end
end end
def ssh_cmd(cmd) def ssh_cmd(cmd)
......
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