4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# File 'app/services/gem_collector/update_gemfile.rb', line 4
def run(repository)
Dir.mktmpdir("gem_collector_update_gemfile_#{repository.id}") do |dir|
dir_path = Pathname.new(dir)
system!('git', 'clone', '--depth=1', repository.ssh_url, dir)
retry_on_serialization_failure(tries: 3) do
GemCollector::RepositoryGem.transaction(isolation: :serializable) do
GemCollector::RepositoryGem.where(repository_id: repository.id).delete_all
each_gemfile_lock(dir) do |path|
update_gemfile_lock(repository, dir_path, path)
end
repository.touch
end
end
end
end
|