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