1/添加members迁移

2、过滤掉版本库identifier重复值的版本库
3、添加puts打印
This commit is contained in:
huang 2015-11-06 17:47:56 +08:00
parent acc93e6245
commit 48547f3e11
3 changed files with 48 additions and 9 deletions

View File

@ -8,4 +8,15 @@ namespace :rep_fault do
rep.save rep.save
end end
desc "forge and ossean's members"
task :sync_members => :environment do
projects = []
projects << Project.where("id =? ",2)
projects << Project.where("id =? ",299)
puts projects
s = Trustie::Gitlab::Sync.new
projects.each do |project|
s.only_members(project.first)
end
end
end end

View File

@ -3,11 +3,18 @@
namespace :sync_rep do namespace :sync_rep do
desc "sync some projects which just have sigle repository" desc "sync some projects which just have sigle repository"
task :sigle => :environment do task :sigle => :environment do
projects = Project.all projects = Project.where("user_id !=?",12)
projects.each do |project| projects.each do |project|
# 针对类型为Git并且只有一个版本库的项目 # 针对类型为Git并且只有一个版本库的项目
if project.repositories && project.repositories.count == 1 && project.repositories.first.type == "Repository::Git" if project.repositories && project.repositories.count == 1 && project.repositories.first.type == "Repository::Git"
rep = project.repositories.first rep = project.repositories.first
count = Repository.find_by_sql("SELECT * FROM `repositories` where identifier = '#{rep.identifier}'").count
puts count
unless count > 1
rep.identifier
puts "################################"
puts project.id
puts rep.id
s = Trustie::Gitlab::Sync.new s = Trustie::Gitlab::Sync.new
s.sync_project(project, path: rep.identifier, import_url: rep.url) s.sync_project(project, path: rep.identifier, import_url: rep.url)
rep.type = 'Repository::Gitlab' rep.type = 'Repository::Gitlab'
@ -19,4 +26,5 @@ namespace :sync_rep do
end end
end end
end end
end
end end

View File

@ -69,6 +69,11 @@ module Trustie
# import url http://xianbo_trustie2:1234@repository.trustie.net/xianbo/trustie2.git # import url http://xianbo_trustie2:1234@repository.trustie.net/xianbo/trustie2.git
# can use password # can use password
puts "@@@@@@@@@@@@@@@@@@@@@@@"
puts path
puts project.description
puts gid
puts import_url
gproject = self.g.create_project(path, gproject = self.g.create_project(path,
path: path, path: path,
description: project.description, description: project.description,
@ -81,6 +86,7 @@ module Trustie
user_id: gid, user_id: gid,
import_url: import_url import_url: import_url
) )
puts "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"
project.gpid = gproject.id project.gpid = gproject.id
project.save! project.save!
puts "Successfully created #{project.name}" puts "Successfully created #{project.name}"
@ -100,6 +106,20 @@ module Trustie
end end
end end
def only_members(project)
project.members.each do |m|
begin
gid = m.user.gid
unless gid
gid = sync_user(m.user).id
end
self.g.add_team_member(project.gpid, gid, UserLevel::DEVELOPER)
rescue => e
puts e
end
end
end
def remove_project def remove_project
end end
end end