Commit a9fadce3 authored by Ciro Santilli's avatar Ciro Santilli

Create dev fixture projects with fixed visibility

parent 47064ea5
require 'sidekiq/testing'
Sidekiq::Testing.inline! do
Gitlab::Seeder.quiet do
project_urls = [
'https://github.com/documentcloud/underscore.git',
'https://gitlab.com/gitlab-org/gitlab-ce.git',
'https://gitlab.com/gitlab-org/gitlab-ci.git',
'https://gitlab.com/gitlab-org/gitlab-shell.git',
'https://gitlab.com/gitlab-org/gitlab-test.git',
'https://github.com/twitter/flight.git',
'https://github.com/twitter/typeahead.js.git',
'https://github.com/h5bp/html5-boilerplate.git',
]
project_urls.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 = Faker::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: Faker::Lorem.sentence,
visibility_level: Gitlab::VisibilityLevel.values.sample
}
project = Projects::CreateService.new(User.first, params).execute
if project.valid?
print '.'
else
puts project.errors.full_messages
print 'F'
end
Gitlab::Seeder.quiet do
project_urls = [
'https://github.com/documentcloud/underscore.git',
'https://gitlab.com/gitlab-org/gitlab-ce.git',
'https://gitlab.com/gitlab-org/gitlab-ci.git',
'https://gitlab.com/gitlab-org/gitlab-shell.git',
'https://gitlab.com/gitlab-org/gitlab-test.git',
'https://github.com/twitter/flight.git',
'https://github.com/twitter/typeahead.js.git',
'https://github.com/h5bp/html5-boilerplate.git',
]
project_urls.each do |url|
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 = Faker::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: Faker::Lorem.sentence,
visibility_level: Gitlab::VisibilityLevel.values.sample
}
project = Projects::CreateService.new(User.first, params).execute
if project.valid?
print '.'
else
puts project.errors.full_messages
print 'F'
end
end
end
require Rails.root.join('db', 'fixtures', Rails.env, 'fixtures_development_helper')
Gitlab::Seeder.quiet do
Gitlab::VisibilityLevel.options.each do |visibility_label, visibility_value|
visibility_label_downcase = visibility_label.downcase
begin
user = User.seed(:username) do |s|
username = "#{visibility_label_downcase}-owner"
s.username = username
s.name = "#{visibility_label} Owner"
s.email = "#{username}@example.com"
s.password = '12345678'
s.confirmed_at = DateTime.now
end[0]
# import_url does not work for local paths,
# so we just copy the template repository in.
unless Project.find_with_namespace("#{user.namespace.id}/"\
"#{visibility_label_downcase}")
params = {
name: "#{visibility_label} Project",
description: "#{visibility_label} Project description",
namespace_id: user.namespace.id,
visibility_level: visibility_value,
}
project = Projects::CreateService.new(user, params).execute
new_path = project.repository.path
FileUtils.rm_rf(new_path)
FileUtils.cp_r(FixturesDevelopmentHelper.template_project.repository.path,
new_path)
end
print '.'
rescue ActiveRecord::RecordNotSaved
print 'F'
end
end
end
module FixturesDevelopmentHelper
class << self
def template_project
@template_project ||= Project.
find_with_namespace('gitlab-org/gitlab-test')
end
end
end
require 'sidekiq/testing'
module Gitlab
class Seeder
def self.quiet
mute_mailer
SeedFu.quiet = true
yield
Sidekiq::Testing.inline! do
yield
end
SeedFu.quiet = false
puts "\nOK".green
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment