forgeplus/lib/tasks/gitlab.rake

54 lines
1.5 KiB
Ruby

namespace :sync do
desc "sync repository for myshixun"
task :myshixun => :environment do
g = Gitlab.client
myshixuns = Myshixun.where("repo_name is null")
myshixuns.find_each do |myshixun|
begin
puts myshixun.identifier
repo_name = g.project(myshixun.gpid).path_with_namespace
puts repo_name
myshixun.update_column(:repo_name, repo_name)
rescue Exception => e
Rails.logger.error("#{e.message}")
end
end
end
task :shixun => :environment do
g = Gitlab.client
shixuns = Shixun.where("repo_name is null")
shixuns.find_each do |shixun|
begin
puts shixun.identifier
repo_name = g.project(shixun.gpid).path_with_namespace
puts repo_name
shixun.update_column(:repo_name, repo_name)
rescue Exception => e
Rails.logger.error("#{e.message}")
end
end
end
task :check => :environment do
g = Gitlab.client
shixuns = Shixun.where("repo_name is null and fork_from is not null")
shixuns.find_each do |shixun|
begin
puts shixun.identifier
original_shixun = Shixun.find(fork_from)
gshixun = g.fork(original_shixun.gpid, shixun.owner.try(:gid))
repo_name = g.project(gshixun.id).path_with_namespace
puts repo_name
shixun.update_attributes(:repo_name => repo_name, :gpid => gshixun.id)
rescue Exception => e
Rails.logger.error("#{e.message}")
end
end
end
end