Sha256: 084e0db30986c99b233d7f4ece3cf7de2c28456e4350274056b597e73e13216f

Contents?: true

Size: 600 Bytes

Versions: 14

Compression:

Stored size: 600 Bytes

Contents

require 'net/ssh'

class Indocker::Repositories::Clonner
  def initialize(configuration, logger)
    @configuration = configuration
    @logger = logger
  end

  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
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
indocker-0.1.16 lib/indocker/repositories/clonner.rb
indocker-0.1.15 lib/indocker/repositories/clonner.rb
indocker-0.1.14 lib/indocker/repositories/clonner.rb
indocker-0.1.13 lib/indocker/repositories/clonner.rb
indocker-0.1.12 lib/indocker/repositories/clonner.rb
indocker-0.1.11 lib/indocker/repositories/clonner.rb
indocker-0.1.10 lib/indocker/repositories/clonner.rb
indocker-0.1.9 lib/indocker/repositories/clonner.rb
indocker-0.1.8 lib/indocker/repositories/clonner.rb
indocker-0.1.7 lib/indocker/repositories/clonner.rb
indocker-0.1.6 lib/indocker/repositories/clonner.rb
indocker-0.1.5 lib/indocker/repositories/clonner.rb
indocker-0.1.4 lib/indocker/repositories/clonner.rb
indocker-0.1.3 lib/indocker/repositories/clonner.rb