forked from Gitlink/forgeplus
Change
This commit is contained in:
parent
d1368c7612
commit
7beca24a05
|
@ -2,12 +2,13 @@ class SyncForgeController < ApplicationController
|
|||
# before_action :check_token
|
||||
|
||||
def sync_projects
|
||||
project_params = params[:project]
|
||||
repository_params = params[:repository]
|
||||
project_socre = params[:project_socre]
|
||||
|
||||
SyncForgeProjectJob.perform_later(params)
|
||||
render json: {status: 200}
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
# def create
|
||||
# ActiveRecord::Base.transaction do
|
||||
# params.permit!
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
class SyncForgeProjectJob < ApplicationJob
|
||||
queue_as :default
|
||||
|
||||
def perform(params)
|
||||
Rails.logger.info("=======begin to sync forge projects, and params: #{params}")
|
||||
get_rand_user = rand_user
|
||||
project_params = params[:project]
|
||||
repository_params = params[:repository]
|
||||
project_socre_params = params[:project_socre]
|
||||
begin
|
||||
unless Project.select(:identifier,:user_id).exists?(identifier: project_params[:identifier], user_id: get_rand_user.id)
|
||||
project_params = project_params.merge({user_id: get_rand_user.id })
|
||||
project = Project.new(project_params)
|
||||
if project.save
|
||||
repository = Repository.new(repository_params.merge({ project_id: project.id, user_id: get_rand_user.id, login: get_rand_user.login }))
|
||||
if repository.save # 同步镜像
|
||||
repository.sync_mirror!
|
||||
SyncMirroredRepositoryJob.perform_later(repository.id, get_rand_user.id)
|
||||
end
|
||||
project_score = ProjectScore.new(project_socre_params.merge({project_id: project.id}))
|
||||
project_score.save
|
||||
end
|
||||
end
|
||||
Rails.logger.info("=======end to sync forge projects")
|
||||
rescue => e
|
||||
Rails.logger.info("=======sync forge projects has errors: #{e}")
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def rand_user
|
||||
user_ids = User.select(:id, :type).where(type: "User").pluck(:id)
|
||||
range_user_id = user_ids[rand(user_ids.length-1)]
|
||||
rand_sync_user = User.select(:id, :login).find_by_id(range_user_id) #生成随机用户
|
||||
unless rand_sync_user.present?
|
||||
rand_user
|
||||
end
|
||||
rand_sync_user
|
||||
end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
class SyncForgeProjectsRake
|
||||
# 运行示例: 检查哪些项目的repo不存在,bundle exec rails runner "SyncForgeProjectsRake.new.call()"
|
||||
|
||||
def call
|
||||
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue