95 lines
3.4 KiB
Ruby
95 lines
3.4 KiB
Ruby
require './spec/support/sidekiq'
|
|
|
|
Sidekiq::Testing.inline! do
|
|
Gitlab::Seeder.quiet do
|
|
project_urls = [
|
|
'https://gitlab.com/gitlab-org/gitlab-test.git',
|
|
'https://gitlab.com/gitlab-org/gitlab-shell.git',
|
|
'https://gitlab.com/gnuwget/wget2.git',
|
|
'https://gitlab.com/Commit451/LabCoat.git',
|
|
'https://github.com/jashkenas/underscore.git',
|
|
'https://github.com/flightjs/flight.git',
|
|
'https://github.com/twitter/typeahead.js.git',
|
|
'https://github.com/h5bp/html5-boilerplate.git',
|
|
'https://github.com/google/material-design-lite.git',
|
|
'https://github.com/jlevy/the-art-of-command-line.git',
|
|
'https://github.com/FreeCodeCamp/freecodecamp.git',
|
|
'https://github.com/google/deepdream.git',
|
|
'https://github.com/jtleek/datasharing.git',
|
|
'https://github.com/WebAssembly/design.git',
|
|
'https://github.com/airbnb/javascript.git',
|
|
'https://github.com/tessalt/echo-chamber-js.git',
|
|
'https://github.com/atom/atom.git',
|
|
'https://github.com/mattermost/mattermost-server.git',
|
|
'https://github.com/purifycss/purifycss.git',
|
|
'https://github.com/facebook/nuclide.git',
|
|
'https://github.com/wbkd/awesome-d3.git',
|
|
'https://github.com/kilimchoi/engineering-blogs.git',
|
|
'https://github.com/gilbarbara/logos.git',
|
|
'https://github.com/reduxjs/redux.git',
|
|
'https://github.com/awslabs/s2n.git',
|
|
'https://github.com/arkency/reactjs_koans.git',
|
|
'https://github.com/twbs/bootstrap.git',
|
|
'https://github.com/chjj/ttystudio.git',
|
|
'https://github.com/MostlyAdequate/mostly-adequate-guide.git',
|
|
'https://github.com/octocat/Spoon-Knife.git',
|
|
'https://github.com/opencontainers/runc.git',
|
|
'https://github.com/googlesamples/android-topeka.git'
|
|
]
|
|
|
|
# You can specify how many projects you need during seed execution
|
|
size = ENV['SIZE'].present? ? ENV['SIZE'].to_i : 8
|
|
|
|
project_urls.first(size).each_with_index do |url, i|
|
|
group_path, project_path = url.split('/')[-2..-1]
|
|
|
|
group = Group.find_by(path: group_path)
|
|
|
|
unless group
|
|
group = Group.new(
|
|
name: group_path.titleize,
|
|
path: group_path
|
|
)
|
|
group.description = FFaker::Lorem.sentence
|
|
group.save
|
|
|
|
group.add_owner(User.first)
|
|
end
|
|
|
|
project_path.gsub!(".git", "")
|
|
|
|
params = {
|
|
import_url: url,
|
|
namespace_id: group.id,
|
|
name: project_path.titleize,
|
|
description: FFaker::Lorem.sentence,
|
|
visibility_level: Gitlab::VisibilityLevel.values.sample,
|
|
skip_disk_validation: true
|
|
}
|
|
|
|
if i % 2 == 0
|
|
params[:storage_version] = Project::LATEST_STORAGE_VERSION
|
|
end
|
|
|
|
project = nil
|
|
|
|
Sidekiq::Worker.skipping_transaction_check do
|
|
project = Projects::CreateService.new(User.first, params).execute
|
|
|
|
# Seed-Fu runs this entire fixture in a transaction, so the `after_commit`
|
|
# hook won't run until after the fixture is loaded. That is too late
|
|
# since the Sidekiq::Testing block has already exited. Force clearing
|
|
# the `after_commit` queue to ensure the job is run now.
|
|
project.send(:_run_after_commit_queue)
|
|
project.import_state.send(:_run_after_commit_queue)
|
|
end
|
|
|
|
if project.valid? && project.valid_repo?
|
|
print '.'
|
|
else
|
|
puts project.errors.full_messages
|
|
print 'F'
|
|
end
|
|
end
|
|
end
|
|
end
|