51 lines
1.3 KiB
Ruby
51 lines
1.3 KiB
Ruby
require './spec/support/sidekiq_middleware'
|
|
|
|
SNIPPET_REPO_URL = "https://gitlab.com/gitlab-org/gitlab-snippet-test.git"
|
|
BUNDLE_PATH = File.join(Rails.root, 'db/fixtures/development/gitlab-snippet-test.bundle')
|
|
|
|
class Gitlab::Seeder::SnippetRepository
|
|
def initialize(snippet)
|
|
@snippet = snippet
|
|
end
|
|
|
|
def import
|
|
if File.exists?(BUNDLE_PATH)
|
|
@snippet.repository.create_from_bundle(BUNDLE_PATH)
|
|
else
|
|
@snippet.repository.import_repository(SNIPPET_REPO_URL)
|
|
@snippet.repository.bundle_to_disk(BUNDLE_PATH)
|
|
end
|
|
end
|
|
|
|
def self.cleanup
|
|
File.delete(BUNDLE_PATH) if File.exists?(BUNDLE_PATH)
|
|
rescue => e
|
|
warn "\nError cleaning up snippet bundle: #{e}"
|
|
end
|
|
end
|
|
|
|
Gitlab::Seeder.quiet do
|
|
20.times do |i|
|
|
user = User.not_mass_generated.sample
|
|
|
|
user.snippets.create({
|
|
type: 'PersonalSnippet',
|
|
title: FFaker::Lorem.sentence(3),
|
|
file_name: 'file.rb',
|
|
visibility_level: Gitlab::VisibilityLevel.values.sample,
|
|
content: 'foo'
|
|
}).tap do |snippet|
|
|
unless snippet.repository_exists?
|
|
Gitlab::Seeder::SnippetRepository.new(snippet).import
|
|
end
|
|
|
|
snippet.track_snippet_repository(snippet.repository.storage)
|
|
snippet.statistics.refresh!
|
|
end
|
|
|
|
print('.')
|
|
end
|
|
|
|
Gitlab::Seeder::SnippetRepository.cleanup
|
|
end
|
|
|