| @@ -2,7 +2,7 @@ class SyncForgeController < ApplicationController | |||
| before_action :check_token | |||
| def create | |||
| Rails.logger.info("=================request.subdomain:#{request.subdomain}========") | |||
| ActiveRecord::Base.transaction do | |||
| params.permit! | |||
| sync_params = params[:sync_params] | |||
| @@ -32,13 +32,7 @@ class SyncForgeController < ApplicationController | |||
| Rails.logger.info("=================new_project_score:#{new_project_score.try(:id)}========") | |||
| end | |||
| gitea_main = "testgitea.trustie.net" | |||
| if request.subdomain === 'testforgeplus' | |||
| gitea_main = "testgitea2.trustie.net" | |||
| elsif request.subdomain === 'forge' | |||
| gitea_main = "gitea.trustie.net" | |||
| end | |||
| SyncRepositoryJob.perform_later(project.repository, sync_params[:repository], gitea_main) if sync_params[:repository].present? | |||
| SyncRepositoryJob.perform_later(sync_params[:owner_login], sync_params[:identifier], sync_params[:repository], get_sudomain) if sync_params[:repository].present? | |||
| check_new_project(project, sync_params) | |||
| end | |||
| end | |||
| @@ -149,7 +143,7 @@ class SyncForgeController < ApplicationController | |||
| pre_project_score[:"#{k}"] = v | |||
| end | |||
| if k == "changeset_num" && v.to_i > pre_project_score.changeset_num.to_i && repository_params[:url].present? | |||
| SyncRepositoryJob.perform_later(project.repository, repository_params) | |||
| SyncRepositoryJob.perform_later(project.owner.try(:login), project.identifier, repository_params, get_sudomain) | |||
| end | |||
| end | |||
| pre_project_score.save! if change_num > 0 #如果 project_score有变化则更新 | |||
| @@ -254,4 +248,15 @@ class SyncForgeController < ApplicationController | |||
| "34c82f51e0b699d9d16d70fd6497c9b1e4821d6ea3e872558a6537a091076b8e" | |||
| end | |||
| def get_sudomain | |||
| Rails.logger.info("=================request.subdomain:#{request.subdomain}========") | |||
| gitea_main = "testgitea.trustie.net" | |||
| if request.subdomain === 'testforgeplus' | |||
| gitea_main = "testgitea2.trustie.net" | |||
| elsif request.subdomain === 'forge' | |||
| gitea_main = "gitea.trustie.net" | |||
| end | |||
| return gitea_main | |||
| end | |||
| end | |||
| @@ -17,6 +17,8 @@ class SyncProjectsJob < ApplicationJob | |||
| http = Net::HTTP.new(uri.hostname, uri.port) | |||
| http.use_ssl = true | |||
| response = http.send_request('GET', uri.path, sync_params, {'Content-Type' => 'application/json'}) | |||
| SyncLog.sync_log("==========response_status:#{response.status}============") | |||
| SyncLog.sync_log("==========response_body:#{response.body}============") | |||
| if response.status == 200 | |||
| target_jsons = response.body | |||
| SyncLog.sync_log("=========target_jsons: #{target_jsons}============") | |||
| @@ -48,7 +50,7 @@ class SyncProjectsJob < ApplicationJob | |||
| def create_target(project, target_jsons, target_type) | |||
| Rails.logger.info("***111222. begin_to_create_target---------------") | |||
| Rails.logger.info("***【#{target_type}】. begin_to_create_target---------------") | |||
| target_jsons.each do |re| | |||
| if re[:target_params].present? | |||
| Rails.logger.info("***user_login:#{re[:user_login]}----target_type:#{target_type}") | |||
| @@ -3,23 +3,23 @@ class SyncRepositoryJob < ApplicationJob | |||
| #同步 trustie的仓库 | |||
| def perform(repository, repository_params, gitea_main) | |||
| def perform(user_login, identifier, repository_params, gitea_main) | |||
| #创建临时文件夹 clone 并强推代码 | |||
| SyncLog.sync_log("=================begin to sync request trustie repository=====================") | |||
| SyncLog.sync_log("=================begin to sync repository_params:==#{repository_params}===================") | |||
| SyncLog.sync_log("=================repository_url:==#{repository_params[:url]}===================") | |||
| SyncLog.sync_log("=================repository_url:==#{repository_params[:git_url]}===================") | |||
| path = "#{Rails.root}/public/cache_repository" | |||
| unless File.directory?(path) | |||
| FileUtils.mkdir_p(path) | |||
| end | |||
| image_url = repository_params[:url] | |||
| image_url = repository_params[:git_url] | |||
| g_default_branch = repository_params[:default_branch] | |||
| image_repo_name = image_url.to_s.split('/')&.last&.chomp('.git') | |||
| check_clone = system("cd #{path} and git clone #{image_url}") | |||
| if check_clone | |||
| new_gitlab_url = "http://root:_Trustie_10010@#{gitea_main}/#{repository.user.login}/#{repository.identifier}.git" | |||
| new_gitlab_url = "http://root:_Trustie_10010@#{gitea_main}/#{user_login}/#{identifier}.git" | |||
| shell_remote_1 = system("cd #{path}/#{image_repo_name} && git remote set-url origin #{new_gitlab_url}") | |||