class MigrateRemoteRepositoryJob < ApplicationJob queue_as :default def perform(repo_id, token, user_id, params) repo = Repository.find_by(id: repo_id) return if repo.blank? puts "############ MigrateRemoteRepositoryJob starting ... ############" params.except!(:auth_password, :auth_username) if params[:auth_username].nil? gitea_repository = Gitea::Repository::MigrateService.new(token, params).call puts "#gitea_repository#{gitea_repository}" if gitea_repository[0]==201 repo&.project&.update_columns(gpid: gitea_repository[2]["id"]) repo&.mirror&.succeeded! ## open jianmu devops project_id = repo&.project&.id puts "############ mirror project_id,user_id: #{project_id},#{user_id} ############" OpenProjectDevOpsJob.set(wait: 5.seconds).perform_later(project_id, user_id) if project_id.present? && user_id.present? UpdateProjectTopicJob.set(wait: 1.seconds).perform_later(project_id) if project_id.present? puts "############ mirror status: #{repo.mirror.status} ############" else repo&.mirror&.failed! end # UpdateProjectTopicJob 中语言要延迟1S才能获取 BroadcastMirrorRepoMsgJob.set(wait: 1.seconds).perform_later(repo.id) unless repo&.mirror.waiting? end end