Normalize space-like characters in keys before output to gitlab-shell
gitlab-shell expects only one tab separator per key, and an SSH key with a tab character in the comment, for example, would break things. Closes #2970
This commit is contained in:
parent
680b6d88a5
commit
69b41ba043
2 changed files with 15 additions and 1 deletions
|
@ -4,7 +4,8 @@ module Gitlab
|
|||
|
||||
class KeyAdder < Struct.new(:io)
|
||||
def add_key(id, key)
|
||||
io.puts("#{id}\t#{key.strip}")
|
||||
key.gsub!(/[[:space:]]+/, ' ').strip!
|
||||
io.puts("#{id}\t#{key}")
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -15,4 +15,17 @@ describe Gitlab::Shell do
|
|||
it { is_expected.to respond_to :fork_repository }
|
||||
|
||||
it { expect(gitlab_shell.url_to_repo('diaspora')).to eq(Gitlab.config.gitlab_shell.ssh_path_prefix + "diaspora.git") }
|
||||
|
||||
describe Gitlab::Shell::KeyAdder do
|
||||
describe '#add_key' do
|
||||
it 'normalizes space characters in the key' do
|
||||
io = spy
|
||||
adder = described_class.new(io)
|
||||
|
||||
adder.add_key('key-42', "sha-rsa foo\tbar\tbaz")
|
||||
|
||||
expect(io).to have_received(:puts).with("key-42\tsha-rsa foo bar baz")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue