Commit ccceb266 authored by Lin Jen-Shin's avatar Lin Jen-Shin

Generate ssh key on the fly for QA

parent ba02e3a5
...@@ -6,3 +6,4 @@ gem 'capybara-screenshot', '~> 1.0.18' ...@@ -6,3 +6,4 @@ gem 'capybara-screenshot', '~> 1.0.18'
gem 'rake', '~> 12.3.0' gem 'rake', '~> 12.3.0'
gem 'rspec', '~> 3.7' gem 'rspec', '~> 3.7'
gem 'selenium-webdriver', '~> 3.8.0' gem 'selenium-webdriver', '~> 3.8.0'
gem 'net-ssh', require: false
...@@ -24,6 +24,7 @@ GEM ...@@ -24,6 +24,7 @@ GEM
method_source (0.9.0) method_source (0.9.0)
mini_mime (1.0.0) mini_mime (1.0.0)
mini_portile2 (2.3.0) mini_portile2 (2.3.0)
net-ssh (4.1.0)
nokogiri (1.8.1) nokogiri (1.8.1)
mini_portile2 (~> 2.3.0) mini_portile2 (~> 2.3.0)
pry (0.11.3) pry (0.11.3)
...@@ -63,10 +64,11 @@ PLATFORMS ...@@ -63,10 +64,11 @@ PLATFORMS
DEPENDENCIES DEPENDENCIES
capybara (~> 2.16.1) capybara (~> 2.16.1)
capybara-screenshot (~> 1.0.18) capybara-screenshot (~> 1.0.18)
net-ssh
pry-byebug (~> 3.5.1) pry-byebug (~> 3.5.1)
rake (~> 12.3.0) rake (~> 12.3.0)
rspec (~> 3.7) rspec (~> 3.7)
selenium-webdriver (~> 3.8.0) selenium-webdriver (~> 3.8.0)
BUNDLED WITH BUNDLED WITH
1.16.0 1.16.1
...@@ -11,6 +11,7 @@ module QA ...@@ -11,6 +11,7 @@ module QA
autoload :Scenario, 'qa/runtime/scenario' autoload :Scenario, 'qa/runtime/scenario'
autoload :Browser, 'qa/runtime/browser' autoload :Browser, 'qa/runtime/browser'
autoload :Env, 'qa/runtime/env' autoload :Env, 'qa/runtime/env'
autoload :RSAKey, 'qa/runtime/rsa_key'
end end
## ##
......
require 'net/ssh'
require 'forwardable'
module QA
module Runtime
class RSAKey
extend Forwardable
def initialize(bits = 4096)
@key = OpenSSL::PKey::RSA.new(bits)
end
attr_reader :key
def_delegators :@key, :fingerprint
def public_key
@public_key ||= "#{key.ssh_type} #{[key.to_blob].pack('m0')}"
end
end
end
end
...@@ -10,17 +10,6 @@ module QA ...@@ -10,17 +10,6 @@ module QA
def password def password
ENV['GITLAB_PASSWORD'] || '5iveL!fe' ENV['GITLAB_PASSWORD'] || '5iveL!fe'
end end
def ssh_key
<<~KEY.delete("\n")
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFf6RYK3qu/RKF/3ndJmL5xgMLp3O9
6x8lTay+QGZ0+9FnnAXMdUqBq/ZU6d/gyMB4IaW3nHzM1w049++yAB6UPCzMB8Uo27K5
/jyZCtj7Vm9PFNjF/8am1kp46c/SeYicQgQaSBdzIW3UDEa1Ef68qroOlvpi9PYZ/tA7
M0YP0K5PXX+E36zaIRnJVMPT3f2k+GnrxtjafZrwFdpOP/Fol5BQLBgcsyiU+LM1SuaC
rzd8c9vyaTA1CxrkxaZh+buAi0PmdDtaDrHd42gqZkXCKavyvgM5o2CkQ5LJHCgzpXy0
5qNFzmThBSkb+XtoxbyagBiGbVZtSVow6Xa7qewz= dummy@gitlab.com
KEY
end
end end
end end
end end
module QA module QA
feature 'deploy keys support', :core do feature 'deploy keys support', :core do
given(:deploy_key_title) { 'deploy key title' } given(:deploy_key_title) { 'deploy key title' }
given(:deploy_key_value) { Runtime::User.ssh_key } given(:deploy_key_value) { Runtime::RSAKey.new.public_key }
scenario 'user adds a deploy key' do scenario 'user adds a deploy key' do
Runtime::Browser.visit(:gitlab, Page::Main::Login) Runtime::Browser.visit(:gitlab, Page::Main::Login)
......
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