From b340de89c732ee9e5b0023ed9671ea7fd7d9bf0e Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 16:46:57 +0800 Subject: [PATCH 01/71] qianyi datas --- Gemfile | 2 +- app/constraint/admin_constraint.rb | 13 +- app/controllers/sync_forge_controller.rb | 194 +++++++++++++++++++++++ app/jobs/sync_projects_job.rb | 69 ++++++++ app/jobs/sync_repository_job.rb | 40 +++++ app/models/sync_log.rb | 6 + config/routes.rb | 5 + 7 files changed, 324 insertions(+), 5 deletions(-) create mode 100644 app/controllers/sync_forge_controller.rb create mode 100644 app/jobs/sync_projects_job.rb create mode 100644 app/jobs/sync_repository_job.rb create mode 100644 app/models/sync_log.rb diff --git a/Gemfile b/Gemfile index 5fad5f056..491b512c2 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ gem 'oauth2' #导出为pdf gem 'pdfkit' gem 'wkhtmltopdf-binary' -gem 'request_store' +# gem 'request_store' #gem 'iconv' # markdown 转html gem 'redcarpet', '~> 3.4' diff --git a/app/constraint/admin_constraint.rb b/app/constraint/admin_constraint.rb index 2cf5649a7..01ed0cad0 100644 --- a/app/constraint/admin_constraint.rb +++ b/app/constraint/admin_constraint.rb @@ -1,8 +1,13 @@ class AdminConstraint def matches?(request) - laboratory = Laboratory.first - return false unless request.session[:"#{laboratory.try(:identifier).split('.').first}_user_id"] - user = User.find request.session[:"#{laboratory.try(:identifier).split('.').first}_user_id"] - user && user.admin? + if Rails.env.development? + true + else + laboratory = Laboratory.first + return false unless request.session[:"#{laboratory.try(:identifier).split('.').first}_user_id"] + user = User.find request.session[:"#{laboratory.try(:identifier).split('.').first}_user_id"] + user && user.admin? + end + end end \ No newline at end of file diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb new file mode 100644 index 000000000..ed2f87aaa --- /dev/null +++ b/app/controllers/sync_forge_controller.rb @@ -0,0 +1,194 @@ +class SyncForgeController < ApplicationController + before_action :check_token + + def create + sync_params = params[:sync_params] + + #以前已同步的项目,那么肯定存在仓库 + if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) + project = Project.find_by(id: sync_params[:id]) + check_sync_project(project, sync_params) + else #新建项目 + + project_user = User.where(login: sync_params[:owner_login]).first.id + project_params = { + identifier: sync_params[:identifier], + user_id: user_id, + is_public: sync_params[:is_public] + } + project = Projects::CreateService.new(project_user, project_params).call + if project.present? + project.project_score.create!( sync_params[:project_score]) if sync_params[:project_score] + SyncRepositoryJob.perform_later(project.repository, sync_params[:repository_params]) if sync_params[:repository_params] + check_new_project(project, sync_params) + end + end + end + + def sync_users + params.permit! + users_params = params[:sync_params] + users_params.each do |u| + unless User.exists?(login: u[:user_params][:login]) + new_user = User.new(u[:user_params]) + username = new_user.login + password = "12345678" + ActiveRecord::Base.transaction do + interactor = Gitea::RegisterInteractor.call({username: username, email: new_user.mail, password: password}) + if interactor.success? + gitea_user = interactor.result + result = Gitea::User::GenerateTokenService.new(username, password).call + new_user.gitea_token = result['sha1'] + new_user.gitea_uid = gitea_user['id'] + if new_user.save! + new_user.user_extension.create!(u[:user_extensions]) if u[:user_extensions].present? + normal_status(1, "created_succrss") + end + else + normal_status(-1, "created_failed") + end + end + end + end + rescue Exception => e + normal_status(-1, e.message) + end + + private + + def check_sync_project(project,sync_params) + if sync_params[:repository_params].present? #仓库存在 + change_project_score(project, sync_params[:project_score], sync_params[:repository_params]) #更新project_score + end + change_project_issues(project, sync_params[:issues],project.id) + change_project_members(project, sync_params[:members]) + change_project_versions(project, sync_params[:project_versions]) + change_project_watchers(project, sync_params[:project_watchers]) + change_project_praises(project, sync_params[:praise_trends]) + end + + def check_new_project(project,sync_params) + sync_projects_params = { + type: "Project", + ids: sync_params[:id], + token: get_token, + sync_params: sync_params, + new_project_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params) + end + + def change_project_praises(project, praises) + forge_praises_ids = project&.praise_treads&.select(:id)&.pluck(:id) + diff_target_ids = praises[:ids] - forge_praises_ids + if diff_target_ids.size > 0 + sync_projects_params = { + type: "PraiseTread", + ids: diff_target_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params) + end + end + + #检查repository和project_score + def change_project_score(project, project_scores, repository_params) + pre_project_score = project.project_score + if pre_project_score.present? + change_num = 0 + project_scores.each do |k,v| + unless pre_project_score.send("#{k}") == v + change_num += 1 + 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) + end + end + pre_project_score.save! if change_num > 0 #如果 project_score有变化则更新 + else + project.project_score.create!(project_scores) + end + end + + def change_project_issues(project, old_issues_params,project_id) + forge_issue_ids = project&.issues&.select(:id)&.pluck(:id) + forge_journal_ids = Journal.select([:id, :journalized_id, :journalized_type]).where(journalized_id: forge_issue_ids).pluck(:id) + diff_issue_ids = old_issues_params[:issue_params][:ids] - forge_issue_ids + sync_projects_params = {} + if diff_issue_ids.size == 0 #issue数量一样,判断评论是否有增减 + diff_journal_ids = old_issues_params[:issue_params][:journals][:ids] - forge_journal_ids + unless diff_journal_ids.size == 0 + sync_projects_params = { + type: "Journal", + ids: diff_journal_ids, + token: get_token, + parent_id: project_id + } + end + else + sync_projects_params = { + type: "Issue", + ids: diff_issue_ids, + token: get_token, + parent_id: project_id + } + end + SyncProjectsJob.perform_later(sync_projects_params) if sync_projects_params.present? + end + + def change_project_watchers(project, watchers) + forge_watchers_ids = project&.watchers&.select(:id)&.pluck(:id) + diff_target_ids = watchers[:ids] - forge_watchers_ids + if diff_target_ids.size > 0 + sync_projects_params = { + type: "Watcher", + ids: diff_target_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params) + end + end + + def change_project_versions(project, versions) + forge_version_ids = project&.versions&.select(:id)&.pluck(:id) + diff_version_ids = versions[:ids] - forge_version_ids + if diff_version_ids.size > 0 + sync_projects_params = { + type: "Version", + ids: diff_version_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params) + end + end + + def change_project_members(project, members) + forge_member_ids = project&.members&.select(:id)&.pluck(:id) + diff_member_ids = members[:ids] - forge_member_ids + if diff_member_ids.size > 0 + sync_projects_params = { + type: "Member", + ids: diff_member_ids, + token: get_token, + parent_id: project.id + } + SyncProjectsJob.perform_later(sync_projects_params) + end + end + + def check_token + sync_params = params[:sync_params][0] + unless sync_params[:token] && sync_params[:token] == get_token + render json: {message: "token_errors"} + end + end + + def get_token + "34c82f51e0b699d9d16d70fd6497c9b1e4821d6ea3e872558a6537a091076b8e" + end + +end \ No newline at end of file diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb new file mode 100644 index 000000000..fb23a44d1 --- /dev/null +++ b/app/jobs/sync_projects_job.rb @@ -0,0 +1,69 @@ +class SyncProjectsJob < ApplicationJob + queue_as :default + + require 'uri' + require 'net/http' + + def perform(sync_params) + SyncLog.sync_log.info("==========begin to sync #{sync_params[:type]} to forge============") + begin + gitea_main = "https://trustie.net" + if request.subdomain === 'testforgeplus' + gitea_main = "https://ucloudtest.trustie.net/" + end + + url = "#{gitea_main}/sync_forges" #trustie上的相关路由 + + sync_json = { + "sync_params": sync_params + } + uri = URI.parse(url) + if api_host + 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'}) + if response.status == 200 + target_jsons = response.body + if target_jsons.present? && sync_params[:type] + create_target(eval(target_jsons), sync_params[:type].to_s) + end + else + SyncLog.sync_log.info("==========bsync_user_to_forge_failed #{sync_params[:type]}============") + end + end + rescue => e + SyncLog.sync_log.info("==========bsync_user_to_forge_failed #{sync_params[:type]}============errors:#{e}") + end + end + + + def create_target(target_jsons, target_type) + target_jsons.each do |re| + + u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first + + new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) + if target_type == "Project" + create_target(re[:issues_params], "Issue") if re[:issues_params].present? + create_target(re[:member_params], "Member") if re[:member_params].present? + create_target(re[:versions_params], "Version") if re[:versions_params].present? + create_target(re[:watcher_params], "Watcher") if re[:watcher_params].present? + create_target(re[:praise_treads], "PraiseTread") if re[:praise_treads].present? + end + if target_type == "Issue" + assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first + new_target.assigned_to_id = assing_u_id + if re[:journals].present? + create_target(re[:journals], "Journal") + end + end + if new_target.save! + if re[:journal_details].present? + re[:journal_details].each do |j| + JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) + end + end + end + end + end +end \ No newline at end of file diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb new file mode 100644 index 000000000..915df3831 --- /dev/null +++ b/app/jobs/sync_repository_job.rb @@ -0,0 +1,40 @@ +class SyncRepositoryJob < ApplicationJob + queue_as :default + + #同步 trustie的仓库 + + def perform(repository, repository_params) + #创建临时文件夹 clone 并强推代码 + SyncLog.sync_log("=================begin to sync repository=====================") + path = "#{Rails.root}/public/cache_repository" + unless File.directory?(path) + FileUtils.mkdir_p(path) + end + image_url = repository_params[: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}") + + gitea_main = "testgitea.trustie.net" + if request.subdomain === 'testforgeplus' + gitea_main = "testgitea2.trustie.net" + elsif request.subdomain === 'forge' + gitea_main = "gitea.trustie.net" + end + + if check_clone + new_gitlab_url = "http://root:_Trustie_10010@#{gitea_main}/#{repository.user.login}/#{repository.identifier}.git" + + shell_remote_1 = system("cd #{path}/#{image_repo_name} && git remote set-url origin #{new_gitlab_url}") + + shell5 = system("cd #{path}/#{image_repo_name} && git checkout #{g_default_branch} && git push --force --set-upstream origin #{g_default_branch}") + if !shell5 + SyncLog.sync_log("++++++++++++++++++force_push_erros++++++++++++++++++##{path}/#{image_repo_name}++++++new_gitlab_url+++#{new_gitlab_url}") + end + else + SyncLog.sync_log("++++++++++++++++++check_clone_erros++++++++++++++++++#{image_repo_name}") + end + SyncLog.sync_log("=================end to sync repository=====================#{image_repo_name}") + end + +end \ No newline at end of file diff --git a/app/models/sync_log.rb b/app/models/sync_log.rb new file mode 100644 index 000000000..f50cb22b8 --- /dev/null +++ b/app/models/sync_log.rb @@ -0,0 +1,6 @@ +class SyncLog + def self.sync_log(message=nil) + @my_log ||= Logger.new("#{Rails.root}/log/sync.log") + @my_log.debug(message) unless message.nil? + end +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index ba9efd909..806699948 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -16,6 +16,11 @@ Rails.application.routes.draw do resources :edu_settings scope '/api' do + resources :sync_forge, only: [:create] do + collection do + post :sync_users + end + end resources :composes do resources :compose_projects, only: [:create, :destroy] end From 4fa545c6811815f5b13ab7d3d8ed8c25fe05ed0d Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 17:51:38 +0800 Subject: [PATCH 02/71] add sync logs --- app/controllers/sync_forge_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index ed2f87aaa..96996929f 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -29,6 +29,7 @@ class SyncForgeController < ApplicationController params.permit! users_params = params[:sync_params] users_params.each do |u| + Rails.logger.info("--------------user_login:#{u[:user_params][:login]}--------------------") unless User.exists?(login: u[:user_params][:login]) new_user = User.new(u[:user_params]) username = new_user.login From 7ee556cd6ceb7598fcc29ebeef1dca46fd468eda Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 19:27:36 +0800 Subject: [PATCH 03/71] change bugs --- app/controllers/sync_forge_controller.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 96996929f..373d75292 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -3,6 +3,8 @@ class SyncForgeController < ApplicationController def create sync_params = params[:sync_params] + sync_params = eval(sync_params) + Rails.logger.info("========sync_params===#{sync_params}====") #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) @@ -29,8 +31,9 @@ class SyncForgeController < ApplicationController params.permit! users_params = params[:sync_params] users_params.each do |u| - Rails.logger.info("--------------user_login:#{u[:user_params][:login]}--------------------") - unless User.exists?(login: u[:user_params][:login]) + if User.exists?(login: u[:user_params][:login]) + normal_status(-1, "user:#{u[:user_params][:login]} is present") + else new_user = User.new(u[:user_params]) username = new_user.login password = "12345678" @@ -42,7 +45,7 @@ class SyncForgeController < ApplicationController new_user.gitea_token = result['sha1'] new_user.gitea_uid = gitea_user['id'] if new_user.save! - new_user.user_extension.create!(u[:user_extensions]) if u[:user_extensions].present? + UserExtension.create!(u[:user_extensions].merge(user_id: new_user.id)) if u[:user_extensions].present? normal_status(1, "created_succrss") end else @@ -109,7 +112,8 @@ class SyncForgeController < ApplicationController end pre_project_score.save! if change_num > 0 #如果 project_score有变化则更新 else - project.project_score.create!(project_scores) + ProjectScore.create!(project_scores.merge(project_id: project.id)) + # project.project_score.create!(project_scores) end end From 98ec2d0b3c9cb6d7ca59f54e24363631f992e446 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 19:30:15 +0800 Subject: [PATCH 04/71] change bugs --- app/controllers/sync_forge_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 373d75292..4674e3d33 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -2,7 +2,7 @@ class SyncForgeController < ApplicationController before_action :check_token def create - sync_params = params[:sync_params] + sync_params = params["sync_params"] sync_params = eval(sync_params) Rails.logger.info("========sync_params===#{sync_params}====") From 20ac55a3232b384d0eedd70121c99ac538e17ceb Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 19:33:02 +0800 Subject: [PATCH 05/71] change bugs --- app/controllers/sync_forge_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 4674e3d33..2e1e29953 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -3,8 +3,10 @@ class SyncForgeController < ApplicationController def create sync_params = params["sync_params"] + Rails.logger.info("========sync_params=1==#{params["sync_params"]}====") + Rails.logger.info("========sync_params=2==#{params[:sync_params]}====") + sync_params = eval(sync_params) - Rails.logger.info("========sync_params===#{sync_params}====") #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) From dbfef204343685e9312542f6803f6438efbc8dda Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 19:43:17 +0800 Subject: [PATCH 06/71] change bugs --- app/controllers/sync_forge_controller.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 2e1e29953..e9b3f62e2 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -2,11 +2,10 @@ class SyncForgeController < ApplicationController before_action :check_token def create - sync_params = params["sync_params"] - Rails.logger.info("========sync_params=1==#{params["sync_params"]}====") + sync_params = params[:sync_params] Rails.logger.info("========sync_params=2==#{params[:sync_params]}====") - sync_params = eval(sync_params) + # sync_params = eval(sync_params) #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) @@ -188,7 +187,7 @@ class SyncForgeController < ApplicationController end def check_token - sync_params = params[:sync_params][0] + sync_params = params[:sync_params] unless sync_params[:token] && sync_params[:token] == get_token render json: {message: "token_errors"} end From 55b4ec2aa731da9d41aab4053c38856ee06ce272 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 19:46:42 +0800 Subject: [PATCH 07/71] change bugs --- app/controllers/sync_forge_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index e9b3f62e2..652fe06c6 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -30,7 +30,9 @@ class SyncForgeController < ApplicationController def sync_users params.permit! - users_params = params[:sync_params] + sync_params = params[:sync_params] + users_params = sync_params[:users] + users_params.each do |u| if User.exists?(login: u[:user_params][:login]) normal_status(-1, "user:#{u[:user_params][:login]} is present") From 43f39b6a0132df2cbe8384743e340722a3e7dd70 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 19:57:24 +0800 Subject: [PATCH 08/71] change bugs --- app/controllers/sync_forge_controller.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 652fe06c6..ff4f9d86c 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -35,7 +35,7 @@ class SyncForgeController < ApplicationController users_params.each do |u| if User.exists?(login: u[:user_params][:login]) - normal_status(-1, "user:#{u[:user_params][:login]} is present") + SyncLog.sync_log("=================sync_to_user_been_exists====#{u[:user_params][:login]}") else new_user = User.new(u[:user_params]) username = new_user.login @@ -49,14 +49,17 @@ class SyncForgeController < ApplicationController new_user.gitea_uid = gitea_user['id'] if new_user.save! UserExtension.create!(u[:user_extensions].merge(user_id: new_user.id)) if u[:user_extensions].present? - normal_status(1, "created_succrss") + SyncLog.sync_log("=================sync_to_user_success====#{new_user.login}") + else + SyncLog.sync_log("=================sync_to_user_failed==1==#{new_user.login}") end else - normal_status(-1, "created_failed") + SyncLog.sync_log("=================sync_to_user_failed====#{new_user.login}") end end end end + normal_status(1, "completed_sync") rescue Exception => e normal_status(-1, e.message) end @@ -190,6 +193,7 @@ class SyncForgeController < ApplicationController def check_token sync_params = params[:sync_params] + Rails.logger.info("=======is_token:#{sync_params[:token] == get_token}=====================") unless sync_params[:token] && sync_params[:token] == get_token render json: {message: "token_errors"} end From f3392e0aebdfca2d3bdfc1a992f3dddb9a4b797a Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:17:49 +0800 Subject: [PATCH 09/71] change bugs --- app/controllers/sync_forge_controller.rb | 45 ++++++++++++------------ 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index ff4f9d86c..94092d984 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -2,29 +2,30 @@ class SyncForgeController < ApplicationController before_action :check_token def create - sync_params = params[:sync_params] - Rails.logger.info("========sync_params=2==#{params[:sync_params]}====") - - # sync_params = eval(sync_params) - - #以前已同步的项目,那么肯定存在仓库 - if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) - project = Project.find_by(id: sync_params[:id]) - check_sync_project(project, sync_params) - else #新建项目 + ActiveRecord::Base.transaction do + sync_params = params[:sync_params] - project_user = User.where(login: sync_params[:owner_login]).first.id - project_params = { - identifier: sync_params[:identifier], - user_id: user_id, - is_public: sync_params[:is_public] - } - project = Projects::CreateService.new(project_user, project_params).call - if project.present? - project.project_score.create!( sync_params[:project_score]) if sync_params[:project_score] - SyncRepositoryJob.perform_later(project.repository, sync_params[:repository_params]) if sync_params[:repository_params] - check_new_project(project, sync_params) - end + + #以前已同步的项目,那么肯定存在仓库 + if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) + project = Project.find_by(id: sync_params[:id]) + check_sync_project(project, sync_params) + else #新建项目 + + project_user = User.where(login: sync_params[:owner_login]).first + project_params = { + identifier: sync_params[:identifier], + user_id: project_user.id, + is_public: sync_params[:is_public] + } + project = Projects::CreateService.new(project_user, project_params).call + if project.present? + project.project_score.create!( sync_params[:project_score]) if sync_params[:project_score] + SyncRepositoryJob.perform_later(project.repository, sync_params[:repository_params]) if sync_params[:repository_params] + check_new_project(project, sync_params) + end + rescue Exception => e + Rails.logger.info("========has_errors:==#{e}====") end end From e06a2ec0f00e22243a76d724ecc54327ca7f56a7 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:24:02 +0800 Subject: [PATCH 10/71] change bugs --- app/controllers/sync_forge_controller.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 94092d984..51193a0ca 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -4,14 +4,13 @@ class SyncForgeController < ApplicationController def create ActiveRecord::Base.transaction do sync_params = params[:sync_params] - - #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) + Rails.logger.info("=================begin_to_update_project========") project = Project.find_by(id: sync_params[:id]) check_sync_project(project, sync_params) else #新建项目 - + Rails.logger.info("=================begin_to_create_new_project========") project_user = User.where(login: sync_params[:owner_login]).first project_params = { identifier: sync_params[:identifier], @@ -24,9 +23,10 @@ class SyncForgeController < ApplicationController SyncRepositoryJob.perform_later(project.repository, sync_params[:repository_params]) if sync_params[:repository_params] check_new_project(project, sync_params) end - rescue Exception => e - Rails.logger.info("========has_errors:==#{e}====") + end end + rescue Exception => e + SyncLog.sync_log("=================has_errors:==#{e}") end def sync_users From 9e15f2c7333c88904d5217ef223e10606c422fd8 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:36:27 +0800 Subject: [PATCH 11/71] Change bugs --- app/controllers/sync_forge_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 51193a0ca..1353e7aa3 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -15,7 +15,8 @@ class SyncForgeController < ApplicationController project_params = { identifier: sync_params[:identifier], user_id: project_user.id, - is_public: sync_params[:is_public] + private: !sync_params[:is_public], + name: sync_params[:name] } project = Projects::CreateService.new(project_user, project_params).call if project.present? @@ -26,7 +27,7 @@ class SyncForgeController < ApplicationController end end rescue Exception => e - SyncLog.sync_log("=================has_errors:==#{e}") + Rails.logger.info("=================has_errors:==#{e}") end def sync_users From 2916b1098eab860feb49b9325919953e0f429106 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:40:35 +0800 Subject: [PATCH 12/71] change bugs --- app/controllers/sync_forge_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 1353e7aa3..95e846f8a 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -13,7 +13,7 @@ class SyncForgeController < ApplicationController Rails.logger.info("=================begin_to_create_new_project========") project_user = User.where(login: sync_params[:owner_login]).first project_params = { - identifier: sync_params[:identifier], + repository_name: sync_params[:identifier], user_id: project_user.id, private: !sync_params[:is_public], name: sync_params[:name] From 804e971314a8632b4c1f0457c93a563367c7f77e Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:57:49 +0800 Subject: [PATCH 13/71] change bugs --- app/controllers/sync_forge_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 95e846f8a..c76d1b79f 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -5,9 +5,9 @@ class SyncForgeController < ApplicationController ActiveRecord::Base.transaction do sync_params = params[:sync_params] #以前已同步的项目,那么肯定存在仓库 - if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) + if Project.exists?(id: sync_params[:id]) || Project.exists?(identifier: sync_params[:identifier]) Rails.logger.info("=================begin_to_update_project========") - project = Project.find_by(id: sync_params[:id]) + project = Project.find_by(id: sync_params[:id]) || Project.where(identifier: sync_params[:identifier])&.first check_sync_project(project, sync_params) else #新建项目 Rails.logger.info("=================begin_to_create_new_project========") @@ -20,7 +20,7 @@ class SyncForgeController < ApplicationController } project = Projects::CreateService.new(project_user, project_params).call if project.present? - project.project_score.create!( sync_params[:project_score]) if sync_params[:project_score] + ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score] SyncRepositoryJob.perform_later(project.repository, sync_params[:repository_params]) if sync_params[:repository_params] check_new_project(project, sync_params) end From 4aec62fc33d1826dd03a78b9c3da0f0644cc0997 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 09:53:13 +0800 Subject: [PATCH 14/71] change bugs --- app/controllers/sync_forge_controller.rb | 6 +++--- app/jobs/sync_projects_job.rb | 10 +++++----- app/jobs/sync_repository_job.rb | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index c76d1b79f..e1fa8f16b 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -21,7 +21,7 @@ class SyncForgeController < ApplicationController project = Projects::CreateService.new(project_user, project_params).call if project.present? ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score] - SyncRepositoryJob.perform_later(project.repository, sync_params[:repository_params]) if sync_params[:repository_params] + SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository] check_new_project(project, sync_params) end end @@ -69,8 +69,8 @@ class SyncForgeController < ApplicationController private def check_sync_project(project,sync_params) - if sync_params[:repository_params].present? #仓库存在 - change_project_score(project, sync_params[:project_score], sync_params[:repository_params]) #更新project_score + if sync_params[:repository].present? #仓库存在 + change_project_score(project, sync_params[:project_score], sync_params[:repository]) #更新project_score end change_project_issues(project, sync_params[:issues],project.id) change_project_members(project, sync_params[:members]) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index fb23a44d1..41ac92f65 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -7,9 +7,9 @@ class SyncProjectsJob < ApplicationJob def perform(sync_params) SyncLog.sync_log.info("==========begin to sync #{sync_params[:type]} to forge============") begin - gitea_main = "https://trustie.net" - if request.subdomain === 'testforgeplus' - gitea_main = "https://ucloudtest.trustie.net/" + gitea_main = "https://ucloudtest.trustie.net/" + if request.subdomain === 'forgeplus' + gitea_main = "https://trustie.net" end url = "#{gitea_main}/sync_forges" #trustie上的相关路由 @@ -28,11 +28,11 @@ class SyncProjectsJob < ApplicationJob create_target(eval(target_jsons), sync_params[:type].to_s) end else - SyncLog.sync_log.info("==========bsync_user_to_forge_failed #{sync_params[:type]}============") + SyncLog.sync_log.info("==========sync_project_to_forge_failed #{sync_params[:type]}============") end end rescue => e - SyncLog.sync_log.info("==========bsync_user_to_forge_failed #{sync_params[:type]}============errors:#{e}") + SyncLog.sync_log.info("==========sync_project_to_forge_failed #{sync_params[:type]}============errors:#{e}") end end diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 915df3831..7cc05df0e 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -5,7 +5,7 @@ class SyncRepositoryJob < ApplicationJob def perform(repository, repository_params) #创建临时文件夹 clone 并强推代码 - SyncLog.sync_log("=================begin to sync repository=====================") + SyncLog.sync_log("=================begin to sync request trustie repository=====================") path = "#{Rails.root}/public/cache_repository" unless File.directory?(path) FileUtils.mkdir_p(path) From 99947f17d160b1a372062cc1de984928a4a3ba18 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 10:09:59 +0800 Subject: [PATCH 15/71] change bugs --- app/controllers/sync_forge_controller.rb | 91 ++++++++++++++---------- 1 file changed, 53 insertions(+), 38 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index e1fa8f16b..f4a8a2db4 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -8,6 +8,7 @@ class SyncForgeController < ApplicationController if Project.exists?(id: sync_params[:id]) || Project.exists?(identifier: sync_params[:identifier]) Rails.logger.info("=================begin_to_update_project========") project = Project.find_by(id: sync_params[:id]) || Project.where(identifier: sync_params[:identifier])&.first + Rails.logger.info("--------project_id:#{project.id}---------------") check_sync_project(project, sync_params) else #新建项目 Rails.logger.info("=================begin_to_create_new_project========") @@ -69,14 +70,21 @@ class SyncForgeController < ApplicationController private def check_sync_project(project,sync_params) - if sync_params[:repository].present? #仓库存在 - change_project_score(project, sync_params[:project_score], sync_params[:repository]) #更新project_score + begin + Rails.logger.info("----begin_to_check_sync_project----project_id:#{project.id}---------------") + if sync_params[:repository].present? #仓库存在 + change_project_score(project, sync_params[:project_score], sync_params[:repository]) #更新project_score + end + change_project_score(project, sync_params[:project_score], sync_params[:repository]) if sync_params[:repository].present? #更新project_score + change_project_issues(project, sync_params[:issues],project.id) + change_project_members(project, sync_params[:members]) + change_project_versions(project, sync_params[:project_versions]) + change_project_watchers(project, sync_params[:project_watchers]) + change_project_praises(project, sync_params[:praise_trends]) + rescue => e + Rails.logger.info("=========check_sync_project_errors:#{e}===================") end - change_project_issues(project, sync_params[:issues],project.id) - change_project_members(project, sync_params[:members]) - change_project_versions(project, sync_params[:project_versions]) - change_project_watchers(project, sync_params[:project_watchers]) - change_project_praises(project, sync_params[:praise_trends]) + end def check_new_project(project,sync_params) @@ -106,49 +114,56 @@ class SyncForgeController < ApplicationController #检查repository和project_score def change_project_score(project, project_scores, repository_params) - pre_project_score = project.project_score - if pre_project_score.present? - change_num = 0 - project_scores.each do |k,v| - unless pre_project_score.send("#{k}") == v - change_num += 1 - 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) + begin + pre_project_score = project.project_score + if pre_project_score.present? + change_num = 0 + project_scores.each do |k,v| + unless pre_project_score.send("#{k}") == v + change_num += 1 + 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) + end end + pre_project_score.save! if change_num > 0 #如果 project_score有变化则更新 + else + ProjectScore.create!(project_scores.merge(project_id: project.id)) end - pre_project_score.save! if change_num > 0 #如果 project_score有变化则更新 - else - ProjectScore.create!(project_scores.merge(project_id: project.id)) - # project.project_score.create!(project_scores) + rescue Exception => e + Rails.logger.info("=========change_project_score_errors:#{e}===================") end end def change_project_issues(project, old_issues_params,project_id) - forge_issue_ids = project&.issues&.select(:id)&.pluck(:id) - forge_journal_ids = Journal.select([:id, :journalized_id, :journalized_type]).where(journalized_id: forge_issue_ids).pluck(:id) - diff_issue_ids = old_issues_params[:issue_params][:ids] - forge_issue_ids - sync_projects_params = {} - if diff_issue_ids.size == 0 #issue数量一样,判断评论是否有增减 - diff_journal_ids = old_issues_params[:issue_params][:journals][:ids] - forge_journal_ids - unless diff_journal_ids.size == 0 + begin + forge_issue_ids = project&.issues&.select(:id)&.pluck(:id) + forge_journal_ids = Journal.select([:id, :journalized_id, :journalized_type]).where(journalized_id: forge_issue_ids).pluck(:id) + diff_issue_ids = old_issues_params[:ids] - forge_issue_ids + sync_projects_params = {} + if diff_issue_ids.size == 0 #issue数量一样,判断评论是否有增减 + diff_journal_ids = old_issues_params[:journals][:ids] - forge_journal_ids + unless diff_journal_ids.size == 0 + sync_projects_params = { + type: "Journal", + ids: diff_journal_ids, + token: get_token, + parent_id: project_id + } + end + else sync_projects_params = { - type: "Journal", - ids: diff_journal_ids, + type: "Issue", + ids: diff_issue_ids, token: get_token, parent_id: project_id } end - else - sync_projects_params = { - type: "Issue", - ids: diff_issue_ids, - token: get_token, - parent_id: project_id - } + SyncProjectsJob.perform_later(sync_projects_params) if sync_projects_params.present? + rescue Exception => e + Rails.logger.info("=========change_project_issues_errors:#{e}===================") end - SyncProjectsJob.perform_later(sync_projects_params) if sync_projects_params.present? end def change_project_watchers(project, watchers) From 5aef64a928ddc44b4b53bf8fba21455db08824ac Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 10:20:37 +0800 Subject: [PATCH 16/71] change bugs --- app/controllers/sync_forge_controller.rb | 18 +++++++++++++++--- app/jobs/sync_projects_job.rb | 4 +++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index f4a8a2db4..820cbbd5a 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -72,9 +72,6 @@ class SyncForgeController < ApplicationController def check_sync_project(project,sync_params) begin Rails.logger.info("----begin_to_check_sync_project----project_id:#{project.id}---------------") - if sync_params[:repository].present? #仓库存在 - change_project_score(project, sync_params[:project_score], sync_params[:repository]) #更新project_score - end change_project_score(project, sync_params[:project_score], sync_params[:repository]) if sync_params[:repository].present? #更新project_score change_project_issues(project, sync_params[:issues],project.id) change_project_members(project, sync_params[:members]) @@ -88,6 +85,7 @@ class SyncForgeController < ApplicationController end def check_new_project(project,sync_params) + Rails.logger.info("***8. begin_to_sync_new_project---------------") sync_projects_params = { type: "Project", ids: sync_params[:id], @@ -96,9 +94,11 @@ class SyncForgeController < ApplicationController new_project_id: project.id } SyncProjectsJob.perform_later(sync_projects_params) + Rails.logger.info("***8. end_to_sync_new_project---------------") end def change_project_praises(project, praises) + Rails.logger.info("***6. begin_to_sync_parises---------------") forge_praises_ids = project&.praise_treads&.select(:id)&.pluck(:id) diff_target_ids = praises[:ids] - forge_praises_ids if diff_target_ids.size > 0 @@ -109,11 +109,13 @@ class SyncForgeController < ApplicationController parent_id: project.id } SyncProjectsJob.perform_later(sync_projects_params) + Rails.logger.info("***6. end_to_sync_parises---------------") end end #检查repository和project_score def change_project_score(project, project_scores, repository_params) + Rails.logger.info("***1. begin_to_sync_project_score---------------") begin pre_project_score = project.project_score if pre_project_score.present? @@ -131,12 +133,14 @@ class SyncForgeController < ApplicationController else ProjectScore.create!(project_scores.merge(project_id: project.id)) end + Rails.logger.info("***1. end_to_sync_project_score---------------") rescue Exception => e Rails.logger.info("=========change_project_score_errors:#{e}===================") end end def change_project_issues(project, old_issues_params,project_id) + Rails.logger.info("***2. begin_to_syncissues---------------") begin forge_issue_ids = project&.issues&.select(:id)&.pluck(:id) forge_journal_ids = Journal.select([:id, :journalized_id, :journalized_type]).where(journalized_id: forge_issue_ids).pluck(:id) @@ -161,12 +165,14 @@ class SyncForgeController < ApplicationController } end SyncProjectsJob.perform_later(sync_projects_params) if sync_projects_params.present? + Rails.logger.info("***2. end_to_syncissues---------------") rescue Exception => e Rails.logger.info("=========change_project_issues_errors:#{e}===================") end end def change_project_watchers(project, watchers) + Rails.logger.info("***5. begin_to_sync_watchers---------------") forge_watchers_ids = project&.watchers&.select(:id)&.pluck(:id) diff_target_ids = watchers[:ids] - forge_watchers_ids if diff_target_ids.size > 0 @@ -177,10 +183,13 @@ class SyncForgeController < ApplicationController parent_id: project.id } SyncProjectsJob.perform_later(sync_projects_params) + Rails.logger.info("***5. begin_to_sync_watchers---------------") + end end def change_project_versions(project, versions) + Rails.logger.info("***4. begin_to_sync_versions---------------") forge_version_ids = project&.versions&.select(:id)&.pluck(:id) diff_version_ids = versions[:ids] - forge_version_ids if diff_version_ids.size > 0 @@ -191,10 +200,12 @@ class SyncForgeController < ApplicationController parent_id: project.id } SyncProjectsJob.perform_later(sync_projects_params) + Rails.logger.info("***4. end_to_sync_versions---------------") end end def change_project_members(project, members) + Rails.logger.info("***3. begin_to_sync_members---------------") forge_member_ids = project&.members&.select(:id)&.pluck(:id) diff_member_ids = members[:ids] - forge_member_ids if diff_member_ids.size > 0 @@ -205,6 +216,7 @@ class SyncForgeController < ApplicationController parent_id: project.id } SyncProjectsJob.perform_later(sync_projects_params) + Rails.logger.info("***3. end_to_sync_members---------------") end end diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 41ac92f65..184f67dbd 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -38,8 +38,9 @@ class SyncProjectsJob < ApplicationJob def create_target(target_jsons, target_type) + Rails.logger.info("***111222. begin_to_create_target---------------") target_jsons.each do |re| - + Rails.logger.info("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) @@ -65,5 +66,6 @@ class SyncProjectsJob < ApplicationJob end end end + Rails.logger.info("***111222. end_to_create_target---------------") end end \ No newline at end of file From 087550797b782954c8e9c34d86e4e374c0136d08 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 10:52:44 +0800 Subject: [PATCH 17/71] change bugs --- app/controllers/sync_forge_controller.rb | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 820cbbd5a..2b3b0c283 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -4,12 +4,12 @@ class SyncForgeController < ApplicationController def create ActiveRecord::Base.transaction do sync_params = params[:sync_params] - #以前已同步的项目,那么肯定存在仓库 - if Project.exists?(id: sync_params[:id]) || Project.exists?(identifier: sync_params[:identifier]) + #以前已同步的项目,那么肯定存在仓库,4.20之前 + if Project.exists?(identifier: sync_params[:identifier]) Rails.logger.info("=================begin_to_update_project========") - project = Project.find_by(id: sync_params[:id]) || Project.where(identifier: sync_params[:identifier])&.first + project = Project.where(identifier: sync_params[:identifier])&.first Rails.logger.info("--------project_id:#{project.id}---------------") - check_sync_project(project, sync_params) + check_sync_project(project, sync_params) if project.present? else #新建项目 Rails.logger.info("=================begin_to_create_new_project========") project_user = User.where(login: sync_params[:owner_login]).first @@ -184,7 +184,6 @@ class SyncForgeController < ApplicationController } SyncProjectsJob.perform_later(sync_projects_params) Rails.logger.info("***5. begin_to_sync_watchers---------------") - end end From 77d0b892159d6fa840b27801992889769c645a73 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 10:58:39 +0800 Subject: [PATCH 18/71] change bugs --- app/controllers/sync_forge_controller.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 2b3b0c283..6872c86ea 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -4,14 +4,14 @@ class SyncForgeController < ApplicationController def create ActiveRecord::Base.transaction do sync_params = params[:sync_params] - #以前已同步的项目,那么肯定存在仓库,4.20之前 - if Project.exists?(identifier: sync_params[:identifier]) + #以前已同步的项目,那么肯定存在仓库 + if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) Rails.logger.info("=================begin_to_update_project========") - project = Project.where(identifier: sync_params[:identifier])&.first + project = Project.find_by(id: sync_params[:id]) Rails.logger.info("--------project_id:#{project.id}---------------") - check_sync_project(project, sync_params) if project.present? + check_sync_project(project, sync_params) else #新建项目 - Rails.logger.info("=================begin_to_create_new_project========") + Rails.logger.info("=================begin_to_create_new_project========") project_user = User.where(login: sync_params[:owner_login]).first project_params = { repository_name: sync_params[:identifier], @@ -184,6 +184,7 @@ class SyncForgeController < ApplicationController } SyncProjectsJob.perform_later(sync_projects_params) Rails.logger.info("***5. begin_to_sync_watchers---------------") + end end @@ -221,7 +222,6 @@ class SyncForgeController < ApplicationController def check_token sync_params = params[:sync_params] - Rails.logger.info("=======is_token:#{sync_params[:token] == get_token}=====================") unless sync_params[:token] && sync_params[:token] == get_token render json: {message: "token_errors"} end From 6395dad2f1e4544a6cc7559bf25c700ef235622f Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 11:11:54 +0800 Subject: [PATCH 19/71] change bugs --- app/controllers/sync_forge_controller.rb | 1 + app/services/projects/create_service.rb | 2 +- app/services/repositories/create_service.rb | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 6872c86ea..6fd5c0ea7 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -20,6 +20,7 @@ class SyncForgeController < ApplicationController name: sync_params[:name] } project = Projects::CreateService.new(project_user, project_params).call + Rails.logger.info("=================new_project_id:#{project.id}========") if project.present? ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score] SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository] diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index a512a9ab5..2daa5d0e2 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -15,7 +15,7 @@ class Projects::CreateService < ApplicationService Rails.logger.info("#############___________repository_params______###########{repository_params}") Repositories::CreateService.new(user, @project, repository_params).call else - # + Rails.logger.info("#############___________create_project_erros______###########{@project.errors.messages}") end end @project diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index d9d115ac2..d5da8ce31 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -12,10 +12,11 @@ class Repositories::CreateService < ApplicationService ActiveRecord::Base.transaction do if @repository.save! Rails.logger.info("#############__________gitea_repository_params______###########{gitea_repository_params}") - gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call sync_project(@repository, gitea_repository) sync_repository(@repository, gitea_repository) + else + Rails.logger.info("#############___________create_repository_erros______###########{@repository.errors.messages}") end @repository end From 2b7dec7f560c77a716f78d8482560a959c622cbc Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 11:14:08 +0800 Subject: [PATCH 20/71] change bugs --- app/services/repositories/create_service.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index d5da8ce31..866251900 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -15,6 +15,18 @@ class Repositories::CreateService < ApplicationService gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call sync_project(@repository, gitea_repository) sync_repository(@repository, gitea_repository) + if project.project_type == "common" + chain_params = { + type: "create", + chain_params:{ + username: user.try(:login), + reponame: @repository.try(:identifier), + token_name: @repository.try(:identifier), + total_supply: 1000000 + } + } + PostChainJob.perform_later(chain_params) #创建上链操作 + end else Rails.logger.info("#############___________create_repository_erros______###########{@repository.errors.messages}") end From aebaa7deda562211086de182e4928aa19ef43656 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 11:42:38 +0800 Subject: [PATCH 21/71] change bugs --- app/controllers/sync_forge_controller.rb | 3 ++- app/services/repositories/create_service.rb | 13 ------------- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 6fd5c0ea7..c999ec8db 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -22,7 +22,7 @@ class SyncForgeController < ApplicationController project = Projects::CreateService.new(project_user, project_params).call Rails.logger.info("=================new_project_id:#{project.id}========") if project.present? - ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score] + ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score].present? SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository] check_new_project(project, sync_params) end @@ -110,6 +110,7 @@ class SyncForgeController < ApplicationController parent_id: project.id } SyncProjectsJob.perform_later(sync_projects_params) + Rails.logger.info("***6. end_to_sync_parises---------------") end end diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index 866251900..b9005db55 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -15,19 +15,6 @@ class Repositories::CreateService < ApplicationService gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call sync_project(@repository, gitea_repository) sync_repository(@repository, gitea_repository) - if project.project_type == "common" - chain_params = { - type: "create", - chain_params:{ - username: user.try(:login), - reponame: @repository.try(:identifier), - token_name: @repository.try(:identifier), - total_supply: 1000000 - } - } - PostChainJob.perform_later(chain_params) #创建上链操作 - end - else Rails.logger.info("#############___________create_repository_erros______###########{@repository.errors.messages}") end @repository From c2e1fa27df28bfdbdf6c95f51855f55fcf18f250 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 11:53:30 +0800 Subject: [PATCH 22/71] change bugs --- app/controllers/sync_forge_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index c999ec8db..aed2f89b0 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -23,13 +23,15 @@ class SyncForgeController < ApplicationController Rails.logger.info("=================new_project_id:#{project.id}========") if project.present? ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score].present? - SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository] + Rails.logger.info("=================sync_params_test:#{sync_params[:project_score]}========") + Rails.logger.info("=================repository_present?:#{sync_params[:repository]}========") + SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? check_new_project(project, sync_params) end end end rescue Exception => e - Rails.logger.info("=================has_errors:==#{e}") + Rails.logger.info("=================has_errors:==#{e.message}") end def sync_users From 6d6294419d73f46bb81de22e93b585cb742d5f55 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 14:05:37 +0800 Subject: [PATCH 23/71] chang bugs --- app/services/repositories/create_service.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index b9005db55..2b5dfbef5 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -13,8 +13,10 @@ class Repositories::CreateService < ApplicationService if @repository.save! Rails.logger.info("#############__________gitea_repository_params______###########{gitea_repository_params}") gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call + Rails.logger.info("#############_______create__gitea_repository______###########{gitea_repository}") sync_project(@repository, gitea_repository) sync_repository(@repository, gitea_repository) + else Rails.logger.info("#############___________create_repository_erros______###########{@repository.errors.messages}") end @repository @@ -27,6 +29,7 @@ class Repositories::CreateService < ApplicationService private def sync_project(repository, gitea_repository) + Rails.logger.info("#############_________sync_project_____###########{gitea_repository}") if gitea_repository project.update_columns( gpid: gitea_repository["id"], @@ -36,6 +39,7 @@ class Repositories::CreateService < ApplicationService end def sync_repository(repository, gitea_repository) + Rails.logger.info("#############__________sync_repository______###########{@repository.try(:id)}") repository.update_columns(url: remote_repository_url,) if gitea_repository end From 553f8fb23aebb4a8c94fed357d54675734173c85 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 14:09:31 +0800 Subject: [PATCH 24/71] change bugs --- app/services/repositories/create_service.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index 2b5dfbef5..bac7b6df3 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -39,7 +39,9 @@ class Repositories::CreateService < ApplicationService end def sync_repository(repository, gitea_repository) - Rails.logger.info("#############__________sync_repository______###########{@repository.try(:id)}") + Rails.logger.info("#############__________sync_repository______###########{repository.try(:id)}") + Rails.logger.info("#############__________sync_repository___remote_repository_url___###########{remote_repository_url}") + repository.update_columns(url: remote_repository_url,) if gitea_repository end From 15f7383177b71f60542e03545cbc550b62cdd311 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 14:24:20 +0800 Subject: [PATCH 25/71] change bugs --- app/services/repositories/create_service.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index bac7b6df3..d19ec3177 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -30,11 +30,13 @@ class Repositories::CreateService < ApplicationService def sync_project(repository, gitea_repository) Rails.logger.info("#############_________sync_project_____###########{gitea_repository}") + if gitea_repository - project.update_columns( + s = project.update_columns( gpid: gitea_repository["id"], identifier: repository.identifier, forked_count: gitea_repository["forks_count"]) + Rails.logger.info("#############_________sync_project__ss___###########{s}") end end From 30daf158621b18dfafe320991dd212144d2e0e01 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 14:44:27 +0800 Subject: [PATCH 26/71] change logs --- app/services/repositories/create_service.rb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index d19ec3177..2f777b594 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -19,6 +19,8 @@ class Repositories::CreateService < ApplicationService else Rails.logger.info("#############___________create_repository_erros______###########{@repository.errors.messages}") end + Rails.logger.info("#############___________@create_repository_url______###########{@repository.try(:url)}") + Rails.logger.info("#############___________@create_project_gpid______###########{project.try(:gpid)}") @repository end rescue => e @@ -28,9 +30,7 @@ class Repositories::CreateService < ApplicationService private - def sync_project(repository, gitea_repository) - Rails.logger.info("#############_________sync_project_____###########{gitea_repository}") - + def sync_project(repository, gitea_repository) if gitea_repository s = project.update_columns( gpid: gitea_repository["id"], @@ -42,9 +42,8 @@ class Repositories::CreateService < ApplicationService def sync_repository(repository, gitea_repository) Rails.logger.info("#############__________sync_repository______###########{repository.try(:id)}") - Rails.logger.info("#############__________sync_repository___remote_repository_url___###########{remote_repository_url}") - - repository.update_columns(url: remote_repository_url,) if gitea_repository + r = repository.update_columns(url: remote_repository_url,) if gitea_repository + Rails.logger.info("#############__________sync_repository___rrrr___###########{r}") end def remote_repository_url From abae5618f4d90bbf38b47af5265da95d0538f302 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 14:53:23 +0800 Subject: [PATCH 27/71] change project_score --- app/controllers/sync_forge_controller.rb | 9 ++++++--- app/services/projects/create_service.rb | 1 - app/services/repositories/create_service.rb | 11 ++--------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index aed2f89b0..a391cea99 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -21,10 +21,13 @@ class SyncForgeController < ApplicationController } project = Projects::CreateService.new(project_user, project_params).call Rails.logger.info("=================new_project_id:#{project.id}========") + Rails.logger.info("=================new_repository_id:#{project&.repository&.id}========") if project.present? - ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) if sync_params[:project_score].present? - Rails.logger.info("=================sync_params_test:#{sync_params[:project_score]}========") - Rails.logger.info("=================repository_present?:#{sync_params[:repository]}========") + if sync_params[:project_score].present? + Rails.logger.info("=================sync_params_test:#{sync_params[:project_score]}========") + new_project_score = ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) + Rails.logger.info("=================new_project_is_create:#{new_project_score}========") + end SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? check_new_project(project, sync_params) end diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index 2daa5d0e2..f4297acfe 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -12,7 +12,6 @@ class Projects::CreateService < ApplicationService @project = Project.new(project_params) ActiveRecord::Base.transaction do if @project.save! - Rails.logger.info("#############___________repository_params______###########{repository_params}") Repositories::CreateService.new(user, @project, repository_params).call else Rails.logger.info("#############___________create_project_erros______###########{@project.errors.messages}") diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index 2f777b594..b506d13aa 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -11,16 +11,12 @@ class Repositories::CreateService < ApplicationService @repository = Repository.new(repository_params) ActiveRecord::Base.transaction do if @repository.save! - Rails.logger.info("#############__________gitea_repository_params______###########{gitea_repository_params}") gitea_repository = Gitea::Repository::CreateService.new(user.gitea_token, gitea_repository_params).call - Rails.logger.info("#############_______create__gitea_repository______###########{gitea_repository}") sync_project(@repository, gitea_repository) sync_repository(@repository, gitea_repository) else Rails.logger.info("#############___________create_repository_erros______###########{@repository.errors.messages}") end - Rails.logger.info("#############___________@create_repository_url______###########{@repository.try(:url)}") - Rails.logger.info("#############___________@create_project_gpid______###########{project.try(:gpid)}") @repository end rescue => e @@ -32,18 +28,15 @@ class Repositories::CreateService < ApplicationService def sync_project(repository, gitea_repository) if gitea_repository - s = project.update_columns( + project.update_columns( gpid: gitea_repository["id"], identifier: repository.identifier, forked_count: gitea_repository["forks_count"]) - Rails.logger.info("#############_________sync_project__ss___###########{s}") end end def sync_repository(repository, gitea_repository) - Rails.logger.info("#############__________sync_repository______###########{repository.try(:id)}") - r = repository.update_columns(url: remote_repository_url,) if gitea_repository - Rails.logger.info("#############__________sync_repository___rrrr___###########{r}") + repository.update_columns(url: remote_repository_url,) if gitea_repository end def remote_repository_url From 84ba2c560d7b0e468cf11f49757c08b1a18ed284 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 15:10:41 +0800 Subject: [PATCH 28/71] change project_score --- app/controllers/sync_forge_controller.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index a391cea99..47d6c6e01 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -24,9 +24,13 @@ class SyncForgeController < ApplicationController Rails.logger.info("=================new_repository_id:#{project&.repository&.id}========") if project.present? if sync_params[:project_score].present? - Rails.logger.info("=================sync_params_test:#{sync_params[:project_score]}========") - new_project_score = ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) - Rails.logger.info("=================new_project_is_create:#{new_project_score}========") + Rails.logger.info("=================sync_params_test:#{sync_params[:project_score].merge(project_id: project.id)}========") + + project_score = Project.new(project_id: project.id) + project_score.save + project_score.update_columns(sync_params[:project_score]) + # new_project_score = ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) + Rails.logger.info("=================new_project_is_create:#{project_score}========") end SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? check_new_project(project, sync_params) From e13e9f049d1a5d1092dbc1e75899eed7ceedd342 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 15:11:58 +0800 Subject: [PATCH 29/71] change project_score --- app/controllers/sync_forge_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 47d6c6e01..ebc773255 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -26,7 +26,7 @@ class SyncForgeController < ApplicationController if sync_params[:project_score].present? Rails.logger.info("=================sync_params_test:#{sync_params[:project_score].merge(project_id: project.id)}========") - project_score = Project.new(project_id: project.id) + project_score = ProjectScore.new(project_id: project.id) project_score.save project_score.update_columns(sync_params[:project_score]) # new_project_score = ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) From be1a80c1636ce47fc6891d0927041ff9dc34f250 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 15:24:19 +0800 Subject: [PATCH 30/71] change project_score --- app/controllers/sync_forge_controller.rb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index ebc773255..64148fad9 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -24,13 +24,10 @@ class SyncForgeController < ApplicationController Rails.logger.info("=================new_repository_id:#{project&.repository&.id}========") if project.present? if sync_params[:project_score].present? - Rails.logger.info("=================sync_params_test:#{sync_params[:project_score].merge(project_id: project.id)}========") - - project_score = ProjectScore.new(project_id: project.id) - project_score.save - project_score.update_columns(sync_params[:project_score]) - # new_project_score = ProjectScore.create!( sync_params[:project_score].merge(project_id: project.id)) - Rails.logger.info("=================new_project_is_create:#{project_score}========") + score_params = sync_params[:project_score].merge(project_id: project.id) + Rails.logger.info("=================new_score_params:#{score_params}========") + new_project_score = ProjectScore.create!(score_params) + Rails.logger.info("=================new_project_score:#{new_project_score}========") end SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? check_new_project(project, sync_params) From e9f93ddc20fd17bd13cad4c25264d1ef9e676204 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 15:35:51 +0800 Subject: [PATCH 31/71] change project_score --- app/controllers/sync_forge_controller.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 64148fad9..ae1fe8dc1 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -24,9 +24,10 @@ class SyncForgeController < ApplicationController Rails.logger.info("=================new_repository_id:#{project&.repository&.id}========") if project.present? if sync_params[:project_score].present? - score_params = sync_params[:project_score].merge(project_id: project.id) - Rails.logger.info("=================new_score_params:#{score_params}========") - new_project_score = ProjectScore.create!(score_params) + score_params = sync_params[:project_score] + new_project_score = ProjectScore.create(:project_id => project.id) + Rails.logger.info("=================new_project_score:#{new_project_score}========") + new_project_score.update_attributes(score_params) Rails.logger.info("=================new_project_score:#{new_project_score}========") end SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? From 4e32d7b0a6f0668d09821204b96002ad5e2080e6 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 15:44:52 +0800 Subject: [PATCH 32/71] change project_score --- app/controllers/sync_forge_controller.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index ae1fe8dc1..6e1793898 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -3,6 +3,7 @@ class SyncForgeController < ApplicationController def create ActiveRecord::Base.transaction do + params.permit! sync_params = params[:sync_params] #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) @@ -24,11 +25,10 @@ class SyncForgeController < ApplicationController Rails.logger.info("=================new_repository_id:#{project&.repository&.id}========") if project.present? if sync_params[:project_score].present? - score_params = sync_params[:project_score] - new_project_score = ProjectScore.create(:project_id => project.id) - Rails.logger.info("=================new_project_score:#{new_project_score}========") - new_project_score.update_attributes(score_params) - Rails.logger.info("=================new_project_score:#{new_project_score}========") + sync_params.permit! + score_params = sync_params[:project_score].merge(project_id: project.id) + new_project_score = ProjectScore.create(score_params) + Rails.logger.info("=================new_project_score:#{new_project_score.try(:id)}========") end SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? check_new_project(project, sync_params) From 8c1aedc6bd83196355ebdfa198f98c1639b21a02 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 15:54:04 +0800 Subject: [PATCH 33/71] change sync --- app/jobs/sync_projects_job.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 184f67dbd..f19993d6f 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -7,6 +7,7 @@ class SyncProjectsJob < ApplicationJob def perform(sync_params) SyncLog.sync_log.info("==========begin to sync #{sync_params[:type]} to forge============") begin + SyncLog.sync_log.info("=========request.subdomain: #{request.subdomain}============") gitea_main = "https://ucloudtest.trustie.net/" if request.subdomain === 'forgeplus' gitea_main = "https://trustie.net" @@ -24,6 +25,7 @@ class SyncProjectsJob < ApplicationJob response = http.send_request('GET', uri.path, sync_params, {'Content-Type' => 'application/json'}) if response.status == 200 target_jsons = response.body + SyncLog.sync_log.info("=========target_jsons: #{target_jsons}============") if target_jsons.present? && sync_params[:type] create_target(eval(target_jsons), sync_params[:type].to_s) end From 6e31352f8d8592384d515c9d2177e71504fe1b0d Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 16:25:03 +0800 Subject: [PATCH 34/71] change sync --- app/jobs/sync_projects_job.rb | 57 ++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index f19993d6f..a333e8cb4 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -26,8 +26,11 @@ class SyncProjectsJob < ApplicationJob if response.status == 200 target_jsons = response.body SyncLog.sync_log.info("=========target_jsons: #{target_jsons}============") - if target_jsons.present? && sync_params[:type] - create_target(eval(target_jsons), sync_params[:type].to_s) + target_jsons = eval(target_jsons) + if sync_params[:type] == "Project" + update_new_project(target_jsons, sync_params[:new_project_id]) + else + create_target(project, eval(target_jsons), sync_params[:type].to_s) end else SyncLog.sync_log.info("==========sync_project_to_forge_failed #{sync_params[:type]}============") @@ -38,32 +41,38 @@ class SyncProjectsJob < ApplicationJob end end + def update_new_project(re, project_id) + project = Project.find_by(id: project_id) + project.update(re[:target_params].compact!) if re[:target_params].present? + create_target(re[:issues_params], "Issue") if re[:issues_params].present? + create_target(re[:member_params], "Member") if re[:member_params].present? + create_target(re[:versions_params], "Version") if re[:versions_params].present? + create_target(re[:watcher_params], "Watcher") if re[:watcher_params].present? + create_target(re[:praise_treads], "PraiseTread") if re[:praise_treads].present? + end - def create_target(target_jsons, target_type) + + def create_target(project, target_jsons, target_type) Rails.logger.info("***111222. begin_to_create_target---------------") target_jsons.each do |re| - Rails.logger.info("***user_login:#{re[:user_login]}----target_type:#{target_type}") - u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first - - new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) - if target_type == "Project" - create_target(re[:issues_params], "Issue") if re[:issues_params].present? - create_target(re[:member_params], "Member") if re[:member_params].present? - create_target(re[:versions_params], "Version") if re[:versions_params].present? - create_target(re[:watcher_params], "Watcher") if re[:watcher_params].present? - create_target(re[:praise_treads], "PraiseTread") if re[:praise_treads].present? - end - if target_type == "Issue" - assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first - new_target.assigned_to_id = assing_u_id - if re[:journals].present? - create_target(re[:journals], "Journal") + if re[:target_params].present? + Rails.logger.info("***user_login:#{re[:user_login]}----target_type:#{target_type}") + u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first + + new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) + + if target_type == "Issue" + assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first + new_target.assigned_to_id = assing_u_id + if re[:journals].present? + create_target(project, re[:journals], "Journal") + end end - end - if new_target.save! - if re[:journal_details].present? - re[:journal_details].each do |j| - JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) + if new_target.save! + if re[:journal_details].present? + re[:journal_details].each do |j| + JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) + end end end end From 661a7d5105fc60a0818f9dbfb49fdf5b13e0e7f8 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 16:32:08 +0800 Subject: [PATCH 35/71] change sync --- app/jobs/sync_projects_job.rb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index a333e8cb4..d3c2c698b 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -5,9 +5,9 @@ class SyncProjectsJob < ApplicationJob require 'net/http' def perform(sync_params) - SyncLog.sync_log.info("==========begin to sync #{sync_params[:type]} to forge============") + SyncLog.sync_log("==========begin to sync #{sync_params[:type]} to forge============") begin - SyncLog.sync_log.info("=========request.subdomain: #{request.subdomain}============") + SyncLog.sync_log("=========request.subdomain: #{request.subdomain}============") gitea_main = "https://ucloudtest.trustie.net/" if request.subdomain === 'forgeplus' gitea_main = "https://trustie.net" @@ -25,7 +25,7 @@ class SyncProjectsJob < ApplicationJob response = http.send_request('GET', uri.path, sync_params, {'Content-Type' => 'application/json'}) if response.status == 200 target_jsons = response.body - SyncLog.sync_log.info("=========target_jsons: #{target_jsons}============") + SyncLog.sync_log("=========target_jsons: #{target_jsons}============") target_jsons = eval(target_jsons) if sync_params[:type] == "Project" update_new_project(target_jsons, sync_params[:new_project_id]) @@ -33,11 +33,11 @@ class SyncProjectsJob < ApplicationJob create_target(project, eval(target_jsons), sync_params[:type].to_s) end else - SyncLog.sync_log.info("==========sync_project_to_forge_failed #{sync_params[:type]}============") + SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============") end end rescue => e - SyncLog.sync_log.info("==========sync_project_to_forge_failed #{sync_params[:type]}============errors:#{e}") + SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============errors:#{e}") end end From 7a0106578b44bf76144dc8bcb9f591eeca338558 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 16:51:29 +0800 Subject: [PATCH 36/71] change jobs --- app/jobs/sync_projects_job.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index d3c2c698b..63606c5b7 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -1,9 +1,9 @@ +require 'uri' +require 'net/http' + class SyncProjectsJob < ApplicationJob queue_as :default - require 'uri' - require 'net/http' - def perform(sync_params) SyncLog.sync_log("==========begin to sync #{sync_params[:type]} to forge============") begin @@ -41,6 +41,8 @@ class SyncProjectsJob < ApplicationJob end end + private + def update_new_project(re, project_id) project = Project.find_by(id: project_id) project.update(re[:target_params].compact!) if re[:target_params].present? From 147fdb0d0531095ff5b46616c480a5669c1c525c Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 16:59:54 +0800 Subject: [PATCH 37/71] change main --- app/controllers/sync_forge_controller.rb | 18 ++++++++++++++++-- app/jobs/sync_projects_job.rb | 7 ++----- app/jobs/sync_repository_job.rb | 10 ++-------- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 6e1793898..15e3be517 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -2,6 +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] @@ -30,7 +31,14 @@ class SyncForgeController < ApplicationController new_project_score = ProjectScore.create(score_params) Rails.logger.info("=================new_project_score:#{new_project_score.try(:id)}========") end - SyncRepositoryJob.perform_later(project.repository, sync_params[:repository]) if sync_params[:repository].present? + + 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? check_new_project(project, sync_params) end end @@ -101,7 +109,13 @@ class SyncForgeController < ApplicationController sync_params: sync_params, new_project_id: project.id } - SyncProjectsJob.perform_later(sync_projects_params) + + gitea_main = "https://ucloudtest.trustie.net/" + if request.subdomain === 'forgeplus' + gitea_main = "https://trustie.net" + end + + SyncProjectsJob.perform_later(sync_projects_params, gitea_main) Rails.logger.info("***8. end_to_sync_new_project---------------") end diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 63606c5b7..9d3dc6bc6 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -4,14 +4,11 @@ require 'net/http' class SyncProjectsJob < ApplicationJob queue_as :default - def perform(sync_params) + def perform(sync_params, gitea_main) SyncLog.sync_log("==========begin to sync #{sync_params[:type]} to forge============") begin SyncLog.sync_log("=========request.subdomain: #{request.subdomain}============") - gitea_main = "https://ucloudtest.trustie.net/" - if request.subdomain === 'forgeplus' - gitea_main = "https://trustie.net" - end + url = "#{gitea_main}/sync_forges" #trustie上的相关路由 diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 7cc05df0e..4165123f1 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -3,7 +3,7 @@ class SyncRepositoryJob < ApplicationJob #同步 trustie的仓库 - def perform(repository, repository_params) + def perform(repository, repository_params, gitea_main) #创建临时文件夹 clone 并强推代码 SyncLog.sync_log("=================begin to sync request trustie repository=====================") path = "#{Rails.root}/public/cache_repository" @@ -14,13 +14,7 @@ class SyncRepositoryJob < ApplicationJob 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}") - - gitea_main = "testgitea.trustie.net" - if request.subdomain === 'testforgeplus' - gitea_main = "testgitea2.trustie.net" - elsif request.subdomain === 'forge' - gitea_main = "gitea.trustie.net" - end + if check_clone new_gitlab_url = "http://root:_Trustie_10010@#{gitea_main}/#{repository.user.login}/#{repository.identifier}.git" From 65b03f7c716da6382c7189a2ce42e5a3e794ee7d Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 17:04:53 +0800 Subject: [PATCH 38/71] change main --- app/jobs/sync_projects_job.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 9d3dc6bc6..5aa894900 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -6,9 +6,7 @@ class SyncProjectsJob < ApplicationJob def perform(sync_params, gitea_main) SyncLog.sync_log("==========begin to sync #{sync_params[:type]} to forge============") - begin - SyncLog.sync_log("=========request.subdomain: #{request.subdomain}============") - + begin url = "#{gitea_main}/sync_forges" #trustie上的相关路由 From e0d9bfab6d385095e74ed9ad5afee92a7e3213de Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 17:20:13 +0800 Subject: [PATCH 39/71] change bugs --- app/jobs/sync_projects_job.rb | 26 ++++++++++++-------------- app/jobs/sync_repository_job.rb | 2 ++ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 5aa894900..fcfbadefe 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -14,22 +14,20 @@ class SyncProjectsJob < ApplicationJob "sync_params": sync_params } uri = URI.parse(url) - if api_host - 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'}) - if response.status == 200 - target_jsons = response.body - SyncLog.sync_log("=========target_jsons: #{target_jsons}============") - target_jsons = eval(target_jsons) - if sync_params[:type] == "Project" - update_new_project(target_jsons, sync_params[:new_project_id]) - else - create_target(project, eval(target_jsons), sync_params[:type].to_s) - end + 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'}) + if response.status == 200 + target_jsons = response.body + SyncLog.sync_log("=========target_jsons: #{target_jsons}============") + target_jsons = eval(target_jsons) + if sync_params[:type] == "Project" + update_new_project(target_jsons, sync_params[:new_project_id]) else - SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============") + create_target(project, eval(target_jsons), sync_params[:type].to_s) end + else + SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============") end rescue => e SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============errors:#{e}") diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 4165123f1..0d960c119 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -6,6 +6,8 @@ class SyncRepositoryJob < ApplicationJob def perform(repository, 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]}===================") path = "#{Rails.root}/public/cache_repository" unless File.directory?(path) FileUtils.mkdir_p(path) From f4be93c340fd8825a3054cdf19ea008857a4b2ac Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 17:36:15 +0800 Subject: [PATCH 40/71] change bugs --- app/controllers/sync_forge_controller.rb | 23 ++++++++++++++--------- app/jobs/sync_projects_job.rb | 4 +++- app/jobs/sync_repository_job.rb | 8 ++++---- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 15e3be517..62d8a079b 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -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 \ No newline at end of file diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index fcfbadefe..00ff4b9ea 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -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}") diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 0d960c119..dd979e73e 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -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}") From bf61c0e5b3aa8d79cf0f501b80cd38c27177e16f Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 17:46:56 +0800 Subject: [PATCH 41/71] change bugs --- app/jobs/sync_projects_job.rb | 1 + app/jobs/sync_repository_job.rb | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 00ff4b9ea..5ffbbf87a 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -6,6 +6,7 @@ class SyncProjectsJob < ApplicationJob def perform(sync_params, gitea_main) SyncLog.sync_log("==========begin to sync #{sync_params[:type]} to forge============") + SyncLog.sync_log("==========sync_params:#{sync_params}============") begin url = "#{gitea_main}/sync_forges" #trustie上的相关路由 diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index dd979e73e..a2b10d94d 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -6,8 +6,6 @@ class SyncRepositoryJob < ApplicationJob 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[:git_url]}===================") path = "#{Rails.root}/public/cache_repository" unless File.directory?(path) FileUtils.mkdir_p(path) @@ -16,8 +14,7 @@ class SyncRepositoryJob < ApplicationJob 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}") - - + SyncLog.sync_log("========check_clone:====cd #{path} and git clone #{image_url}===================") if check_clone new_gitlab_url = "http://root:_Trustie_10010@#{gitea_main}/#{user_login}/#{identifier}.git" From 581f5b777a013cb34744b51f9d14eac41d5e9f81 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 18:03:09 +0800 Subject: [PATCH 42/71] change bugs --- app/jobs/sync_projects_job.rb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 5ffbbf87a..ba65d60fc 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -7,27 +7,26 @@ class SyncProjectsJob < ApplicationJob def perform(sync_params, gitea_main) SyncLog.sync_log("==========begin to sync #{sync_params[:type]} to forge============") SyncLog.sync_log("==========sync_params:#{sync_params}============") - begin + begin url = "#{gitea_main}/sync_forges" #trustie上的相关路由 - sync_json = { - "sync_params": sync_params - } uri = URI.parse(url) 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'}) + response = http.send_request('GET', uri.path, sync_params.to_json, {'Content-Type' => 'application/json'}) + SyncLog.sync_log("==========response_status:#{response.status}============") SyncLog.sync_log("==========response_body:#{response.body}============") - if response.status == 200 + if response.status.to_i == 200 target_jsons = response.body SyncLog.sync_log("=========target_jsons: #{target_jsons}============") target_jsons = eval(target_jsons) + if sync_params[:type] == "Project" - update_new_project(target_jsons, sync_params[:new_project_id]) + update_new_project(target_jsons[:target_params], sync_params[:new_project_id]) else - create_target(project, eval(target_jsons), sync_params[:type].to_s) + create_target(project, target_jsons[:target_params], sync_params[:type].to_s) end else SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============") From deaaed05279fe523cde6a7147e92d59beaf092d3 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 18:12:10 +0800 Subject: [PATCH 43/71] change bugs --- app/jobs/sync_projects_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index ba65d60fc..a1e055fb2 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -16,9 +16,9 @@ class SyncProjectsJob < ApplicationJob http.use_ssl = true response = http.send_request('GET', uri.path, sync_params.to_json, {'Content-Type' => 'application/json'}) - SyncLog.sync_log("==========response_status:#{response.status}============") + SyncLog.sync_log("==========response_status:#{response.code}============") SyncLog.sync_log("==========response_body:#{response.body}============") - if response.status.to_i == 200 + if response.code.to_s == "200" target_jsons = response.body SyncLog.sync_log("=========target_jsons: #{target_jsons}============") target_jsons = eval(target_jsons) From 29fd6be9b0eab0e743885d41b1fb6ebf0e5167a9 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 18:44:01 +0800 Subject: [PATCH 44/71] change bugs --- app/jobs/sync_projects_job.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index a1e055fb2..2e2ad72e9 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -20,8 +20,6 @@ class SyncProjectsJob < ApplicationJob SyncLog.sync_log("==========response_body:#{response.body}============") if response.code.to_s == "200" target_jsons = response.body - SyncLog.sync_log("=========target_jsons: #{target_jsons}============") - target_jsons = eval(target_jsons) if sync_params[:type] == "Project" update_new_project(target_jsons[:target_params], sync_params[:new_project_id]) From b71de602e0675c723266eb21e44a9d8bb6352e7b Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 19:20:39 +0800 Subject: [PATCH 45/71] change bugs --- app/jobs/sync_projects_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 2e2ad72e9..325e0dc27 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -38,7 +38,7 @@ class SyncProjectsJob < ApplicationJob def update_new_project(re, project_id) project = Project.find_by(id: project_id) - project.update(re[:target_params].compact!) if re[:target_params].present? + project.update(re[:target_params]) if re[:target_params].present? create_target(re[:issues_params], "Issue") if re[:issues_params].present? create_target(re[:member_params], "Member") if re[:member_params].present? create_target(re[:versions_params], "Version") if re[:versions_params].present? From a6f67edd26b1289e934df4d881f1a33abacdfcb1 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 19:25:18 +0800 Subject: [PATCH 46/71] change bugs --- app/jobs/sync_projects_job.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 325e0dc27..a878cd65f 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -38,6 +38,9 @@ class SyncProjectsJob < ApplicationJob def update_new_project(re, project_id) project = Project.find_by(id: project_id) + SyncLog.sync_log("==========project: #{project.id}============") + SyncLog.sync_log("==========project_params: #{re[:target_params]}============") + SyncLog.sync_log("==========update_project_params: #{project.update(re[:target_params])}============") project.update(re[:target_params]) if re[:target_params].present? create_target(re[:issues_params], "Issue") if re[:issues_params].present? create_target(re[:member_params], "Member") if re[:member_params].present? From 1e9a3e30124c4ca16acbf48575843c0252f6817d Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 19:37:34 +0800 Subject: [PATCH 47/71] change bugs --- app/jobs/sync_projects_job.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index a878cd65f..22647fcae 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -20,11 +20,10 @@ class SyncProjectsJob < ApplicationJob SyncLog.sync_log("==========response_body:#{response.body}============") if response.code.to_s == "200" target_jsons = response.body - if sync_params[:type] == "Project" - update_new_project(target_jsons[:target_params], sync_params[:new_project_id]) + update_new_project(target_jsons[:targets_params][0], sync_params[:new_project_id]) else - create_target(project, target_jsons[:target_params], sync_params[:type].to_s) + create_target(project, target_jsons[:targets_params], sync_params[:type].to_s) end else SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============") From 5dafeb8103da00827edb8b04ff485b5962b9b3ba Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 19:43:59 +0800 Subject: [PATCH 48/71] change bugs --- app/jobs/sync_projects_job.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 22647fcae..1cb261eae 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -21,6 +21,7 @@ class SyncProjectsJob < ApplicationJob if response.code.to_s == "200" target_jsons = response.body if sync_params[:type] == "Project" + SyncLog.sync_log("==========targets_params: #{target_jsons[:targets_params]}============") update_new_project(target_jsons[:targets_params][0], sync_params[:new_project_id]) else create_target(project, target_jsons[:targets_params], sync_params[:type].to_s) @@ -36,10 +37,10 @@ class SyncProjectsJob < ApplicationJob private def update_new_project(re, project_id) + SyncLog.sync_log("==========re: #{re}============") + SyncLog.sync_log("==========project_id: #{project_id}============") project = Project.find_by(id: project_id) - SyncLog.sync_log("==========project: #{project.id}============") - SyncLog.sync_log("==========project_params: #{re[:target_params]}============") - SyncLog.sync_log("==========update_project_params: #{project.update(re[:target_params])}============") + SyncLog.sync_log("==========re_target_params: #{re[:target_params]}============") project.update(re[:target_params]) if re[:target_params].present? create_target(re[:issues_params], "Issue") if re[:issues_params].present? create_target(re[:member_params], "Member") if re[:member_params].present? From 9ece830b0003829379a07141b050937926d85846 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 19:49:58 +0800 Subject: [PATCH 49/71] change bugs --- app/jobs/sync_projects_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 1cb261eae..6f2658354 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -16,9 +16,9 @@ class SyncProjectsJob < ApplicationJob http.use_ssl = true response = http.send_request('GET', uri.path, sync_params.to_json, {'Content-Type' => 'application/json'}) - SyncLog.sync_log("==========response_status:#{response.code}============") + SyncLog.sync_log("==========response_status::#{response.code}:::#{response.code == '200'}============") SyncLog.sync_log("==========response_body:#{response.body}============") - if response.code.to_s == "200" + if response.code == '200' target_jsons = response.body if sync_params[:type] == "Project" SyncLog.sync_log("==========targets_params: #{target_jsons[:targets_params]}============") From a772d919cebf05bb4ec61d0a5c167d3c54382c79 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 19:55:59 +0800 Subject: [PATCH 50/71] change bugs --- app/jobs/sync_projects_job.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 6f2658354..44c9f365b 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -16,11 +16,12 @@ class SyncProjectsJob < ApplicationJob http.use_ssl = true response = http.send_request('GET', uri.path, sync_params.to_json, {'Content-Type' => 'application/json'}) - SyncLog.sync_log("==========response_status::#{response.code}:::#{response.code == '200'}============") - SyncLog.sync_log("==========response_body:#{response.body}============") + SyncLog.sync_log("==========response_status::#{response.code}============") if response.code == '200' target_jsons = response.body if sync_params[:type] == "Project" + SyncLog.sync_log("==========target_jsons: #{target_jsons}============") + SyncLog.sync_log("==========eval_target_jsons: #{eval(target_jsons)}============") SyncLog.sync_log("==========targets_params: #{target_jsons[:targets_params]}============") update_new_project(target_jsons[:targets_params][0], sync_params[:new_project_id]) else From edcc6e07ee76e1849f8f1aa7093b604090c6a608 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 20:03:30 +0800 Subject: [PATCH 51/71] change bugs --- app/jobs/sync_projects_job.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 44c9f365b..b0fc55d36 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -18,11 +18,9 @@ class SyncProjectsJob < ApplicationJob SyncLog.sync_log("==========response_status::#{response.code}============") if response.code == '200' - target_jsons = response.body + target_jsons = eval(response.body) if sync_params[:type] == "Project" SyncLog.sync_log("==========target_jsons: #{target_jsons}============") - SyncLog.sync_log("==========eval_target_jsons: #{eval(target_jsons)}============") - SyncLog.sync_log("==========targets_params: #{target_jsons[:targets_params]}============") update_new_project(target_jsons[:targets_params][0], sync_params[:new_project_id]) else create_target(project, target_jsons[:targets_params], sync_params[:type].to_s) @@ -38,10 +36,8 @@ class SyncProjectsJob < ApplicationJob private def update_new_project(re, project_id) - SyncLog.sync_log("==========re: #{re}============") - SyncLog.sync_log("==========project_id: #{project_id}============") + SyncLog.sync_log("=========begin_to_update_project=project_id: #{project_id}============") project = Project.find_by(id: project_id) - SyncLog.sync_log("==========re_target_params: #{re[:target_params]}============") project.update(re[:target_params]) if re[:target_params].present? create_target(re[:issues_params], "Issue") if re[:issues_params].present? create_target(re[:member_params], "Member") if re[:member_params].present? From 4aeb79de1a32f38574b753f8bd1f53605a885407 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 20:10:16 +0800 Subject: [PATCH 52/71] change bugs --- app/jobs/sync_projects_job.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index b0fc55d36..ed78d1475 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -23,7 +23,7 @@ class SyncProjectsJob < ApplicationJob SyncLog.sync_log("==========target_jsons: #{target_jsons}============") update_new_project(target_jsons[:targets_params][0], sync_params[:new_project_id]) else - create_target(project, target_jsons[:targets_params], sync_params[:type].to_s) + create_target(target_jsons[:targets_params], sync_params[:type].to_s) end else SyncLog.sync_log("==========sync_project_to_forge_failed #{sync_params[:type]}============") @@ -47,11 +47,12 @@ class SyncProjectsJob < ApplicationJob end - def create_target(project, target_jsons, target_type) - Rails.logger.info("***【#{target_type}】. begin_to_create_target---------------") + def create_target(target_jsons, target_type) + SyncLog.sync_log("***【#{target_type}】. begin_to_create_target---------------") + return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank? target_jsons.each do |re| if re[:target_params].present? - Rails.logger.info("***user_login:#{re[:user_login]}----target_type:#{target_type}") + SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) @@ -60,7 +61,7 @@ class SyncProjectsJob < ApplicationJob assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first new_target.assigned_to_id = assing_u_id if re[:journals].present? - create_target(project, re[:journals], "Journal") + create_target(re[:journals], "Journal") end end if new_target.save! @@ -72,6 +73,6 @@ class SyncProjectsJob < ApplicationJob end end end - Rails.logger.info("***111222. end_to_create_target---------------") + SyncLog.sync_log("***111222. end_to_create_target---------------") end end \ No newline at end of file From f6a9d1f54a3849d64cabf7f279010dcfd097323a Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 20:20:20 +0800 Subject: [PATCH 53/71] change bugs --- app/controllers/sync_forge_controller.rb | 1 - app/jobs/sync_projects_job.rb | 1 - 2 files changed, 2 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 62d8a079b..6c14da5ff 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -23,7 +23,6 @@ class SyncForgeController < ApplicationController } project = Projects::CreateService.new(project_user, project_params).call Rails.logger.info("=================new_project_id:#{project.id}========") - Rails.logger.info("=================new_repository_id:#{project&.repository&.id}========") if project.present? if sync_params[:project_score].present? sync_params.permit! diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index ed78d1475..60b026394 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -54,7 +54,6 @@ class SyncProjectsJob < ApplicationJob if re[:target_params].present? SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first - new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) if target_type == "Issue" From 7bd053a9b25c6796bf66db71871b77a0af489920 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 20:40:28 +0800 Subject: [PATCH 54/71] change bugs --- app/jobs/sync_projects_job.rb | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 60b026394..bbd37973a 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -41,12 +41,11 @@ class SyncProjectsJob < ApplicationJob project.update(re[:target_params]) if re[:target_params].present? create_target(re[:issues_params], "Issue") if re[:issues_params].present? create_target(re[:member_params], "Member") if re[:member_params].present? - create_target(re[:versions_params], "Version") if re[:versions_params].present? create_target(re[:watcher_params], "Watcher") if re[:watcher_params].present? create_target(re[:praise_treads], "PraiseTread") if re[:praise_treads].present? + create_versions(project, re[:versions_params]) if re[:versions_params].present? end - def create_target(target_jsons, target_type) SyncLog.sync_log("***【#{target_type}】. begin_to_create_target---------------") return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank? @@ -54,8 +53,7 @@ class SyncProjectsJob < ApplicationJob if re[:target_params].present? SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first - new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) - + new_target = target_type.constantize.new(re[:target_params].delete(:id).merge(user_id: u_id)) if target_type == "Issue" assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first new_target.assigned_to_id = assing_u_id @@ -74,4 +72,23 @@ class SyncProjectsJob < ApplicationJob end SyncLog.sync_log("***111222. end_to_create_target---------------") end + + def create_versions(project, target_jsons) + SyncLog.sync_log("***【Versions】. begin_to_create_verison---------------") + return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank? + all_issues = project.issues.select(:id, :project_id, :fixed_version_id) + target_jsons.each do |re| + old_id = re[:target_params][:id] + if re[:target_params].present? + SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") + u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first + new_target = target_type.constantize.new(re[:target_params].delete(:id).merge(user_id: u_id)) + if new_target.save! + all_issues&.where(fixed_version_id: old_id)&.update_all(fixed_version_id: new_target.id) + end + end + end + SyncLog.sync_log("***111222. end_to_create_target---------------") + end + end \ No newline at end of file From b8de6a9d10865e60a0fe12c37099967ed295a05a Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 20:42:51 +0800 Subject: [PATCH 55/71] change bugs --- app/jobs/sync_repository_job.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index a2b10d94d..b7fac4127 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -7,12 +7,18 @@ class SyncRepositoryJob < ApplicationJob #创建临时文件夹 clone 并强推代码 SyncLog.sync_log("=================begin to sync request trustie repository=====================") path = "#{Rails.root}/public/cache_repository" - unless File.directory?(path) - FileUtils.mkdir_p(path) - end image_url = repository_params[:git_url] g_default_branch = repository_params[:default_branch] image_repo_name = image_url.to_s.split('/')&.last&.chomp('.git') + + unless File.directory?(path) + FileUtils.mkdir_p(path) + end + + if Dir.exist?("#{path}/#{image_repo_name}") + system("rm -rf #{path}/#{image_repo_name}") + end + check_clone = system("cd #{path} and git clone #{image_url}") SyncLog.sync_log("========check_clone:====cd #{path} and git clone #{image_url}===================") if check_clone From 6c5133ca0a8bebd9598da47d42e593ab8e54e66f Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 21:09:02 +0800 Subject: [PATCH 56/71] change bugs --- app/jobs/sync_projects_job.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index bbd37973a..528d46d3c 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -53,7 +53,8 @@ class SyncProjectsJob < ApplicationJob if re[:target_params].present? SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first - new_target = target_type.constantize.new(re[:target_params].delete(:id).merge(user_id: u_id)) + re[:target_params].delete(:id) + new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) if target_type == "Issue" assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first new_target.assigned_to_id = assing_u_id @@ -82,7 +83,8 @@ class SyncProjectsJob < ApplicationJob if re[:target_params].present? SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first - new_target = target_type.constantize.new(re[:target_params].delete(:id).merge(user_id: u_id)) + re[:target_params].delete(:id) + new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) if new_target.save! all_issues&.where(fixed_version_id: old_id)&.update_all(fixed_version_id: new_target.id) end From 684b1a46cb5e46f722bb620fcfdd1b305aa1c8ed Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 21:13:18 +0800 Subject: [PATCH 57/71] change bugs --- app/jobs/sync_projects_job.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 528d46d3c..dab86b14c 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -54,7 +54,12 @@ class SyncProjectsJob < ApplicationJob SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first re[:target_params].delete(:id) - new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) + if target_type == "Issue" + new_target = target_type.constantize.new(re[:target_params].merge(author_id: u_id)) + else + new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) + end + if target_type == "Issue" assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first new_target.assigned_to_id = assing_u_id From 71edf8366ddf91353a4623c47c4a1c8a1fc155f2 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 09:48:05 +0800 Subject: [PATCH 58/71] change error --- app/jobs/sync_projects_job.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index dab86b14c..03891055b 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -86,10 +86,9 @@ class SyncProjectsJob < ApplicationJob target_jsons.each do |re| old_id = re[:target_params][:id] if re[:target_params].present? - SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first re[:target_params].delete(:id) - new_target = target_type.constantize.new(re[:target_params].merge(user_id: u_id)) + new_target = Version.new(re[:target_params].merge(user_id: u_id)) if new_target.save! all_issues&.where(fixed_version_id: old_id)&.update_all(fixed_version_id: new_target.id) end From 22e624abce3dd8d6c0f7f6950d812d96c5faaa14 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 09:49:54 +0800 Subject: [PATCH 59/71] change bugs --- app/jobs/sync_projects_job.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index 03891055b..d5ba839a2 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -49,7 +49,8 @@ class SyncProjectsJob < ApplicationJob def create_target(target_jsons, target_type) SyncLog.sync_log("***【#{target_type}】. begin_to_create_target---------------") return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank? - target_jsons.each do |re| + target_jsons.each_with_index do |re,index| + SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}-----#{index+1}") if re[:target_params].present? SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}") u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first From aac959fc6451df070887b374c991565e8b44b35f Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 10:08:46 +0800 Subject: [PATCH 60/71] change bugs --- app/jobs/sync_projects_job.rb | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index d5ba839a2..d98b268e6 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -64,11 +64,11 @@ class SyncProjectsJob < ApplicationJob if target_type == "Issue" assing_u_id = User.select(:id, :login).where(login: re[:assign_login]).pluck(:id).first new_target.assigned_to_id = assing_u_id - if re[:journals].present? - create_target(re[:journals], "Journal") - end end if new_target.save! + if re[:journals].present? + create_journals(re[:journals], "Journal", new_target.id) + end if re[:journal_details].present? re[:journal_details].each do |j| JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) @@ -80,6 +80,28 @@ class SyncProjectsJob < ApplicationJob SyncLog.sync_log("***111222. end_to_create_target---------------") end + def create_journals(target_jsons, target_type,issue_id) + SyncLog.sync_log("***【#{target_type}】. begin_to_create_target---------------") + return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank? + target_jsons.each_with_index do |re,index| + SyncLog.sync_log("***user_login:#{re[:user_login]}----target_type:#{target_type}-----#{index+1}") + if re[:target_params].present? + u_id = User.select(:id, :login).where(login: re[:user_login]).pluck(:id).first + re[:target_params].delete(:id) + new_target = Journal.new(re[:target_params].merge(user_id: u_id)) + new_target.journalized_id = issue_id + if new_target.save! + if re[:journal_details].present? + re[:journal_details].each do |j| + JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) + end + end + end + end + end + SyncLog.sync_log("***111222. end_to_create_journal---------------") + end + def create_versions(project, target_jsons) SyncLog.sync_log("***【Versions】. begin_to_create_verison---------------") return SyncLog.sync_log("*** no target_jsons") if target_jsons.blank? From 83da9245655df1a4fd51a567080025d055b2ddb8 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 10:58:30 +0800 Subject: [PATCH 61/71] add member roles --- app/jobs/sync_projects_job.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index d98b268e6..ce7c91fde 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -74,6 +74,11 @@ class SyncProjectsJob < ApplicationJob JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) end end + if re[:member_roles].present? + re[:member_roles].each do |m| + MemberRole.create!(m[:member_role].merge(member_id: new_target.id)) + end + end end end end From e6d5d518f78a8c4a066ec52bcbafe765285fdf15 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 11:08:13 +0800 Subject: [PATCH 62/71] change bugs --- app/jobs/sync_projects_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index ce7c91fde..b09dc58a8 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -71,12 +71,12 @@ class SyncProjectsJob < ApplicationJob end if re[:journal_details].present? re[:journal_details].each do |j| - JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) + JournalDetail.create!(j.merge(journal_id: new_target.id)) end end if re[:member_roles].present? re[:member_roles].each do |m| - MemberRole.create!(m[:member_role].merge(member_id: new_target.id)) + MemberRole.create!(m.merge(member_id: new_target.id)) end end end From 4dd8ac5cd0ab93306824e1293e14c783c5e64ded Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 11:49:02 +0800 Subject: [PATCH 63/71] change bugs --- app/jobs/sync_projects_job.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/jobs/sync_projects_job.rb b/app/jobs/sync_projects_job.rb index b09dc58a8..32114e335 100644 --- a/app/jobs/sync_projects_job.rb +++ b/app/jobs/sync_projects_job.rb @@ -71,12 +71,12 @@ class SyncProjectsJob < ApplicationJob end if re[:journal_details].present? re[:journal_details].each do |j| - JournalDetail.create!(j.merge(journal_id: new_target.id)) + JournalDetail.create!(j.merge(journal_id: new_target.id)) if j.present? end end if re[:member_roles].present? re[:member_roles].each do |m| - MemberRole.create!(m.merge(member_id: new_target.id)) + MemberRole.create!(m.merge(member_id: new_target.id)) if m.present? end end end @@ -98,7 +98,7 @@ class SyncProjectsJob < ApplicationJob if new_target.save! if re[:journal_details].present? re[:journal_details].each do |j| - JournalDetail.create!(j[:journal_detail].merge(journal_id: new_target.id)) + JournalDetail.create!(j.merge(journal_id: new_target.id)) end end end From 49be881914e6f14f6399fccba7cc898acf469ab3 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 13:54:27 +0800 Subject: [PATCH 64/71] change bugs --- app/controllers/sync_forge_controller.rb | 34 +++++++++++++----------- app/jobs/sync_repository_job.rb | 4 +-- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 6c14da5ff..9de1c3f5a 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -80,13 +80,17 @@ class SyncForgeController < ApplicationController def check_sync_project(project,sync_params) begin + gitea_main = "https://ucloudtest.trustie.net/" + if request.subdomain === 'forgeplus' + gitea_main = "https://trustie.net" + end Rails.logger.info("----begin_to_check_sync_project----project_id:#{project.id}---------------") change_project_score(project, sync_params[:project_score], sync_params[:repository]) if sync_params[:repository].present? #更新project_score - change_project_issues(project, sync_params[:issues],project.id) - change_project_members(project, sync_params[:members]) - change_project_versions(project, sync_params[:project_versions]) - change_project_watchers(project, sync_params[:project_watchers]) - change_project_praises(project, sync_params[:praise_trends]) + change_project_issues(project, sync_params[:issues],project.id, gitea_main) + change_project_members(project, sync_params[:members],gitea_main) + change_project_versions(project, sync_params[:project_versions],gitea_main) + change_project_watchers(project, sync_params[:project_watchers],gitea_main) + change_project_praises(project, sync_params[:praise_trends],gitea_main) rescue => e Rails.logger.info("=========check_sync_project_errors:#{e}===================") end @@ -112,7 +116,7 @@ class SyncForgeController < ApplicationController Rails.logger.info("***8. end_to_sync_new_project---------------") end - def change_project_praises(project, praises) + def change_project_praises(project, praises,gitea_main) Rails.logger.info("***6. begin_to_sync_parises---------------") forge_praises_ids = project&.praise_treads&.select(:id)&.pluck(:id) diff_target_ids = praises[:ids] - forge_praises_ids @@ -123,7 +127,7 @@ class SyncForgeController < ApplicationController token: get_token, parent_id: project.id } - SyncProjectsJob.perform_later(sync_projects_params) + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) Rails.logger.info("***6. end_to_sync_parises---------------") end @@ -155,7 +159,7 @@ class SyncForgeController < ApplicationController end end - def change_project_issues(project, old_issues_params,project_id) + def change_project_issues(project, old_issues_params,project_id, gitea_main) Rails.logger.info("***2. begin_to_syncissues---------------") begin forge_issue_ids = project&.issues&.select(:id)&.pluck(:id) @@ -180,14 +184,14 @@ class SyncForgeController < ApplicationController parent_id: project_id } end - SyncProjectsJob.perform_later(sync_projects_params) if sync_projects_params.present? + SyncProjectsJob.perform_later(sync_projects_params, gitea_main) if sync_projects_params.present? Rails.logger.info("***2. end_to_syncissues---------------") rescue Exception => e Rails.logger.info("=========change_project_issues_errors:#{e}===================") end end - def change_project_watchers(project, watchers) + def change_project_watchers(project, watchers,gitea_main) Rails.logger.info("***5. begin_to_sync_watchers---------------") forge_watchers_ids = project&.watchers&.select(:id)&.pluck(:id) diff_target_ids = watchers[:ids] - forge_watchers_ids @@ -198,13 +202,13 @@ class SyncForgeController < ApplicationController token: get_token, parent_id: project.id } - SyncProjectsJob.perform_later(sync_projects_params) + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) Rails.logger.info("***5. begin_to_sync_watchers---------------") end end - def change_project_versions(project, versions) + def change_project_versions(project, versions,gitea_main) Rails.logger.info("***4. begin_to_sync_versions---------------") forge_version_ids = project&.versions&.select(:id)&.pluck(:id) diff_version_ids = versions[:ids] - forge_version_ids @@ -215,12 +219,12 @@ class SyncForgeController < ApplicationController token: get_token, parent_id: project.id } - SyncProjectsJob.perform_later(sync_projects_params) + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) Rails.logger.info("***4. end_to_sync_versions---------------") end end - def change_project_members(project, members) + def change_project_members(project, members,gitea_main) Rails.logger.info("***3. begin_to_sync_members---------------") forge_member_ids = project&.members&.select(:id)&.pluck(:id) diff_member_ids = members[:ids] - forge_member_ids @@ -231,7 +235,7 @@ class SyncForgeController < ApplicationController token: get_token, parent_id: project.id } - SyncProjectsJob.perform_later(sync_projects_params) + SyncProjectsJob.perform_later(sync_projects_params,gitea_main) Rails.logger.info("***3. end_to_sync_members---------------") end end diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index b7fac4127..bdeba9243 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -19,8 +19,8 @@ class SyncRepositoryJob < ApplicationJob system("rm -rf #{path}/#{image_repo_name}") end - check_clone = system("cd #{path} and git clone #{image_url}") - SyncLog.sync_log("========check_clone:====cd #{path} and git clone #{image_url}===================") + check_clone = system("cd #{path} && git clone #{image_url}") + SyncLog.sync_log("========check_clone:====cd #{path} && git clone #{image_url}===================") if check_clone new_gitlab_url = "http://root:_Trustie_10010@#{gitea_main}/#{user_login}/#{identifier}.git" From 2e8095af585b9ab6893ac91ad795e2a73f8dbae8 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 20:20:30 +0800 Subject: [PATCH 65/71] change bugs --- app/controllers/sync_forge_controller.rb | 10 ++++------ app/jobs/sync_repository_job.rb | 1 - app/models/sync_log.rb | 5 +++++ ...20200610071625_remove_issues_lock_version_column.rb | 5 +++++ 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20200610071625_remove_issues_lock_version_column.rb diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 9de1c3f5a..9930758b5 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -2,7 +2,6 @@ class SyncForgeController < ApplicationController before_action :check_token def create - ActiveRecord::Base.transaction do params.permit! sync_params = params[:sync_params] @@ -22,7 +21,6 @@ class SyncForgeController < ApplicationController name: sync_params[:name] } project = Projects::CreateService.new(project_user, project_params).call - Rails.logger.info("=================new_project_id:#{project.id}========") if project.present? if sync_params[:project_score].present? sync_params.permit! @@ -37,7 +35,7 @@ class SyncForgeController < ApplicationController end end rescue Exception => e - Rails.logger.info("=================has_errors:==#{e.message}") + SyncLog.sync_project_log("=============sync_has_errors:==#{e.message}, project_id==:#{params[:sync_params][:id]}") end def sync_users @@ -61,12 +59,12 @@ class SyncForgeController < ApplicationController new_user.gitea_uid = gitea_user['id'] if new_user.save! UserExtension.create!(u[:user_extensions].merge(user_id: new_user.id)) if u[:user_extensions].present? - SyncLog.sync_log("=================sync_to_user_success====#{new_user.login}") else - SyncLog.sync_log("=================sync_to_user_failed==1==#{new_user.login}") + SyncLog.sync_log("=================sync_to_user_failed,user_login==#{new_user.login}") end else - SyncLog.sync_log("=================sync_to_user_failed====#{new_user.login}") + SyncLog.sync_project_log("=============sync_to_user_failed,user_login====#{new_user.login}") + SyncLog.sync_log("=================sync_to_user_failed,user_login====#{new_user.login}") end end end diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index bdeba9243..eff2e9380 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -23,7 +23,6 @@ class SyncRepositoryJob < ApplicationJob SyncLog.sync_log("========check_clone:====cd #{path} && git clone #{image_url}===================") if check_clone 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}") shell5 = system("cd #{path}/#{image_repo_name} && git checkout #{g_default_branch} && git push --force --set-upstream origin #{g_default_branch}") diff --git a/app/models/sync_log.rb b/app/models/sync_log.rb index f50cb22b8..f24a0a927 100644 --- a/app/models/sync_log.rb +++ b/app/models/sync_log.rb @@ -3,4 +3,9 @@ class SyncLog @my_log ||= Logger.new("#{Rails.root}/log/sync.log") @my_log.debug(message) unless message.nil? end + + def self.sync_project_log(message=nil) + @my_log ||= Logger.new("#{Rails.root}/log/sync_error_project.log") + @my_log.debug(message) unless message.nil? + end end \ No newline at end of file diff --git a/db/migrate/20200610071625_remove_issues_lock_version_column.rb b/db/migrate/20200610071625_remove_issues_lock_version_column.rb new file mode 100644 index 000000000..2ec9477ae --- /dev/null +++ b/db/migrate/20200610071625_remove_issues_lock_version_column.rb @@ -0,0 +1,5 @@ +class RemoveIssuesLockVersionColumn < ActiveRecord::Migration[5.2] + def change + remove_column :issues, :lock_version + end +end \ No newline at end of file From ef439aca5fef5245beab3e7be5d849c08e2d1540 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 21:01:13 +0800 Subject: [PATCH 66/71] change --- app/jobs/sync_repository_job.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index eff2e9380..6eeb71603 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -27,9 +27,11 @@ class SyncRepositoryJob < ApplicationJob shell5 = system("cd #{path}/#{image_repo_name} && git checkout #{g_default_branch} && git push --force --set-upstream origin #{g_default_branch}") if !shell5 + SyncLog.sync_project_log("=============force_push_erros==#{path}/#{image_repo_name}++new_gitlab_url+++#{new_gitlab_url}") SyncLog.sync_log("++++++++++++++++++force_push_erros++++++++++++++++++##{path}/#{image_repo_name}++++++new_gitlab_url+++#{new_gitlab_url}") end else + SyncLog.sync_project_log("=============check_clone_erros==#{path}/#{image_repo_name}") SyncLog.sync_log("++++++++++++++++++check_clone_erros++++++++++++++++++#{image_repo_name}") end SyncLog.sync_log("=================end to sync repository=====================#{image_repo_name}") From e97f2e644468fa0aee6f47012b0c18e3c1986a3b Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 14 Jul 2020 11:27:37 +0800 Subject: [PATCH 67/71] change sync --- app/jobs/sync_repository_job.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 6eeb71603..0aa5dd79a 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -8,7 +8,7 @@ class SyncRepositoryJob < ApplicationJob SyncLog.sync_log("=================begin to sync request trustie repository=====================") path = "#{Rails.root}/public/cache_repository" image_url = repository_params[:git_url] - g_default_branch = repository_params[:default_branch] + g_default_branch = repository_params[:default_branch] || "master" image_repo_name = image_url.to_s.split('/')&.last&.chomp('.git') unless File.directory?(path) @@ -29,6 +29,8 @@ class SyncRepositoryJob < ApplicationJob if !shell5 SyncLog.sync_project_log("=============force_push_erros==#{path}/#{image_repo_name}++new_gitlab_url+++#{new_gitlab_url}") SyncLog.sync_log("++++++++++++++++++force_push_erros++++++++++++++++++##{path}/#{image_repo_name}++++++new_gitlab_url+++#{new_gitlab_url}") + else + SyncLog.sync_project_log("=============force_push_success==#{path}/#{image_repo_name}++new_gitlab_url+++#{new_gitlab_url}") end else SyncLog.sync_project_log("=============check_clone_erros==#{path}/#{image_repo_name}") From 6220a3c05aab7ccb8cc6331b1c6b1a99a254a968 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 14 Jul 2020 13:45:52 +0800 Subject: [PATCH 68/71] change branches --- app/controllers/sync_forge_controller.rb | 4 ++-- app/jobs/sync_repository_job.rb | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 9930758b5..c208b39dd 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -6,9 +6,9 @@ class SyncForgeController < ApplicationController params.permit! sync_params = params[:sync_params] #以前已同步的项目,那么肯定存在仓库 - if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) + if Project.exists?(identifier: sync_params[:identifier]) Rails.logger.info("=================begin_to_update_project========") - project = Project.find_by(id: sync_params[:id]) + project = Project.find_by(identifier: sync_params[:identifier]) Rails.logger.info("--------project_id:#{project.id}---------------") check_sync_project(project, sync_params) else #新建项目 diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 0aa5dd79a..89d3bacc5 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -8,7 +8,7 @@ class SyncRepositoryJob < ApplicationJob SyncLog.sync_log("=================begin to sync request trustie repository=====================") path = "#{Rails.root}/public/cache_repository" image_url = repository_params[:git_url] - g_default_branch = repository_params[:default_branch] || "master" + gitlab_branches = repository_params[:gitlab_branches] image_repo_name = image_url.to_s.split('/')&.last&.chomp('.git') unless File.directory?(path) @@ -24,13 +24,13 @@ class SyncRepositoryJob < ApplicationJob if check_clone 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}") - - shell5 = system("cd #{path}/#{image_repo_name} && git checkout #{g_default_branch} && git push --force --set-upstream origin #{g_default_branch}") - if !shell5 - SyncLog.sync_project_log("=============force_push_erros==#{path}/#{image_repo_name}++new_gitlab_url+++#{new_gitlab_url}") - SyncLog.sync_log("++++++++++++++++++force_push_erros++++++++++++++++++##{path}/#{image_repo_name}++++++new_gitlab_url+++#{new_gitlab_url}") - else - SyncLog.sync_project_log("=============force_push_success==#{path}/#{image_repo_name}++new_gitlab_url+++#{new_gitlab_url}") + gitlab_branches.each do |branch| + shell5 = system("cd #{path}/#{image_repo_name} && git checkout #{branch} && git push --force --set-upstream origin #{branch}") + if !shell5 + SyncLog.sync_project_log("=============force_push_erros==#{path}/#{image_repo_name}++branch:#{branch}") + else + SyncLog.sync_project_log("=============force_push_success==#{path}/#{image_repo_name}++branch+++#{branch}") + end end else SyncLog.sync_project_log("=============check_clone_erros==#{path}/#{image_repo_name}") From 753cc44518cd86fc3989892bcc33ae8f2e7a85c3 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 14 Jul 2020 13:56:41 +0800 Subject: [PATCH 69/71] change bugs --- app/jobs/sync_repository_job.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 89d3bacc5..d748592df 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -21,11 +21,14 @@ class SyncRepositoryJob < ApplicationJob check_clone = system("cd #{path} && git clone #{image_url}") SyncLog.sync_log("========check_clone:====cd #{path} && git clone #{image_url}===================") + SyncLog.sync_log("========gitlab_branches:#{gitlab_branches}===================") if check_clone 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}") gitlab_branches.each do |branch| + SyncLog.sync_log("========checkout_branch:#{branch}===================") shell5 = system("cd #{path}/#{image_repo_name} && git checkout #{branch} && git push --force --set-upstream origin #{branch}") + SyncLog.sync_log("========checkout_branch_shell5:#{shell5}===================") if !shell5 SyncLog.sync_project_log("=============force_push_erros==#{path}/#{image_repo_name}++branch:#{branch}") else From 5f4dc226252a03b31cb6a5c0eb6fa7313e69a4bb Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 14 Jul 2020 14:15:16 +0800 Subject: [PATCH 70/71] change branches --- app/jobs/sync_repository_job.rb | 2 +- app/models/project.rb | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index d748592df..632dcc7bc 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -21,8 +21,8 @@ class SyncRepositoryJob < ApplicationJob check_clone = system("cd #{path} && git clone #{image_url}") SyncLog.sync_log("========check_clone:====cd #{path} && git clone #{image_url}===================") - SyncLog.sync_log("========gitlab_branches:#{gitlab_branches}===================") if check_clone + SyncLog.sync_project_log("========gitlab_branches:#{gitlab_branches}===================") 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}") gitlab_branches.each do |branch| diff --git a/app/models/project.rb b/app/models/project.rb index b288c0cbd..f4fb1122f 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -18,7 +18,6 @@ class Project < ApplicationRecord has_many :project_trends, dependent: :destroy has_many :watchers, as: :watchable, dependent: :destroy has_many :fork_users, dependent: :destroy - # has_many :commits, dependent: :destroy has_one :project_score, dependent: :destroy From f820250ad0938ed9ea794fd4148c3b03749b1c10 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 14 Jul 2020 14:25:02 +0800 Subject: [PATCH 71/71] change branches --- app/jobs/sync_repository_job.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/jobs/sync_repository_job.rb b/app/jobs/sync_repository_job.rb index 632dcc7bc..abec4a6c0 100644 --- a/app/jobs/sync_repository_job.rb +++ b/app/jobs/sync_repository_job.rb @@ -5,12 +5,12 @@ class SyncRepositoryJob < ApplicationJob 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 request trustie repository:#{repository_params}=====================") path = "#{Rails.root}/public/cache_repository" image_url = repository_params[:git_url] gitlab_branches = repository_params[:gitlab_branches] image_repo_name = image_url.to_s.split('/')&.last&.chomp('.git') - + SyncLog.sync_project_log("========gitlab_branches:#{gitlab_branches}===================") unless File.directory?(path) FileUtils.mkdir_p(path) end @@ -20,9 +20,9 @@ class SyncRepositoryJob < ApplicationJob end check_clone = system("cd #{path} && git clone #{image_url}") - SyncLog.sync_log("========check_clone:====cd #{path} && git clone #{image_url}===================") + SyncLog.sync_log("========check_clone:====cd #{path} && git clone #{image_url}=====success?:#{check_clone}==============") if check_clone - SyncLog.sync_project_log("========gitlab_branches:#{gitlab_branches}===================") + 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}") gitlab_branches.each do |branch|