gitlab-org--gitlab-foss/db/fixtures/development/12_snippets.rb

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