Class: Indocker::Repositories::Clonner
- Inherits:
-
Object
- Object
- Indocker::Repositories::Clonner
- Defined in:
- lib/indocker/repositories/clonner.rb
Instance Method Summary collapse
- #clone(session, repository) ⇒ Object
-
#initialize(configuration, logger) ⇒ Clonner
constructor
A new instance of Clonner.
Constructor Details
#initialize(configuration, logger) ⇒ Clonner
Returns a new instance of Clonner.
4 5 6 7 |
# File 'lib/indocker/repositories/clonner.rb', line 4 def initialize(configuration, logger) @configuration = configuration @logger = logger end |
Instance Method Details
#clone(session, repository) ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/indocker/repositories/clonner.rb', line 9 def clone(session, repository) raise ArgumenError.new("only git repositories should be clonned") if !repository.is_git? session.exec!("rm -rf #{repository.clone_path} && mkdir -p #{repository.clone_path}") git_command = "git clone -b #{repository.branch} --depth 1 #{repository.remote_url} #{repository.clone_path}" session.exec!("ssh-agent bash -c 'ssh-add ~/.ssh/#{repository.ssh_key}; #{git_command}'") end |