lib/learn_open/services/lesson_downloader.rb in learn-open-1.2.22 vs lib/learn_open/services/lesson_downloader.rb in learn-open-1.2.23
- old
+ new
@@ -1,8 +1,8 @@
module LearnOpen
class LessonDownloader
- attr_reader :lesson, :location, :environment, :io, :logger, :client, :git_adapter
+ attr_reader :lesson, :location, :environment, :io, :logger, :client, :git_adapter, :git_ssh_connector
def self.call(lesson, location, environment, options = {})
self.new(lesson, location, environment, options).call
end
@@ -12,16 +12,17 @@
@environment = environment
@client = options.fetch(:learn_web_client) { LearnOpen.learn_web_client }
@logger = options.fetch(:logger) { LearnOpen.logger }
@io = options.fetch(:io) { LearnOpen.default_io }
@git_adapter = options.fetch(:git_adapter) { LearnOpen.git_adapter }
+ @git_ssh_connector = options.fetch(:git_ssh_connector) { LearnOpen.git_adapter }
end
def call
if !repo_exists?
if ensure_git_ssh!
- fork_repo
+ fork_repo if lesson.use_student_fork
clone_repo
:ok
else
:ssh_unauthenticated
end
@@ -29,10 +30,10 @@
:noop
end
end
def ensure_git_ssh!
- LearnOpen::GitSSHConnector.call(git_server: lesson.git_server, environment: environment)
+ git_ssh_connector.call(git_server: lesson.git_server, environment: environment)
end
def fork_repo(retries = 3)
logger.log('Forking repository...')
io.puts "Forking lesson..."