From 79641e859cdc58873b552ea2b49efae5d922db7a Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Tue, 9 Jun 2020 18:55:09 +0800 Subject: [PATCH 01/87] change chain --- app/controllers/issues_controller.rb | 172 +++++++++--------- app/helpers/members_helper.rb | 16 ++ app/jobs/post_chain_job.rb | 3 +- app/services/gitea/chain/chain_get_service.rb | 4 +- .../gitea/chain/chain_post_service.rb | 4 +- app/services/gitea/chain_service.rb | 6 +- app/services/repositories/create_service.rb | 2 +- app/views/members/_member.json.jbuilder | 1 + config/routes.rb | 2 +- .../20200609100407_change_issue_token.rb | 5 + dump.rdb | Bin 771119 -> 589 bytes 11 files changed, 114 insertions(+), 101 deletions(-) create mode 100644 db/migrate/20200609100407_change_issue_token.rb diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 117bc7e66..174c6b17b 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -104,66 +104,66 @@ class IssuesController < ApplicationController normal_status(-1, "标题不能为空") elsif params[:subject].to_s.size > 255 normal_status(-1, "标题不能超过255个字符") - elsif (params[:issue_type].to_s == "2") - return normal_status(-1, "悬赏的奖金必须大于0") if params[:token].to_i == 0 - #查看当前用户的积分 - query_params = { - type: "query", - chain_params: { - reponame: @project.try(:identifer), - username: current_user.try(:login) - } - } - - response = Gitea::Chain::ChainGetService.new(query_params).call - return normal_status(-1, "获取token失败,请稍后重试") if response.status != 200 - return normal_status(-1, "您的token值不足") if response.body["balance"].to_i < params[:token].to_i else + if params[:issue_type].to_s == "2" + return normal_status(-1, "悬赏的奖金必须大于0") if params[:token].to_i == 0 + query_params = { + type: "query", + chain_params: { + reponame: @project.try(:identifier), + username: current_user.try(:login) + } + } + response = Gitea::Chain::ChainGetService.new(query_params).call + return normal_status(-1, "获取token失败,请稍后重试") if response.status != 200 + return normal_status(-1, "您的token值不足") if JSON.parse(response.body)["balance"].to_i < params[:token].to_i + end + issue_params = issue_send_params(params) @issue = Issue.new(issue_params) - if @issue.save! - if params[:attachment_ids].present? - params[:attachment_ids].each do |id| - attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id) - unless attachment.blank? - attachment.container = @issue - attachment.author_id = current_user.id - attachment.description = "" - attachment.save + begin + if @issue.save! + if params[:attachment_ids].present? + params[:attachment_ids].each do |id| + attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id) + unless attachment.blank? + attachment.container = @issue + attachment.author_id = current_user.id + attachment.description = "" + attachment.save + end end end - end - if params[:issue_tag_ids].present? - params[:issue_tag_ids].each do |tag| - IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) + if params[:issue_tag_ids].present? + params[:issue_tag_ids].each do |tag| + IssueTagsRelate.create!(issue_id: @issue.id, issue_tag_id: tag) + end end + if params[:assigned_to_id].present? + Tiding.create!(user_id: params[:assigned_to_id], trigger_user_id: current_user.id, + container_id: @issue.id, container_type: 'Issue', + parent_container_id: @project.id, parent_container_type: "Project", + tiding_type: 'issue', status: 0) + end + + #为悬赏任务时, 扣除当前用户的积分 + if params[:issue_type].to_s == "2" + post_to_chain("minus", params[:token].to_i, current_user.try(:login)) + end + + @issue.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "create") + normal_status(0, "创建成功") + else + normal_status(-1, "创建失败") end - if params[:assigned_to_id].present? - Tiding.create!(user_id: params[:assigned_to_id], trigger_user_id: current_user.id, - container_id: @issue.id, container_type: 'Issue', - parent_container_id: @project.id, parent_container_type: "Project", - tiding_type: 'issue', status: 0) - end - - #为悬赏任务时, 扣除当前用户的积分 - if params[:issue_type].to_s == "2" - change_params = { - type: "minus", - chain_params: { - amount: params[:token], - reponame: @project.try(:identifer), - username: current_user.try(:login) - } - } - PostChainJob.perform_later(change_params) - end - - @issue.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "create") - normal_status(0, "创建成功") + rescue => e + Rails.looger.info("##################________exception_________________######################{e.message}") + normal_status(-1, e.message) else - normal_status(-1, "创建失败") + end + end end @@ -202,42 +202,24 @@ class IssuesController < ApplicationController end end - # if params[:issue_tag_ids].present? - # issue_current_tags = @issue&.issue_tags&.select(:id)&.pluck(:id) - # new_tag_ids = params[:issue_tag_ids] - issue_current_tags - # old_tag_ids = issue_current_tags - params[:issue_tag_ids] - # if old_tag_ids.size > 0 - # @issue.issue_tags_relates.where(issue_tag_id: old_tag_ids).delete_all - # end - # if new_tag_ids.size > 0 - # new_tag_ids.each do |tag| - # IssueTagsRelate.create(issue_id: @issue.id, issue_tag_id: tag) - # end - # end - # end - if params[:status_id].to_i == 5 @issue.issue_times.update_all(end_time: Time.now) @issue.update_closed_issues_count_in_project! + if @issue.issue_type.to_s == "2" && @issue.saved_change_to_attribute("status_id") + if @issue.status_id_was == 3 + post_to_chain("add", @issue.token, @issue.get_assign_user.try(:login)) + else + post_to_chain("add", @issue.token, @issue.user.try(:login)) + end + end end - if @issue.issue_type.to_s == "2" + if @issue.issue_type.to_s == "2" && ![3,5].include?(@issue.status_id) && @issue.saved_change_to_attribute("token") #表示修改token值 - if @issue.saved_change_to_attribute("token") - last_token = @issue.token_was - change_token = last_token - @issue.token - change_type = change_token > 0 ? "add" : "minus" - change_params = { - type: change_type, - chain_params: { - amount: change_token.abs, - reponame: @project.try(:identifer), - username: current_user.try(:login) - } - } - PostChainJob.perform_later(change_params) - end - + last_token = @issue.token_was + change_token = last_token - @issue.token + change_type = change_token > 0 ? "add" : "minus" + post_to_chain(change_type, change_token.abs, current_user.try(:login)) end @issue.create_journal_detail(change_files, issue_files, issue_file_ids, current_user&.id) @@ -266,6 +248,10 @@ class IssuesController < ApplicationController def destroy if @issue.destroy + if @issue.issue_type == "2" && @issue.status_id != 5 + post_to_chain("add", @issue.token, current_user.try(:login)) + end + normal_status(0, "删除成功") else normal_status(-1, "删除失败") @@ -273,9 +259,10 @@ class IssuesController < ApplicationController end def clean + #批量删除,暂时只能删除未悬赏的 issue_ids = params[:ids] if issue_ids.present? - if Issue.where(id: issue_ids).destroy_all + if Issue.where(id: issue_ids, issue_type: "1").destroy_all normal_status(0, "删除成功") else normal_status(-1, "删除失败") @@ -338,16 +325,7 @@ class IssuesController < ApplicationController @issue&.project_trends&.update_all(action_type: "close") @issue.issue_times.update_all(end_time: Time.now) if @issue.issue_type.to_s == "2" - tokens = @issue.token - change_params = { - type: "add", - chain_params: { - amount: tokens, - reponame: @project.try(:identifer), - username: @issue.get_assign_user.try(:login) - } - } - PostChainJob.perform_later(change_params) + post_to_chain("add", @issue.token, @issue.get_assign_user.try(:login)) end if @issue.issue_classify.to_s == "pull_request" @issue&.pull_request&.update_attribute(:status, 2) @@ -480,4 +458,16 @@ class IssuesController < ApplicationController project_id: @project.id } end + + def post_to_chain(type, amount,login) + change_params = { + type: type, + chain_params: { + amount: amount, + reponame: @project.try(:identifier), + username: login + } + } + PostChainJob.perform_later(change_params) + end end diff --git a/app/helpers/members_helper.rb b/app/helpers/members_helper.rb index e3fa623c7..c09602714 100644 --- a/app/helpers/members_helper.rb +++ b/app/helpers/members_helper.rb @@ -1,2 +1,18 @@ module MembersHelper + def get_user_token(user_login,reponame) + query_params = { + type: "query", + chain_params: { + reponame: reponame, + username: user_login + } + } + response = Gitea::Chain::ChainGetService.new(query_params).call + + if response.status == 200 + return JSON.parse(response.body)["balance"].to_i + else + return 0 + end + end end diff --git a/app/jobs/post_chain_job.rb b/app/jobs/post_chain_job.rb index 15a0fadfa..68aefbae6 100644 --- a/app/jobs/post_chain_job.rb +++ b/app/jobs/post_chain_job.rb @@ -1,7 +1,6 @@ class PostChainJob < ApplicationJob queue_as :default - #注 pull_request的 api文档有问题,字段未明确,所以暂时关于pr的参数应该有问题。6-8,hs def perform(chain_params) status = false chain_type = chain_params[:type].to_s @@ -10,7 +9,7 @@ class PostChainJob < ApplicationJob if status break else - response = Gitea::Chain::ChainPostService(chain_params) + response = Gitea::Chain::ChainPostService.new(chain_params).call if response.status == 200 reponse_body = response&.body messages = reponse_body.present? ? JSON.parse(reponse_body) : "success" diff --git a/app/services/gitea/chain/chain_get_service.rb b/app/services/gitea/chain/chain_get_service.rb index a752fdaf1..3ac1bff7c 100644 --- a/app/services/gitea/chain/chain_get_service.rb +++ b/app/services/gitea/chain/chain_get_service.rb @@ -13,11 +13,11 @@ class Gitea::Chain::ChainGetService < Gitea::ChainService private def request_params - Hash.new.merge(data: params["chain_params"]) + params[:chain_params] end def url - chain_type = params["type"].to_s + chain_type = params[:type].to_s case chain_type when "query" "/repos/amount/query".freeze diff --git a/app/services/gitea/chain/chain_post_service.rb b/app/services/gitea/chain/chain_post_service.rb index 220f6db3c..3ce1a2cb0 100644 --- a/app/services/gitea/chain/chain_post_service.rb +++ b/app/services/gitea/chain/chain_post_service.rb @@ -13,11 +13,11 @@ class Gitea::Chain::ChainPostService < Gitea::ChainService private def request_params - Hash.new.merge(data: params["chain_params"]) + Hash.new.merge(data: params[:chain_params]) end def url - chain_type = params["type"].to_s + chain_type = params[:type].to_s case chain_type when "create" "/repos/create".freeze diff --git a/app/services/gitea/chain_service.rb b/app/services/gitea/chain_service.rb index edfb6a3a2..9e1612264 100644 --- a/app/services/gitea/chain_service.rb +++ b/app/services/gitea/chain_service.rb @@ -18,8 +18,10 @@ class Gitea::ChainService < ApplicationService def get(url, params={}) conn.get do |req| - req.url = "#{request_url}" - req.body = params[:data].to_json + req.url "#{request_url}" + params.each_pair do |key, value| + req.params["#{key}"] = value + end end end diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index 925dc6adc..bd017df4c 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -21,7 +21,7 @@ class Repositories::CreateService < ApplicationService username: user.try(:login), reponame: @repository.try(:identifier), token_name: @repository.try(:identifier), - total_supply: 0 + total_supply: 1000000 } } PostChainJob.perform_later(chain_params) #创建上链操作 diff --git a/app/views/members/_member.json.jbuilder b/app/views/members/_member.json.jbuilder index 5a3d3dc00..c2a2bb269 100644 --- a/app/views/members/_member.json.jbuilder +++ b/app/views/members/_member.json.jbuilder @@ -3,3 +3,4 @@ json.name user.real_name json.login user.login json.image_url url_to_avatar(user) json.email user.try(:mail) +json.token get_user_token(user.try(:login),@project.try(:identifier)) diff --git a/config/routes.rb b/config/routes.rb index 3ff0d0dd7..6059733a9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,7 +4,7 @@ Rails.application.routes.draw do require 'admin_constraint' # mount Sidekiq::Web => '/sidekiq' - mount Sidekiq::Web => '/sidekiq', :constraints => AdminConstraint.new + mount Sidekiq::Web => '/sidekiq' get 'attachments/download/:id', to: 'attachments#show' get 'attachments/download/:id/:filename', to: 'attachments#show' diff --git a/db/migrate/20200609100407_change_issue_token.rb b/db/migrate/20200609100407_change_issue_token.rb new file mode 100644 index 000000000..09608dc27 --- /dev/null +++ b/db/migrate/20200609100407_change_issue_token.rb @@ -0,0 +1,5 @@ +class ChangeIssueToken < ActiveRecord::Migration[5.2] + def change + change_column :issues, :token, :integer, default: 0 + end +end diff --git a/dump.rdb b/dump.rdb index c4c30776b558dd32bcef53fdf842dc5a6b4a2f88..c96e57e865b64c9f889a66aa66b0bd1657c0f7f2 100644 GIT binary patch delta 335 zcmZ4Ap?{WTf}wTR{kUHorNyZ!y1A*jhaOB3W%$LDn4hLwP?VaOo0OA!fZ-p*Z+2z| z?&6Zf605Yt%$(Ge0}Ov0ckB31mSvQ#w>-eW#8z0ETAEtS$exm#mROoo@@LV>?K6rP z85meJGKy1DeG`+N^7FHG1B&wXa`KZCbF3^3Ow7!!(u@p~4bx0hlFW^gSy&58GgC`g z(-L!vQ(2Ny6H5dQO)U-04Gav74D}35EetG7SdvPMD-STRWag#iA9lFn@KU~7Y4R;b z6J0Y4OA}KQJxdcyb0HH89i@WI6eWlqI!Yyp=?WekY57IzsRcQu#R@i)Etp~@Ha2wg yq1dlf3-;2)^K#6V2UsWXW>VJ0bR+{GI1mbo@{?1GfkAeF^*?Xd{q2pseJcT?hjFC< literal 771119 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͓ne%)7f5)Gh-6MX90ZPqG$;f~k-Ii~4!^?|7 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

?{bdF6LZ`67uKx^W+~ zw-ye&T3Z@aS~=X@QHpxJB%fr+&qa-<8K6JSfBMO?m9)1-b5-9?0J|>OVn=z@`+nu+ zmBxxZRQV;v|32aoAHLExpQ$PgvqB&qoC_;+1kuEo!X z47t}{K1A}UPt?#p!Ltp)C5B-8jNtLf z!IP7Nr-wWsv3U|nb-mV_Nip)qqEaF~n`0}OIzfr)3KiCcPP4>3%NFK^je7=}d}av2 z1&gKMrz{?B??$|RF3a+r>-Q3yN*|;jat?G^Nr7W=%ibE{+6`8c6=iB2puog@u*Gys zOcXIn?7K`Q{-D?B8xT%-ag4-POWgg$);fz4k{ddT6t(tgNp;~F8~+@O^V_kJczddJ zUBS{iK2-`B$N&VumD?rQ=^C-Qpg-f81x5X z=}XOUpJkBC55G@ReBl}}>I5k?>sjo^gi9-SFrmp-!PM>2y81X8-~oZ~6I{dCIni?^ z#eI_Uelka5XOX#pcY3U46hsR6f`9RVRSzfFIi|U8hKj^BQg{Y$Mz%@ZOk$GMGuhIz zs@8be$APufF7%a#6hH8;#O-WTJwfsC_;C8BX$K_E?E=`JV^OnnKX>PMmZ+091d5_!?U(cO$-Z9DCP2is+y_W!$L^KQ3-pGB8A`%rQ_ak zE-bHHpBK09S@vX=#$KSw2bR81xoIEp3{z2+=2qAXZB=2PvJaEcmvu~`U27X_=;GFJmHBf* zpBKjrfYa3LmdiFhe2|3^0%X3DQqGQ%}i!YbxQMy zubF(A4r8wCjhH~;9*kpF7z}bGu(FlV;gtJ^Src~F9z5n$ZC~MMi5c+?`!r1?dA!fA zzHSnzIZ20*;*>S1Q%Rm63BBqbNc%Gl#DD5e=F3GfB#icx*>`-zB(6gL0jEKmu#+fJ zNrWNYRF`06RxN)V{a`CMt}x?z&&z-ye32QD@JQ><<>y3g#Qc$gDXqwQe9Er&5FTgN zk>hhhh==Of_IK+6QWt*=Vc@Ei1sGH#a~#+ipMi`>QB2H)GM zi~F2{j!dslR(ME@@IwR^O{b&M^>`ZS;VVKm^uH5dfpkR&vqycMrx-n-ScA7q{*RJ^ z@DyN)_3b=PCMhDGS9(c`x$lv(2P>KBWf@=IU?|El4)76lw;ul~@=|Ss!o$|Iadn&i zOgi6I@ynCC`B}g45}J2!2UvAwmhobB{L4M)PMi@7c$ZCkH8P*0HNeQw=xW}0^<8&?5}8q z93y}9CK4g)&&pqM2y5QKAGmGg;5+gMd|mK2%8nlT0B_fH8-c)dF1yMkMC+Bm&ZOb$z|4zG`l{FylD;N!lL?^HZ8;faWM=-?knHi3l?v)NTLP4Kg7 z2J{dF$C@H~Pb)@pVeZDCne3|Ky6e<{<7R4LLUSE@@i!cf&C)!w;~GeEuGWenJ)FQK zu(rIn!8sLe+mUs|I(eg)3E3(`ay*JroXU=_*c2{{y@aPbGdl$ZHS*}H-2z4+W(CC-BVX@ zg86d_-AXUaANjH%qx{Qk(7y)oFOoRHgYVUqNb>%x_&!j^_ehyv$M>;oAVt*!?_*BJ zy{G=4(7jI&x)&Q(*Z(H8_wkZKw}X3>$VUEA=7B>#6V1zL;18uM)^~d+nEiT4EQ<;89ra1@Kj^)3uu=Wm*nT{Aq8_Us=VMmN7&?M zkb1}q8#@FMCUXP5d(M&8e-7R0ub_L>ouIpB;nGK} z3wQS6*Z($f=lddXkGK`M|HS^D64!vylM%N^_TcuNW1JSj^r;87FQduS1KY=(cPl3T z7HB{8?}B!w+!}FCH$hz7=FJK2?V9uXvz)cW5--&Wx>qfy`Vz zd@h4`-(P|EF*111<0CXy4|spwy6=y(&g+*wdoe&As;)I5c>mMRB{#r3P5z0!*tD{6 z6~cFQW)d>xi61rxf6bKqD+qo=*h}^>vf%uH9t8hf4}u>cBlt5O1ivA5dJlrPrhSA6 z{v)a;mF;B5qNH0fe1ui4>FKTwdrW=Z1(HGoti=vZvSx9CAuUUT(lzb5fQm)8DA$JO z#$i51yv-DcHMWT{vC)`SVaGx^%s|lC_}Y*?Y>u@m;k+^~(VT!q1Vn`;>~anJP2#m* zG6~|)n;xBXJ)U`2I25XSq-!BRlEuMB-PVzv;RYtHVB{sNq61Btbz1G{$@z(5{QUaxqpr3fbbKQL|>}tkKxGdOufQfl7v_n2Ma%M6R^DxY$+4<&;`W zB;_(S7Jijg6jm*24S`LH>Jp^n==MHXTZ%10H!E7^UXOY+{I<&!1C&pp`NQimrTx$} z(v0zIH-v3+Ch4~QlL||#YrKY!VX}w>GkfJugD1Ue<}OUlMZv15<*@=NZ)-kbcyIQrXRo>J(*yfMq7zU7ao_Q2=kulnq>D z8#T&}ax>3q5tdj2ux9|>FF5aDah~%dl&bITKGjJ7#JiajE@3wGaxO=mxooV(PDx&n znHS|erK(y=hdXxZ~k|}15 zX|d_RW1Xzc;)mBBQ+m?}`7G8crWgwiSR-NkAyWe?_!~UrE5?BH+4D>J{u7N270d^*9R9)sq-!PDs$B z@^KDYCg?ZnHAg$n?nBGAxK7ikK+E>UCf!8xY?`m)%({zDuIwZ=ZZ1V}_4K33K*!@f zJl-8JhO-w|SgfPLhoo9Zfe(`=IP)w+HJ`czQrPsu3b%d?Q&I$Tk-X=Kg(^rY{!62e z;}3G(M~6zPVE5fAB+(t6q8qFmnqJn?cc{V>I9FH5cJ4W&9ax)3tNRsH~Y1A zn*!Z89mhlC^9xk?JHtA6@5}eGznOX%L+~!1!eGbUEfbh!huc)&x!K3tIb#P~r1_#< ziK5SrK?RCVS-P(?rfG#@j-U#X z)E*t@=F&QbRgh9!dxs*|t&ZN!xz#a}GC4%y)+N?IC@!@OvP8B-xXRMzGsY;1;oU=% znZ#&!bh570ll~o=JnjrRQsDlSyGQO`8UMa^SM3!zy#GK;l>S-$uuuKQ*WzAajyBmE zRWRN4C)BjeY`mXzw)uanE-SXndKwcHx%`N^_BFBgB6*j^CmszQ+gBVxMp|+u4enf% z=zI1r+f@x6zPk^$Lx6 z5;G8kwCNBf%3XKt2ou9uls<{)bUQ+8!dEFTZdtGITm=t={h6#3^Z6Z0IfQ=s{)rUs zBaeoMl6_#9co(zm7@dZwUcy;5P8Z=Z28fVpmRPWSsb0I+t5SsLGy^)=r!TX!f)zoS z2he%qI0^vdTF|X0Wj|jNbJz(s*Dz)^o)!#o%!L!dA9Aa@Rz3|`80WSF7XWk}bNXaN z4K7Qr`ZTGzR1TliVaKHLQVIdZvds)2}A>9Vl^ zrg@D8nmLhst_O8@^gheP#59|zR?|IJ<9Eh&VP7*ku~8cbKTe*?|E%zYn(|-6Fe5fS zA3xN&{0S)0=R=U5*Mg6ns!)64!gG(qvsbQtfGq&*($z(EU79O=XXvZEu)8l_d-L0& zAD&n__HnI^Z_#hbmka;= zTlIqv^tw%{JlfBrR32UPP_-%^Tj=ff_^`E1Oz!AjJ~8naEM!GheUzTq9{SAZMiyPz z5kJhL!{881_{B6eOmcqc+gsAd;!K!7c1tJO=sUJuTnV%{Rr57QYiefN2&Y-Y@t0$<;}hc#sp04!9b^_=l^Q(j&-R_>ZAWVI_3X3 zY|4RFi9F2nGnlPrEZ&HbV}-D&%#dp}VI7CV#6_D-|5>)s|5=)|c=@ipgqYlDd#pVg zLkV*+m@dZdNU|l`f4h_{Ar^b>;8$5w@o{me*S;-D=HD+RyB;i*7?Xsi7uS0|PlvrE zUhHvwKgK2)18!-Sbl2^cn( zl;?;s+Y&KvKPJKYTR~It_`-~i#teJ;@L*kd^Wh;5^CPjW=hlw8-;N$5zY#2?_V^gE zln3^c_+Oq4uAW1~Ml9q36`N>Yx+cDV&w=5;Cu7Q#n_xHFb20QE8~ZQ59h(WV50 z9rMTRCbON3$+IW^C!u3pYz#gX{%>+BlWbU9iE&{GNpg9+8T$%zu?7GG_nUj&n(_{s zfJAR43VQmiKq0-p2i)2ZtdqF&^Q6Y*LIN*XFPp z9N2zkOLWAr@dHZeVO8u$*hOdHp^b*qg3S2khTFp>q{)F3fFP-F8$G=Y_Br!2CK-uY;v%nyC#iC0fx4LpsZdpxoG57R26LI?}ENTJvPBp`?^mZ^lE0@3O_fgah`&AL>&?Mqxi3d2+rpOzm{WyKYs$$ z5+^5qyGDr9Xgv!5+8$fu8VDUY^*)cLdJ){dN@`S~C#dr@A5ONkmN1aw=6b6!mA>m_yP*<~`1UZwHI0-k~~j=??u+rpE1Vd4AMn>vBFadpq-RH z6q;qWm!B$&kL1No6+f7tqeXbwEb8uoZ19IF$k8OIg{ra=%q9>d-=~<)6WSx>35ks0 zOPRG#^YdY@)(YPcp^d3f3Ej<2*lUI%Cy}kVhG^_9q*-QICS_(>a>h@YoFQC*mzmu= zEN7XutF=4D6XMU}yD-U;s}=;IvH-17)Zg;Bq{v_(O7~E@MU8+{TvE;Uq;I9Q!eTq# zq0069K`jxRu^D^}%8f7yLnBYY>6Uv9+>-AZv zu2VvVD-j;<@>$fl+nGh{HRWPo0!_~}9ioHVaIf)aeASCXIn!vE`4nR^+$_fRD~nYQQ;`Hfp0){X_VGcQ(ji-Fcjj7zz1!BhVn98 z5n0Yt4qhS9#zdt44Nn>}3Bm(10LP%wSp?fLvLkE&`()>yU2m`zTKlf{vmi}c>t#u8aki-)KMuHmm<5yyy0MA-SW{JhyK zPU9c41XC_}C2Bn}_@;=GE#gu)lLQsZ;>BmtIl=OUg7NysAov@qI%tk?s2j&0`ww4t`Z3%&Tx1L*8bM`HMrQs#c)Q4Gnn` zHyO@oH){e|G^nj8hamA$Ok?z>Wmx!c#UcDxjcZ}6W_bAP8cs9gwG=m-AgLb@wh*Cq zA`vVP!v?atH4Y{@A8wpYmvQTlbezQFUF|N-(8hlL-CG~&T>F%e7@Zg`)CPh{`=sWX zmdP)@Tl|iQhhR(^+QxKk(>cynUSI;wEhzZbnFiBfQfrIo)U2;xAckdj2qw5MwV85Z zA$8x;fYcx~iT_9gTiP#>H)%hldQK9E+N?GpLkZR8cEj%ROPTC!Iuz+r(mIqWEDhVC zDlP`YB3MWx!jP5J2|*~PEiE(Xhx^)!3^qqaRbgJC{&V7R-KE3~i$au(2e1VWYt%g) z+CkHVzWtJ+40+IE2d3yaN-G_stTvkiR{2+AC{2YU7j^m7<*pQbPyo`~?QN=srLs8M zD2}vusmrQL4Vb?ZW%*=8)I57pRARMBt}>4{MMWoJ;wXj^+pQRApOBlB+dIK*vL)Ct zL;~$RrkJ=W%^_kCjXuTlZpKg(AG`Ccr0mlCK?#PM#d#o&h-NBEq`u)6D~=^jE5-e- z>u-T2g>raArLn5I6q|S|gLn8AR9lT`12o!7pR6NM^JL(1BuGv0p42yj{vN6Iati0uz!#{Kb#2LDw!Tw#$(B)ej?GaM& zSNDW{?!O;jJ{hl!CtK(aRGo^=5<6qQ53OYI2#+T=vQkow(*6ATkPBkr{!xw*pEFln zLqF#~7o%6-)5T@O&y$~m6JdjK$|Ebfxz(ThUV$ylj+4RPON!6kMC~5#pc`?U@j27= zd}Iw-&c~qydKc!cij&;_Xf4nvJi(N1#RD`e_@gVNg=i)26&5|G;!Io#rSjuuF)wV@ zKNa~t9)^>BN{W!(2jqT1Wvgavc8TjHDJHv_i{cDA25oJ)b@-I+BR`QjE!Hye55;hB zT2d$S4T82y)kw7Im&LWPikJk=@|PzJWKJv#FWC8rS_=+aK^dSdpR%DaT2eK(>M$0N z2^}q|Lxp^~l$jqWsrT2-5rBkCgs_n6h=?N~k={frjA--ih^hLDeS_*KDpK2m+~V-I z;0_^%FNpAMQ@)eiO^12D0GFx3ItQOwmIUV~wq7B_+&;zFNS#6Ya zvOx|sXG_OJ;c=rhnn$Mf}nahM&$Z!#NpZV>|mER0|l+K}?#N|kSr?k^4 z9v~;aiW{za%u9;RjbBOo>7t_Bf_Kjd_I5X>ZHNmILS-^n|4qaXILIHy#htlOs}xhT zpBq9W`w3ZOgTAFc06+|K_JY|R{=RfEB#u5b@q5P+d;*K>R;Eh5#}l(O zAb4zONKr;al-^LSa5W*XTo<+?_vyu!fn|F|SNQ)2F-FLGO;vO4^6QhAjL zjgBY#Qhi`n)4Lu<`&F6IP94TzAJjmZ(gs$3EL?8&bs{_c%bIaOcO{`+8Y%3MH5QnJ zL(nm82K-gC!pBQqcdpwjvD4_i-(O3;pq{RQ)cIr$e!Ojnxit2r)C9`KyzLqoGBs@* zUg>=^o$_8LEXK>QCz2*cZ}eUMylrt{!UM;_eRGH}hJ|?4e^!L}s zGttK5U;e|t4nOq1Eivx<6Mj_qqjT{1Pd63*gAwJI174#-&?jTX@7Nb^+*tl#{P+<) zYKPl1FK?(F7!ArDddt}zx9S}RVyt?iJvI?5FJlv8K}xd~H{5@PR|w~mDj zF<97w`K(JXEqLGigqYAfXUcyC874Pe#3jX>4K^EAUwQ)9@fC+md6FGpfHo6{Sy_4i zz7|F>12O5e3pcACZV8DFIuHVf96yec z7;-|AS7jpBhKEnjn3Rz=BRm{*EmT`dqQ>F{Ilh4n&)T z({B^L6NmWYDX{C*Zj5%umTHRrCvlQE0+OBmV70glw(ujANY|jy#I+j5I2bL;$K^eye>eepW!EmT z``Mj*JDwWj{Jr^x7|Df#3JBt@+ES;tFvBEJ78rSsH1jLdEJ-!>u-(lsx;ISv1#Sb@Q?NPKOefvwA- z)J@{7b6|z|u%x2xT#5)d{WTzu1^$*y+i`lI-wqT(J&CC}c+PI;hCAEnJm%EKcJhq& zB^IL~AxWj)m`jh<58}3-?Kr{5YA=wJ&JV#~jvIx|D2(djk0QMErbiM3mAmFv>(PX!~lv)g6)<7|~xlKxWUJRV_s<(pa?0GFpM*?&0AgdfCH+ z<8g(YTkN0{V6FHf{OBg5Tl3*bxXT$qQ;@DAKH)$y=)qcomXresy88uxiJnq#R}7A_&k23Rm+4&QD1a-SdS`ffGLil<2X6R(QU+((RCOBsm>Ae z31-6cW?l?^H}$C-nW*EYIAX*R60?F-2pc4hhgV%h;Y~+fI`&zzJERHk&W8QYrOv*5 zStt3MW^%|8av>y6vHk?gEb6MRLx+vxbpDS5QQ;7tkFXH4k9h*UQT6{6j!RmxPO zUD1=1Y70XRH*raf*$-o%z?+jA#t%_=a#C%>7>8a`H8Boj*voRW;{uf@B-Q4S*oBZz zJ6xi~`1Sb9L6th*wMWovlW1^H@+rTez1Q2$Rk|Pjy}_rlIuK=R7=9|}0)@V!-AOZb z@7|_o=~w>;h!O|6;;;p@!*`@72DN@nyYF9i1;K!|z7HRWPa4yrNC= z^#s<+y#ryjgIUZf)qmkzsfQ|zcUf2oZbhN>3Zx2zjf#Tc#hfe{%(zHa>Ob#=Dm|~1 z(G!8!&in(2nBC6gY5OCPN&7^z*g`;qcQE^0-5cULFv`*#i5u4P2gE4^R%$+z6of$C z{is`Uc5m3ze84%kVWZQg%al|^;_wLTj{!AUM+$973>~J&71QO|%en))OZ>_DE7}8c zY)^P$NAG2F?Ij)&Ce;1C(F`xS@SCeU+56g=d--0%T<6f9gwqgwu(-kga>(`dkW)!v z?nyb7l>OwGQ*|&W$DGzZlL_k*Jrd@sD?N zZ|Xbw*WBDleyN*#Us5DVN^)+F?L$F9gLbut{v~3h7Hzp6eUU!E_8CD&aedkZIkX7M zp;mhymk!4|&c14=6U4jf$gY-%aS~zaY^JFNMkANM5j!!ciE@gIJ26Yp7EhX9A0`nq z_}HEqznLV5nwX7;#gP!+&8!Aw2UtmI;F>NppOh5gv`iYfhuivW=MMWONwW#VicWSN zegw)fV|K5kz&NE%;3Ey$8l0#^voV4`OK{;=GTzbN>s9a=iWHt?(7b7-)Rc#o`R)brbq-i3sZ)t=-?#6dS97Yhh+y2ZXclkxQp5w}Nu z;zBe5YpBff(%dwc$l&3Zs839bH`C$1H=;hRqc-2(@HlN`%+>g3e&SAx<|+e3-?Pjk zs9D|v6$-s8^Jrr{F2-dE#jn6Zv?u!yLn*MqeQ8OVVT1=POuAY;;lE)v9E_={SSpnp zW59}ZO!!1?v%#8}8*Q*z;VxB@J>Hgpciq1&la?2y=HCeTyj3NA)1nj=wq11%sE)q4 zWli^X(Yws^Dt~br^u}^w7fjc7vImq1=(pg+hf>;MN;xZkZ6nH^hXq~SauyenxN_<^ zz8<%q7nVJR>}_Y`b2wc|ByI%mlW^|DG10p(mFW^pxkVlBffab(?mX;!#LK#Nt!@T0 zc2#f2Ev39+xZb2p%?gxAird5xu~~`355|1KV)_bt?|QV?F0q}K`*{|-@=S-KYc3i4 zm_2nbBJ{d-aVtF6x*C(s^(?w%h%z=hz=+8wWjL;n5gIQc%VKx+Q7$x7&TB)rR3DHwC2NKyGb>{nWTpd-8<~?W<1$?S ztwfnNW%6VTjx2cYQl?GIu*}H7vja{zzsEzSFX5(6nKnaG4_3$l)6?lPf3wM+gjpK7 z4u`|mnyl(sthWZ@9Fnc^(1-LQTb8X6`T}9&p)z>Bs?=Ty*8DQ)EfD8eC4@!mAx`oi zf#*H9&y#ece?oL_Oq?|r>%EflTBCYa5UssL;+L(#&0=Ykygihd4J?=wCBKD=nV1(F zjbo@Zh`=AyN?AvRiLUW?Bw$i9iZ`&>EU7hF;@9-DBq>sf)4KKxpw{ zGwq|?+$vld;lw8?9Qhp@>|i*v4kqsWL1MPk)He0Ejq_OC@qv%#y>7xueP7i4QFvzT zQ|(-6JEOxWa4bFuTcr(k27#GgMCSf%7k@85jXp~gxC}hMK%e1`%5t;?Ilxo#ZMQl~ z%1V=Ac3CyfhNYN3gKO}TvIUw_1>l;mR5!DYnIL4oym(-eEgrMQ;$rghY}ghPZB2?d z<=V};wuqpi@m3V)Kd)DnX$40~Rl-If@Q0w5zy5BZYAF%8Gb8H!wooas}htimv= z@+w*`I9Y2kz(GP!*ZdHvgm5|zYttX@_;HlHWSBViqjYt{Jfaf7IhbW&iW2@o`(yAcEQTlh*q^U zG=??g!8jeAho20J56QbYIq;%?ug?B2(dYSxJb(R?^ACpSYZ5Q|{@mtUoA2-Zu#Ko$ z(1p4Dg-aY5=Ic}Auu9_+c}^OX<7R)-9W;CpnZsUmt~*}@vos@#b!U>R{t}zgbQKQv zcpzZ1;V+UZg<8n`i62P;i7(G(92JpeFedmAnH2UKsR_LXZ-&jR#XaKsvoKg8=)&}Z zI9LuvboLTQ=&tlI19${~1et12uTG0@T<@Dp|N$xy8Jg9Uq%+-^Dd5sIdB>_>4!QW z+8x;PU0ZfHwhhRE?9@lm&bYyFV9M3f%QB&Rm4qp=>jPImq9)3SNichiN7eG; zCqAm8WS`F0QGpr+kJM&zf~61B*uYPPKZ`TOYoSAZu&BkW;0bwA+(RR+i(wtAWaRP# zmw6uFi8jBX88Qiu*ohM{;nNe^1&-_RYq#WoR=U2qkrWSWU+E@EM7!of@HbOxgp;)7 z+-7vDfuXR<{^skSF%wKV603c?cL{@dp@dVz!m^5DJ4%Ye8Lhlaxenucb}7yPXPU$` z&>J$F6tk=D}4NEWP%m&f3+<*m9=!;r? zIHDx%7@sVr@P+bfJ8Gr8-QfS=tOt3!@es^*`#8gcNtGs@K18`%KM}JrUue=eX>A+n zBd<6fYi^f(Cb_&z4p)U{k8Yf{(BIpO<4pu_`kj6o<~eM2H3)aubbLw8#V4HSlu#13VpZttSILp)WdL{$K3T4Ynefbk zA8)JHgX8VgP52?n{$lXxsM)CvGy*?s^SdXa%y=!fW>rY!FiSM$wGXXE z#`l+1$(Wb>Ym%{1>ernHciNOh$H(O%vmJvX@OYCo!HRX&(b%q?7dP%VHznvFHQm`7 z8lPZ}i$l$L&!QxLy1Xc9M72j@>5ZbWoC^WoI{RPkNzN-gdy=9(H`XLK9HO|!F~^#J z4SlfMo+QE+WpoS*RhNFz9qz?GV>eHI`M&}CjIcRk67ynF3XounMa3|t${TPb$~9mw zctT7x))d>K6Jq~;@Pi&vb3*Jbtzo}-M7_*-@7tMiu{T;iPhH%(3E>Gcrg%J&jfjm$ zJ!-lQa%I+#5i-Gj=Dz8P+76i%^q07vi-XbaL{X9?x zPaIvVAB7NBY{y5$vS1!AUPGXWU`qK75I=muRO^P2VJJ&slnltfoplp$B>0#iJ z)|a?!ADL(O(C*NIl`UJMFHj~qgc&Q+^%M~o6xZ{Y<0?hqvR1)Xl}C~suMk|eBzSeh0QW7g>e za4Ea%4t6fzYN=(8FNZh`m)edng#ACF3(rP z5c)ZT6|l{$jIXwP1ev?{!CCsf71bOU6o(rT35p?5B;G5I6kq1=gQcFL*I^R(4os%s zphnZr8G!RsO914%Ra1Su{S(-3<*ee@$XP)!O~j@k@ia`qGx0LMo9Q|NJ~*;HqiAYG z$jg7D7Oc6If=r2-WFSfBX&G<+HD7RSPUN)%q8QkX6fmWcx)9~yiRK3v4` z@}s9Ox=F#NHS-!Ne|;8_X%y=E8*IhsuI68tsy&l0m#n}fTX3osRD(mKe2 zdv&pzPoO_t$+%8PewXmcR3`;pQh4}vDA8rrR^k9UL9CNQ`L&y1gJyginMGHCUq_yru}I^u_Lc4J9|lXcCO4OFTu?2io%+u6ntt7 zW(Wa;DVpj6=T{b6k=w1oLD`T9*?^3upk*RrsFoy3Y7L2(SPl2U67y23!;cj@iNyyN z_a{@?2WuXr5yHc3*9Wgr&P#SAW{#t;i*Nvx0|u~AU#;(u=X2|{^l5Sbb={1F0_u=%3QZGbhy98{u^_&$JSDI;AUG(d|W~T_JZHsZ5b7K zhkA~^q-y+?tDH$R|E~Q;j=_o^imvB06@$hI^eWu>G=)h9@iEvMnYgrUTbTDOH7%ZbGWtO|=F~z`Oj?Y8Gn>{|>kZ6j-Q&pbB6rCGq<;)Iy+`oU8LW(ZIbj$iS`-YdH zFRpKIKSSY6IDN*HX&KaqaseK)y%H69*xj%Id>{aR?q4ZaIUwQ$*?$0)ix5_n7zLwZ z5t29ugHRnPMv)DJ-VLshz4NCYqb(m|qQ*N;{xTeIft0 zgsLlcIqK;oE|;Q=7Y=dge?W+TvKQv2m%{w&GIT{4AyY(x{BF3c8RKhT1P-}StTIwa zb*f33rcgNK3kwTTy_hE(W5_C6<%c{8HbjG*!ET)eDfCmd9dIL7WhkXY6^X$I4p_)v z#^~o#XB|^mDKQU9B+Gigr2He9=(@(iOe6u;L%ilFsiyvl zYdmHWl$FpXVi((Y4YC>~CY6J!h54ze778XPb2HA?JW09F;%ljpm^6tr5&)v=;Sy-3 zhOj89h6;Xl>qHL1Djnh*ib*JkjG~KKtQc_pj;+)iCDj`Gr4)EviGjCZFVlRklu3wE z2j9qtkzClSEO*#Yl!>uOVU-vwSG>ro5;EP~2%?t)p0k|rbpWQCBdxHoR8n;#YRwae zh95|+4qeDR^!!Ta%-RTW6S<>4a{;bwiT zRobb{%u0TX{FpWH z{YdoM9UXll=_Xe`xasd0d$nDy#F9KLJ#L;<>SZ12$SK}4`iM;q2Bp~7gsSYxdW|C)D(#a!-{MGQ@-E!yV!_&GMou;Cjp_rwL3lGLy_UW)`;dbq9O2!GC%OeS7tQ@U%wXKQv|Em z?qGG->{ry`iz47Id|VIBxdy4p011~z>CYLa-y3+1-Tcs&YS`f4QjI}H(yng3J=@}R zCz-9TB!eB`g+u4IX501Zr;$_NM>j?a89{Wiu`3zK2nvb^#hd{Y-?#wf7gg0iSQiad zb8N3R5SY*{{(a-~cO!xfgV3`I*rW08fQ|e+vK?>GhZgsRw&+Pnl*la^vrUlX-V;PY z-&Io5Z-Jk#v-h-DEVZ*3tQLd5WI>;{4b|}sk5KBBKg6C2)qrj%IL5UGqsyf=L1iG= z1C4gA!3+$D#cm*VF2{e+YbT}y!E^qgLGV8E`|aFIqSb1lwMmo}oraF6<080&%BUk} z0P6t^1Vq+&c74;*-fIC00>lAW2na?r11{SJQr1BCT{9@Bh{H9Q!5Tg~48Y&D(j5U~ z3^oX)Cb((k_OH%vg9!-RmEe~HDIdTKxDWsM(Fn*h2*)V2yOVCz`W z6l3&Ia1l8P93!@%kjW64+#jo85(a_{aS#T=DExUuKxoyxcyZe_EDR9JJ{T%P)(}4v z#7=qqMEJ_l<`*lPcWtD4u{Wi=&cT4m69OYVu|x+ah}|b3?7=Tm=_Jtq8Y&gY)U)_C zzhmqI33QyAt*s}+nwKwauBi>kxO^nWLp)KPM5uXe4UEm8)(D_xo7`%l)O!jlwRtPn z*!ZAjhoCm7>AVMP@D)I~Uf?(T$gc5=nwRXub=U@YbTg~*Nlt)dOH_ij*49Fy6m?iY z>+De;GeD+|f~-rM*9V4w{Li7>cza>4D45|ez9DIXo-hXhQ>2#aEKW{f ztmzpCa)*7Gfk}mTLhVTIC+zi1Kn()%4LuMdQ#QRw2N5mXsI#b&{q}0eAb54)w$$wD zQwo|kh+4M20ZmMxI|ejO2g$%m2MD@!L@?khaTW@Vy30g8b<^%rswY2`dWBvJ>C5}D zm9NLAOIP6=aFFVdo2?a_1Dcob0lGdwKVS+Epo1hZ-Q;82yfS#PNUeKycocB22jO)A zt=!=wd<@+n<5|zuS6O!h-8qZ&G9yJ1Akb!UvCN=B? z>MWyj*(4wyWAs28{*1G6r?QQ(puspQ#*aLwVDKxpAY$_pO2tK^{p_HN`!VCMTHEHC zTlxZk%Z(t=Vyc}5o*&BhQP1Hnu&fT#z*+9CEj`>(zrHyj*&1%huN8-UQwqq5;YV;HaoDERb=-RZnR!2sP9k zo(B~BUVIy;K*g>EX4guV?F4eCprfAV9jlu8J*)tbcGo#dnX(Q@^Xo*@GDTnL0#AT! zDNq}NP!Z3@MfjLNPTBDi((Y)_roiN7L`HgQF&|E(7BUOv>G{Rbq&pWpn2)td^#WdA zdb8p+QICf&;H9Ob@iBTl{ww9h5?bDbA}%i=Fo(75aK=qAjJFKdTqF@2>q&ra@QuLx zfQb%<1;L=GaZZiT&yO#=&<)Oj&$_ehP*)E}=zinG-c?*E7F+S*_D0rH{%3iB*`A}A zQ<^TH3*}Idfuk&;EX+?}@;yZLf(El=OB+6+(*z@&!4N93at~Vbc;d zb;>nSz-VAC4)`EJN&s_zY9iZnN59bhFx1S2h!C->`uW<|h?=$h3%IU!OmHS>I{XIZ z=yv33ZlGNulW@)J1~Tw2+u*De!UqE>1Czj z_MZcRk|0s>CvXL21~=C7ivr*kb{NvuZWelf$A8LP6G9L3UyF*(X8sKIjv%=u$PWtS z&;01piKtPFv-$IM(N@j2diKr?iGXJqy5AQC3c&-R1a& z>r*vC=+uXc5u1-=Dsc>3id6j5ga-5dI2=0&`aV^BG#80qWZwfP(I99L&K`+2Q?25v z2;us|pco)So*RFH;5dCcEMBx+H;MO8Qy`7 ziQ^)rAxJF|ApvP)G zjS-`Xn*Ew5RHGZo@va2L4tPf_D>F4jxY(EmbkjDpQ9C}}B&|FKgk9MkfjGzf3Ifv7 zsvmF|J({}UdJipaMEN*OKm!_Oj|pglq8j>U7)l_omM>xZ64e_T^XA(Um{%IZ_)EV! zua~!1^lU8mc+au&#>k5L!;K*hIX1-W5_J}?e`7DFVzMIZS{TWJU|?UjP!$yHHPtL? zseD1L`Z@^g*w=P%XsR6XL{K1rt@Y55zgFL2altSF8KZ@0n(dl5lj#B%A=VDU5S)Bj3;D_sn^RGZ*@zcbc-lOzOmZ0Ou+>xNbkb)NY5mrnre zO5^E0!`9-noCm8DP69={GM3OK@SWhT0HO=rXUIa_le57p7yA%cYyNgTbm^!3YC(Qe zK;wNRd3k=$+`%u$g}J}0n#*=o4`RNf#>B6=0a{@60iIv^sRUf@2lm5rk&&B|SCH%C zm|wN#ATFaIyExB2$N386x4}Reznb=+p*Jd8oW1~x0FSbFsNFNpTgg( zMiQgvW`7zTt%0R*RXPxH{81dcs~>kp7U+E3Gxd7Z3b>Mv96o$lEs>0I4K~m)R6`hCc%}3-sCka#4~5585<53C;hyahsK4`U zXGekSOp8-eXKaGH3N9r#AF4UaHeIgb-ks5cS-ASY;v<`V=peOUq}aVV@V}ux+;dy# z{DY+Vv@~6_rR_fwkhu^-sYzupcCAp*iu6K%-KyR?e8^7i%8W(#Ozs`SvxP-5; zjjCKZNYeVkNj8-wTf3ce4B1)3x`>`sHvW(;lz2c zE!S$#*a+gxaow4; zR+KvAl;=q*2uH9zZ9CBc>M`xq_&?h~26Z$1CFer>DZGY-Ni@=4mF5Dt9*;fpf|g_;apc#PC*tQX%ftCKI~F}dy%;RUfu1|k^xU%aiPDN)&D-nnF}#y%Vk)i@pTyAU zbaV%gukzF&pvYVof7ZS-sdh ziY3lHH_5-SUB8e%Nig_3)NkxngiZ4#*LZJPH9JGPYirAyn#v5@yD?gH#J+IaTuA&c zZDNw`({7Ss5*41r&H!zLUU4MMpuu{L)}YZECu{i5@CvslEgG#3caUhbW&w4Un>E;^ zfn%zE&Q$_Wo_38j!%w6Q^fWY=4X=?1!5(sWL4MBirAU=DP-4^=`2L8g0}o;XAIDDS zKD#b`l8dVEpI-J=@CUARek~RGssLMJRDF_wULW)~9IYFBHE7F{k89omB0yQOOr&k9It~grSEP7i9s#I|RBNp=sYl|gKwFeU6 z%s=rpbug4~`p^RY88F7iwnvLG=Ar&@ZBKF$ycjkL^FfLs{)7ZC(ij(F|-nvY698I03Jd`Z$9kR;Xa^^`J5Pnw)CD$ohMK{!LW?zg6cAU71`tvbY z+x7P=;kT#or&Sjv&DAGMH`x+n(wo7WzMv7(_AAMj4)JYFnL>2~lqYWE3Z z?Ww-&@mefid3S4gxIJL&l>c1mGD>ZWpc^;`p6+Sn4S0Hd78PtT31mhLaHOh*d;--U zPsjZSY6%c_bi!8l8OuKD;$7EPZ-70Q?kx4Usz388o-P$*XKEm1vvp5->(V#=L8WpG znEiXKCS`kqOO2i*EwmTUnxXwOtRTugOq>p0fPHG` zKBJj^S$g;gn1|?8N$c^w@zd#@Y$rHdsk+hA@j3eN#IR9P>dX0VYqRv^E-^3&!|pul z@8YDirTPelNQ;w4sb?krl*nMQ_x|u|FnzJJgZw%Z5SdSiEk6R!;2sPsV%HW3I2Py7 zi?@k-B1qUN%fXMqdRY|jj(Y}IDmPPqKMg&$IMLKW8jz0+q4wY?>H<}q(!1|90umvY zii2=Dt)VB48#C$@cUFj!!LYw_OtQZfSTOc{Y_~`WjXsJae7l_6%Z#USTg!L zVmxV5f7qcF$g{<0)6O?w) z;rkg7CJAZc?gR)BsuEvNmNlX)?73~@=`46h9?18M5P1*9a0$TcXbW6dOVhl>mfDyQ z$S7|1Chkh!!UF4|nTR9OTttBL=)YrCaC|VtUhJc`VjIzPXr>3)jwP40@5i^J4ztgJ z?hkm59rMBY%={uMlxm!`tQFPAglTRNz-`o&>k*f`d033M{h}g?pU+VBs~YLCwS=W0 z4gC>nV=!9e$pPx(RSL{TXO=T_0?Y-a`&5IthlmTr48F)rKmpp~=I>~WgjaC^KaQzp zRs+WXl!clo9U%e6VnC_x3|`UjfPJ?DLN zmzf~0l~H#w#FkwmE3sozOpA2OE|Hah&}xyD7?_vq zLEMP^*v@GA@b`#ATQwgL+*3me@3RpJeeQA*<|#ygia?t9KO2XydQ<9WA!ZNrlMqB} z?TBCe9E5pQ8v`NrGZ1PY`$z(UI_iPw))yBI+*Wj%0`3CX2LRmLer8jkE#xOY{L7%P z*v>4uca_ye=gw?VWcxXS`M(5DIeM&cPRM;i;Ft0&QcM(!jzp)=M5_n{bd;^%FUARj zBZZK|o_$u&I^fO52%g6!aCn*Z6`H8zk>5{Gz@4GhTD881ySNijV@cZlVzp{l@qj82TKoySuAY+n1 z0{mV+R)pSP_kAJs9;7awniN&P;9*4lb;yUZ0E(Wz3aBIe35S6=|iZ+I?vT5X*~ zq-?+47&-pay6?$21=y~j*-nHe85g8(So}?PzNIqqok-A?yuPm`4B1go|-`Gan>fp56 z%hyW%M2r4ryz5G^6r$NHk0pOpE&(j9AmEB!TJ;aW(izkx*9Rh&e!2}yL!HS6#S*l8 zOr!{Xr>40d#?C!r&l$#GXY2?-&dnlnj-w&DtVx856~6(^@h#lYr47FY z&GVObsJK-%A0YGJ{E&Im4Fu;>fXwOd&Fz2Su=iK!f&rft%bMxc|!md zucgO}Y3(_N7GkzLrsY9gylv2}04_ERi{E5R?fa3s#`Lpqx01B)6wn5>)`=Kys&hA3tde@3yBs3;O z!K%xxp&zt=7zFpZ(;9Z|w-}iE{$UIpO7ZH>4`bk7ehjP&Q-*3LFZh88v7Q|JI-rANd<7yq--80O3?W5C+Y>f}IW5lpEX+(Q4(y@^i2tJnsw`y5&uL z$rHWpdmkD45HOB(ehI+%bGA=nZ6K}8CKYkVZ^2_ZWAW=n_9OH+{$NwFed|iaeU;Y**4+NNuh9~#& z^0G;KP!9k|h6g2dZ^Ou6Nd>^j`RSGNHZnPRA9CfFBQ*f#Y%21tDfa>MX8@R=6an+6 zUk&+H1j@5W5h(wx+zBB08N_V6VtONhkQWkwmlyJYk{2pXfRba4pIAEKp6mJnN*)O) z`AQo~J`55-J?Np z{7a7n!GrM(SHUypDO$g3YR|sg{6KdJi`x#SNsb48i|&jOvfTdM8Yu%zd^$B1KN=A zfW?Eu(W1ef9|43_A`qq~0}%Goy&nd`LmvRb7ymgBzVZMN-u566u6{HSt`&iB)*I5L z6#*DLsWe-J!30nkwtG0(0XR7Ezr?|Hzr(>r^B%^*Z=#2AaNz?u_~d;Yj8?GuRFEp? z|AK^t{|X7eE+XL@$jQ#SaKI0Qtq%d={D*;Xr%^!wg!8RmJqUzv{~JJ9_b&nAsd3M? z0pTHjAl&&8K=|8xKsfkrHPtLz$IeCn#DEZdFRID>XOf%u*HLoT_+?$#SXYhpBk zT;2{bd3v)Q!hdLgE_FAsW{ScS5G0Di69{vPx0=C$2JHd`cf*?S{XiZ_aWWb~&NpIKc?PhRZJCm}t4v_a~vlFdu zi_@A!8uV88f28XKn}_MX28F#ZL20j{6^itJdCn;yWX~+j1n#`ckbKBCbYl=Zz~ET) zSywzSa!vxF5`rEF!NXDkX#_$E{ZFF1AOlDhVB5uUEk?x5JS=UWS@d*a@jUw!1CGOv zDF&$0x$KAXmBzmn|kPiWgl*-$^J!qNr zC2=Z!+#K~3LuRHLjD^7G3nXGAaThYP2#y41Zc>4&?upOu$2FSnnr zWXin!64jh3x%f;_W~Q^CNR_Sjj;>D)$;@l*}{O z1?g>X3;dVd{Nk*6S~f_UT|BpBiZ@uEnK{*7jI;6PkU6>P%uJ0NMA}$G&dkNRSS|&p z@thLe8M)X{{0jaINVbshOzs(O3s<{n>z65_vrsU?#z$3YJcrcpE4&uTk z=8_V;07r6+q)?6VblyrB%-9Csxuk@8hS10H9nn186KSa@xGrd(AnlAyLU?Cn5pS#l z*;(#%6%-ehV2;3-g{U{Aq7Ge!pQE;fWoBm0o8C`fG9@3|A)sbDc5pKIMf}Qd>NXCQ z%y2)=$%IG~r{r})q>7sWGi!nL((ehf2+2G{+*R4Mu_4sVct!=}n|oc5Vndg?Vali9^bf@C%lez%zz3ur4nFXaS1503zK;uZ)Gv3)Jc zF2*UCyTbYK2)lr=Px_){PS!kSd}=GFh9|WVqJ`+1;DQ+ih4aR`T_sc>q-_X4FCe8f z1tP6W6bFftI01DCehQ+U3!WKOXjhg=OAK>Lv;umJ7&RlhPCls6?anXJ`{eOtF?2Is zK2CqO{S#s&rk}+h`4GVf+!6c%D&~T@M#&_-mibtaL^oenL zYn(nQ&Y*)g;p=#>AmM~gZwdHzj2gKZGW9!hB%YJiDE~nq2MV3lgtI{C+*=@r2wme+ z8mLmqlzB$wa(j*3J;j(Xr(|AAl;aCD$0rMAbq(D+5%Wrz2xWE{m6)Re>Q6H;S(V7a`!E%x-~theW~gq#J6#%urn6D? z$ppu71~#I(>mI6^If|cZeyk28*_9{R_IN4_hGQJc?q);j#%9S&d{pYksUOk9l&wvj zf2!A`r|W}-$YdqnDawsI#wmIU!Ev~bGvL4AP(gCqA)jiey5cDfl7$Tsd)QPQi*Q3^ z9gDFm@Qr=MA)ho(kj&;P6+KxUp2VRXUn?!cf8!D{;zze8M8VV2DmCr}b4~A7*|@#% zR=_;v%2B)nK`_c2-lJR>Du!(@K1#=TY}nPzcdy@>=|#3@6c?_uGfS7pyhyKCeto^7 z$h$dp{&m%CzE4AN4&Nnu^7Wwkf~4DZ*+RJ8;VOgkPPZMIe7DP^S%TWn42EwQ(kQn# zDHe0_*Y8wN!+eq_E>_dgv5T&U1!6F3WLLAOHKu=UJ&W*YEKxqwY91<(W2e6e zgll>$8ZVIak~3h$-D?*}hFAP44}NlVPwz!|a*_g1&h_l`zp;oUPQE8-ov{2NL2Kd? zzo0eo$7gPJbtbv&I)}mPf^<5UImzV$hda1L5;g6Sb57pxJtBH2p)^ATB+8#Nr~Y34 zqdDFL34c0+0pkZ!ToONdgh^yiK-2mId51TAcm$2KjzprObt#$cZ@icu5Vaa1vfYwo zwczR8M{T)}&)+>z=(x=x)_8*<2{fM8l8hH30w;Cfy0Slwn;x@Z1uEZqL0q3Ou=tKcx;`;{*H@@!_k$_VKBapE^-&Ao7X5!G#D4r`s zv)-D+AiIQoKXCAUML<$ZL~jtWiplMw`wxU$<3!OUD7O6myES0xi|r5_P+da4Udx#( zIE%oE19Y3ZAV{B!jfI*+h=p(#%$SvzkCQ;IhGPMvtiYTsV3>r{1q6q{T!6PkfsPiG zm@NkvfxxxRHHh&9S<{iNAiBe5z;=^^AYibrrV$!4Ff_5RZz|m@hPiab=OoSBR=}T- z#I)!Xwm}@8pGvI5{i8q@31U_V%nl^)HSKv0m*9LjBQ56+;4h`8wm}XC{uaip2Y}g! zd?-B5AH{NTomen1%&Wswa4PQ1C9y^v22+Sm#8+pj9_&iY@PqB6K(n)mGE!Y6kgP>@ z^rY~YxsiAh|1nkq%eaF}A$btA@+qLG5QFllsld-K!H+|xzy?q@f+UjRw$z3qBRH@j zV59NWZvGdDXPlsWJ5ymz05k?MIgc@ zPq`tjh3`WoYXu2H$v9d_j^v+$g8<|umHShxs%r5i5Gnd&s5;1?4&$0<7aIb@=)-&$ zDo7Rx!(%&>a5C59Abt=YOz2H`Jv=(dom!5&$gZtAa&6T%st3Y293s*JAyhESP62W_ zotzKCa-3S9M(RapSh&!2X&}9dNW}?w5qpJQR8O`Au+ZVb_d+4*6ZkU;G@p1HnM#y^ z!)*s}XL-dje?lZZid+gqN9GLf#HZlCQn0Z$Z)R4>cLq`&FK3~R>~ta)Gqs|ny?PTK zj!k?f{{)uN+hMuY#|UKi)C~GP5z}^JhB9kFr4r8$Ck`y(yW@Qz9o|Zhl!5S3R3U8- z3#g!=*aAe+?0j)%TX6z^?yZo5LllgX3Zyo=#L4HJI@+-Mn|8xkMR)$JtVbr*k+CV=MlUy$t7a9!r3_BSLXI{+7fJ zq5wC43)qQFPQ%kwT~eIfae}fk+_Keb_Khe>_+q7nSdX^|Z`m z1^ey_#TP8o@!(E~J`#l}HEZwnN>Ke-*uIDnb191y0oTjx zruqtxr{HK$S1Eof-8L2*kskN2?FMW7c;lIK)Vp2Ye7v7@-b95QTM{U9&$Ih(U4I6QO+%?Kedr5M$TL{*P$(>QT^=Qkj9XEA&td@ zwP>X3MM8tQcydU7b^+gs4UwujkhC*(5S`|aZNyWg{=5yv7*Z7Jmaf=dC4mzb>tX)} za#LzCO4zxa4U^zlEOZcJUK7w_zaroc&Y_zjI12ZdvHsjfLGn@*#(8s#o}Lj%Z3N+Y z>k<3-`h0JKfF|HH&r^5;=7i9RTr7JV$0|PY$D73BYU<;`8d&{IQ*{$uy&6xe$EG6X z8x*F31=L?QY5L?zy2;gDNU&Q^FTKR33@$(*BZ@(KAuI+@;d2DZP6R(8Ea!$|3o*Mu z73qt+?)inBGxT!<;-HU%5+U#oPdj|p^ZEp|qcq4EvQXG3{BzeT92? z5q}Jp##hn|(H_RGfiR{(?&EXp2(Jnw0gVdeK8|3O@J5>j$CkMOIKBon`kt6=;!m*U z&tD}oSOQ1aMm7*bQM`xuAp=rXwrArx9Xwz#$j2)93H2WCaduef-CW2gX1b^%c(z{ z5p5+3ImMb+kEVOzjeNASlHNvxVzHu(8NL12SKkBs)ma#xLnaFd=+)8tRlmfXggr>c zKx!B@v6Xc2<6|U>;3ZMmrn#g#hF4)|UP=(8Te%Wuu4)8aa;LTgb!0Gs=VzaOsqTwz zKiI;rOWZH#)pxs2%ose1rE>rqjW-~}{- zHX=seRexgs;bW=(mF-Y`v!tD0l#?AraPbsNiV2hz7ni*s z5B`UWU3eK^MKo_6`l07b?s&S~CvOlZUa|c^D&fV}(!XaL{i%&Ez`*aT)L9)6z!AE|zXT(0JjHV!YQz z|M}%-cl9dx5%8qEeFM_d-*6-<_G(d);#*~gd#o)MsmcqKRKg2Ve>P@(Fj0gXh!SER z<_ExA^Gco5g&^k5$rBWeBiThB@jA&`dF@J`AWpX4w9evoA&@mcgR$NQx^ z<|V4Nbc{eA7RUvHBn+vVh$^J1d^L4C(m2+p)C)wmKo0lG4`bw$9?M2PWKpb;H1FVT z$D&^%powY=-oe1dX2ov)s9r4r*^aN<1z+%a_|@Gj=oi^dIGbr=CnO9cY7Q%ImW4M2 zy^T2L3tYz5NbA;sr^k)+2k{+B-6+|CwE(pxDec)D0Y&0qWEO%VmD=b55|v(mL!N@; zcHRntb}{Evd!Z_B-3^HZ_r{VH>xGV#bNbBPLJ#H43*Hs%epw(khxLJW9p080&xY^n zI)RewTUnj2bB7>E!kSSq*X?H20!o9QV}hUKBf3C#TgJCSr`O0L_Z;kt)JeeYz<$P# z6GA@5)$lF&j|8%gh2;gkJ$=MN1iJmwG!WxtEC|S!O4q`nE_dqpcgDa+DXaQ~{m2^udq6hZ*8V=URqG!WSoR8{{ZN zaOXQz7=H);)cwW5d@mgnh`|{bM}L239DJmjSeckvGcL0jZYDkfH}8IYxZwMa;c(9f zr^4Xx7mg#v6q@$G!bHCiwAhXEj(iTSN;DgPYd}P~5Qo5Rgc@5jH0pvwv7~xPW3Rgr z{r^MU?|;9>)($~!Vn?MbDG3S+bvnHkvP=`Tkfq~>%mg>7Pcpmz{kF;=I%Ae&n%h~7 zCy-_x{l68_Z%lHyA(X)BfQm|YBE%{fEmp{TFyKX9e_L1Sp9&-zl7I>fBP@_hgdS=x zwHOS*(ErO3{lt&F?&5wll1hOEk%I5mRZc}ZyfD~eh&LN8W{crbb(QO3K|t9A#84!a zeE!*|Z3{y3hv_x8+a1;Hkh=gT>;~>79B={4g0EZiB-CWvphW?!V}404f4rj=KvYBuQ`7n+-Zh>&2mj zc$o;jHzKk_N>#*zmkAfX=TH{@S(WWQi?SgJE>`zD8}NFzDR6~Y7X%AJXEGW~4htUz zmcz)ff_8rhCI{@t27_A%6Co&w)|!BF(prr!gBDt;EDpQTfP16=ps)cVKP-B~e?{bU z4-h#4sMAK|K<*!$(SVJ?-Fi1ItA&YBTQaXdwi5^uK#4$|06EgUwfE*gux`=x8E$)F ze!%?^@HK;`Q8dT)m4HbZ#|A?*F7yq7+>!6fPUfSDHPu*558TFA;{pkIlD$rWoQQRN zQWyYO@Zbi_y?C-%M2I88;H(rdZGr(6kMxhG#0=W2eh(~uRo0eq)zNz}3iv0{W$m|9 zw)H-^B(~8*@K`~zMwEiY=;DV(=arc)ePd zSNY_F@maepL=4;ov<_z4+C2}~A~?=LEkdHsWU{DjIV>rO#Tk@c4sjV`z6nDz?^BB+ zCpinjvaE#;&|DDqgM|gg51bW2W1f}&ii7UFk?>G%c=mfLWYF#kh}BbyCQ+$!_l&F} z_YAk97~7p$pJZRi2q+rLb&44>_HIN`a%xu`g^GaZ+p;cD zsGzW=MuJGY^m|;W7$hQy(jh=j)PXq_KOWX}3bKb+Ut3iTShxZ0hiv6TOlM|F+1Lmm z6rtOr>D(%j^z&@QH-g(7`Ue*=InHZ48h8f=x3AQngek<_fGHiiq0|5h+o`be4gm-Z^nn1Cxd{@Xg##I z^-yYDMJ2FoXQ295@iyqZ_cB2~0y1YL&Fl8E1BgTW6tAbJDUZ7kv7bYXWyNTSQ+yG? z4GaW-paww4)qsj*m<2X(UBMnA&YWbn0xOd`A6%2j;Vrs~eK|b{cTwqS`l#X=uqL64 z`~@~Ebs9V^yCE{pyBl5xdcUldFKarq-u8raZB=va4t$k*GG%?p;mUwzzwwOnJ91f5 zm6s~TAJM7!BmO-9IljV90lEwUfKCHoDFv|l% z<5}<&bC1c2>~Ji1V?+3TFPd8&>v_EVHf5$qN?MMdj|Qxv_*g2&1nh2*rYH`v<&9Ba zq9n&S2*{?tkR0T&AS;)HiT4Dwve1H<0j!+tok?9G>Q>`v@SbLafN>sZ2MfCp8Ao_e z#<-))6v!t7=GE;~(b(sU>LimV@WhP7%kqLAfd(L|;zdlrtF{BtWG^3tRV92f+V~w9~ISi zFDoY8F5I4&%uxgQn<)dCw}@;#UFA5AVwHDLEcJ%OnOhVCN`uaLP5CJPpmM=g`IqqZ ze82bMNp>t;+Q&;Fwmf^5caZvX2}G?iH~Bf9C1K4cPd1;dY}vN&+WHqL;;Oa|=^b_T zg~Km`@ITi%^%V#aD0GY6rT7^Z+xTfcWIzr>+WVfq#F=yHT|zfM-@JHN)5^t7N7k@a z=*5A(@GZ{`#fqV{`wP5R5wBQ#4b@V{1~eOvui1L)BHft^XNNSZE)iyk*m%cBE~VC$ zb12&mue+pZ)=YRYQ-eW{uGmOHfOPc%k4uQ$jd$ULUKvF#~i2* zrdIiMcBVu9t{0mNDK%)Cz|Fj$D*t&T@aLBI*J?4<%+!s zD^3zwZcT4A%UMIHo{UbFh>axC^}#qw0=?!yg#{7nWY($xLMtXFralz4I;7NI>NZ7s zv}_MpKCuK&p7A<6l+7fPfyQY9?XdUR`e<5?$1z&?1U<>E5dVgR*lIzp#KZB4dL`~% z)k7f002S8O#3G>2wUx{pLB(155K^GUwz`u+5Tx{Ck|K!%+I8s)2KUs+$OS&@W$Qj2ISj4>>Y1xd`(B_>78Rn$c}*7i5% z?2<4cs2es__O5z2_O_bFAGAsa;Xbwqs1sG)MtQJua~r~bV)UuIkftn)jbPY@4nI)Y z4VQn=CZ{fNe?ygePTK5@+{xmeKD58SYXfo8_HKRW9f#^85Yvp-)kk4qmYmPk57@E9 zxtNvKs~V(Dsh^Y3U7xR6O~lM_euHA1H|sSGgPzAfcqe-0*v_o?qK3y0sqzq0v8!#U zzz*D-KrE}JoP77PU1J`XRPB#9){|nGb;`3Vv&o|PnR8=hMB|z1rvg#W2|b3i#9Sgu z_hw8b&w^7S=Hqdb@VI63)sSBL;_`}fxDx=2C`E`^ZP2W_LM-B0+0;BB-S=KA(`94` ze1fJ`3>8szguQ0e68KNN%EuHUeCtjIe7w^fTQ+{pDhV9M;Iq8-aI@|oaP#c-m8)a3 zmk(7QL#;C=!xwJN$`JXRTX)6}z5?}*1GP_RKOFOAyy=H_(`To`S9L|}`kJeBx7MoF zdAUpA3-EELy$Np9%5)a~%O@+E4VAd@%5 z9I`xd>!tA>?}rvcY<-(%F#f5~d;N|y)I0Xw9sY2;qs3`=*j-MySj%FzxGV->3X)*3 zZ`t$DGK&)}#zeq0_uCyGAdQUB-eP(f4gNN>xbLLk{JWvW@pp(ox#OI}c;oLCgYDXi z9g`Aal4(iue%LnRzo!}0ahrk@K{KdJv>Ho{UH=-ug#%ZQzWhhPgpFDE&AW)6+b-S|9^SKVof0ae|g1CJO5u^@&AYN zia+@OdtPzPy}aW3hqP$%=K^`faRsWb(4=EDWoH|Kx=eKG4NmAuwIn%=`WP{bXjssrv)FLIX!`|EqRYvV4Vix?sg&G^ASv4nPyP@?UExZ)dMkvfPg_CZ|n0{?8| zUZYrmxzxp5A(`G{@qW;@MeXxO26)R2&^>H20&i(9$#{KJ8*y1&_}4$e2Gu(|+hj=0 zc9^u;dM8NG+(xrDDKXoibsP0|W46vkn&Eix@9$6$tZ0ON??LMFzN-CE!HO)2nBS!r zLeh?yU&v1SO@5)WYaqW6Xv*K^7k0guU)UDMzp*^P{_s<9M1&|h*>w(1fuJO6t=qzP z4GAP00+*;}fo16s8yir;L8J%h*D6i`5rvHr5bFjYsM&iqpi*N;a>`DAR#mKXZR1w` zg-RH5?GKefUlz#8L@?jKU2H6b&WX~SMW>n%EyfTM2%@;Lq82Vi6rk`5z9a5|wV|6T zAq=SL+;&j%^NP^Td%3Y(fOy0djA_g9YQBOO>qigbVSE%w-o*H(`C(#sech?1oy(fH zlwvcV4aK2w1m4HL00U@fPs2<^Ae;>NO`rnA%A02>ml!fah4^#(#rn$?%OU*%2o{P7 zS-zz8+;I@6HEqW2*opR4cpUB(0UJoup%Vdu333l?o23430X$4BUhzq$W00IaBaMv( z>7Q*mOVZ$iVqYOEjzOs5X;jH}WJ!N4h!SE!=pNKceobj2(XyIOP3g#wl0dLwN)WN( zFgWM@N}1*mVi3On*_f#)V1u4x--_kZ37n zCqc*tkkxnyuIFL^)vseWfx8cMj97v{fyY&ey9?whLB2F7kU!LP2%kWE@mw*T5X^ip zuBJ}{g!xti*?ZVPw@Ur;FFu}E*?$2Z7!-rR{nGoyAVu7_^!c`^Mrxg(Nr;E_u-_x0 zqD6|mbT#!nH5*UHP+V|+3G&k^VLeb#RFOvrPHwXHwoQhYa?!rvEKZoVH zc{#YK(20A=6YRyscIVWzWgUtVT#yhAp>M7P7!6w!6EkU$_w{abOC)0lq{&b31I=O( zJ(Y|>k66&>nOs+K@YG}sM|5SMJm{kZ^GC9de;jA=Gf@Iw#f7j7Sdys&I&8Us{^BFP zaIU0+J+CqUkN~wxZ3$hm5(WkVP6$LVkRNJ)6P~*ZbaToCs!JPvT>1+?km`Yxo!8ph zBsh~V1f*gRIyEH3-$=ES6I-(cN=H3Lx(g?PW{p^P0zbz;p^)Jx`SElw0bOQ0DJsB~ zNc{xnkl5H(o(@CHSQ>4seTg^GHC#1*i~{i#6e;L@gU%zXZ`66_xJPSyrgVuSRUn>@YIHXLOSgE99OTSmX#?&Ye*G~qG)MTzA6&h?gempj0k3c(9 zyI}`f68#)H2@Qx%HD2Ha*q#kR6MTa*QIc;|CNMe6Av`lJs`3S*W@U7WkBr34qVOc8 zj5zb0qJinDyyzk5QHrz9o>=K{0K2!}hl&SoAr_ay>)u1swDh#nM5)DjO?oK3$T?IX zhB?0W=Hi5$?GV$trFq>RtYMxYs@HK`N&}ZvyUf1WQ^lw7yKxFXEV%Lf1u<8)YJc?8 z@U7RUeV+a*a6C)`R`5A|Y>T9aOP}MWDdiEIqPmUGQ>~P=HV#rQ=#6+wBPq#7)z|1s z){d6ZH9M;D%Tj-qt87;!CY;blN?ufr}#w$AD8TgH6S;WZlVjw^};h zCKR0QB1_ipCpPb;dIv$VNo(Etmc2vXANU4wp~^;5mo6TmdR2c3wO%V=xIzuY7!Ri! z6oaUj7w17V$uiYJRx>pdGc*lm!EL_KGXk1Of+|@-FN_|CLtgGjtXK&JqPhk zah%eMlLQ4X6BBGtorw8Wu|K_BdZxDZ#IeEOO#M8KCMr%)vsmj?Q1IqaY03<$0N#D; zaD^bbfN300w4Bj)M%C_l$}_OzRP!F?6+DZP!xeBFHILwu59F%5Dn5=*#S==;p{6g0 zysLxik>Tp7`i9UyUz6{EU~h+NDRKS+-RMIO&no3Y<1v5mSZN#ql-)$2gjj5R(&`9bvNm^t<}ez8uwk&*IqXPUR1Z(bg2LA4lE zJu8;d36g8PC&t4&aVG^wp4`{83GYW65fJmq@+7uZCeL)^C9-11@Oa(V{{(im)g1$fz8p#ilf;77E46{ylnj4#yU1*>~ zvcP@>vz6lbv1y-TqmJfZJ90$2z7E8Z+JC?m;aKDOJ$yO{v8zCS&U`B29ByqpsXyyW zNg)nLEpN|9vu|ck_8!dn1q$)N^bNU1A=aLScO?f;Fn)szYMc2hogSJ`|dk3||?finA1^?L>)Crk| z@Mn?YI?u|C^gDTG&7pDZ7PQ-n|>KZ?DG&a$m+XkoD`)FQ43VFN|x@2Nmy$VO&&P%*(h_{5Dx2iObd`q>{Jqm@|ClUhoHe zyw4`44E(0%!^;bA%1<%RYljEE47Wc9-#%_8GBd60 z?K@WZShGG_{bNv2%uw@Jw}=zBWB&wS+yC=VXyon7)<)^L+f*Ncu-v}WzxN{#ANS54 z_QHNAB>uC9>TLBJWCEOjxR4a*?b-dKeov0#_rmQnenXBvs?jZ5XLT8zx+H_ik_c)J zYht$9-~@zZt?BUyO4+khwW%X%mLf&dJ?76J5LPICFglDzmu*7(hZhL$84A@(@jz84>MaHgO%L|D_4nNN zKu4JM(9iG?d0zFq_0eXG6VT6m!o>ritxJU!VWT>?8RK%~0kLH~6vQVc>K~=8TNeyI zJUzJo6H7kcKe25^NK&5rpP?lF+geMI{3TkzYp8{Rgy^&fU!2uwH)-9lE}VLoo=h@k zoBlg1LTa@_BEtWUv@YCXup~O|Ml%R+-6s5v++Y_|6r8s4kGf#^*MrVrgqg`hQcGA4 zI(XNbA6gFosoV>wht+?Oi+%Z@Syb8ko3Q`9J*!$N$JjZCb@M+ z5CR&lCWG0o1A!=B^r-b9N^eb8gFy%5wSe^Y{_bJ5>a7;`Ulm&ZGv#e?+tmTYsRhXR zsH?+z(j0F{!XFZ*61;J2+j2mE6ya?+EC#p5Y=;_{>_k15cCb3McD==u~#}P57MC6UH4?S zC!|KB<$rB4*t1;*uw=qs0XAr;1$RL`oWtx+#EZK>yjl3uSrXwiVNNpOJXi~}>wDdu zvzlPHw;HVvUmGfZw^i&4c&G(*8@7tQuvM_)R)MSTUK_&N=Buzl8j`&4wo%u+?p_+= zxwRqYcsTVy)t~O+j&?kc2)?`cs%`McfYhmo_(q&s* zq|0jmZ*3K%Ne`=G$OA`*golp~=Ku2OQ2x--VS#^)fxqIu?3%6D*)2vr^u$}U6SK1& zU}MkDPJ-3&$V-C-1{vnWB%Rei$bjY0`+?=4*TW&_U*9TzyBwmUi_$i0`@)- z!&^X6aCe`$zZi5N)dw^7zq(QUUlsW}Gh|3T;@sd}C)ewe#47_u1_f5buw?tw|1(#H z_Nj$#d$Bt$H#>W*+gSizCD9*6pEQr2R^Z60FA>`H zWhs=)PU>xOgFhn)UVM|m3TFljtO~m`$*y&~po9}fhos4oZTyesT6)OS`gi795e%fX z`mMI#N)bNgAv7GwQL2;;L6APQ6RtNgVK>Cc+dPAZE3}j%k5gRKGnO1;>V1M($ z?bo)i1YtT*lrVZ&hC9iwtv>++Gfek@7^;)U#Ua=nE^V5BUGL!5|J_mNhR~)V$#kDssr+ zVLRR1X*<((+D>nP1gvd!x=hD*TL14&z^%^r%}l@kpFWRIL{LC-a?W{w?}nafTB`CD zmPnObt4?~NMA;%FWc|@v1o2}Q)Z8cO@XE!u1rfm(B}7huUP8Qs|B~Qac1#TUfo4^X z;S=!b5ccp9%+&9D<*P)dmf2EVs8Ydxf$BE!iq@Cu2?hxlBSf+y$`^=64-$$Eo^=iT zPtq~$gYK{Bw?d?Q2@Bca6xOfupRV+s-s3xbL5%uVqs|;f50ahgjil5XS{J4kchUEo!J>h3psOmpqa}DI&0IB zqI?-hOq#%>noE?gpn+ztI#lc&Td7*Y5tT&v`=I{ie_w67IlAo;>1~qJc9K|tEFq%80haS&{uV3 zyZUU%GJm-MT2!-$a%^AqQ_6-||8urEX z4BLX7)dtUVzU`~%G4N}9WA>{2D~>cuwx4ogD7)4hz5>k2K>C!Z_*rAZQ)Wt}wA~&W zJ;0OU3a<|to>?H#pqdw`kv&`ZoM51l>Q~img+ryvZjF^keM?vMa?Qdp%4Ks%B;x2C zWB}4(&iV9_Su?_HGcf>6&d%(W1P-k?%|Hgj$%eh>G(Vy#OkceOVP=R)Tb!aNVvEnjE_0yuCW+if_#BbVDsB{X_>b}5`NN|@2lz>JOs%>DJHE6V?ZZ}Gk@r!5 z7ALW|PfLsdJ!k!#Ik#E;H)}uj6N-T9n#M5x%D8!bC$XPPERB#<+D!&ZAZ8rZ^m8d7 zGuXb-`6G8um`^(kJ4)3t?>^dBOTRjl1`gwG+oe6a8QT6xwJ%V z^$L5H&GHD^cfHzf;SwJ^Qz~xGvn8a+;vo1&OtHvpMUulygwpi_avQdCTD(b!rt$pq*$N`K+lKM*Cr!K&aR%fy)(%mT0b$OJ3#~?Dlj~LTV`$pX9#<4xY~-dLOFqGt%z|J(+pY7^CuIboj4h|W)-BW6u^O2Io5)ij#MQL5wr zAS%y$BQL5~^RbjDQAjA2qLk|MB+*0R^r9r~42gF{P@@1=ScXg_og2&KXv|AeWg~oW zx-qn);1`Aq?NI(#R=h`_1j2PlxB_Q!{W)rmSuQX19oZ>#nxQh};s}d0 z_1$$6m#+5qJwZwmUT{v}s(oQogoVPZJ~BnKl5U3vq=A1;b3%Vp@-!@8DVWriOJlO; zA&n!ZLg)yF^(kl&z<)-|XiRihdZeTX0SunRCBj5qo5UBqq=ehe$*z5UQ*!PR zgY|I*P*k6HpL(a2)8?=z+by>AY~*vgZ0V*C70xtAa(2>Ry51L4qv;kGT9X-7ySEZg zTivp=!hsG?ayq4ofS)z(6DHr*=k$F7RENQVct3rrSrWCUyVCVG z3#M>RXa%7lOqVCye%;JPfuYE6hqJR?4u{QPG#eZiBqOIe&322?VRO)B_unqk(S~Wl zGauw@uq0aC-Yd+;G;lh18sGop5u7tPo;N0@rkjzt;rYeTC5c}Thl3d@38v(NF`KKK zmV@$lvqK( z#fc39NfG+=6!14Gc9X+mhp0FOT=cJ55hRtH_#2JkTqc_-Io%1`KiOi@nk$cR|x)2+iF1JHZ!rFuB-ZU3#QZVNh?er|a!DqZ8E% zj`TGAnB~}ye-*xv)IY!7?ZK96uqE4F;GG>Vm&KTBHbTsl?y%71_q$C7)E+1o$9*!e zJ=~%GfglI>hyP@IxJ&(WFTgM*BAg1aE&aX#BMeKzY=ryCSg`VoCxdHZM4NeI|8LgB zucL0-8&X|q*>)!=-DD|g&1}lX_TZvn;VvVh?QCY~@Us6q<_3DF|Ae_AzjP!8shhF? z->92z_fR(pupq%7Ax%cNSAjzC%RHxaTqP%0!i|FvZ-`6Jo<*5EvO@DBeTTPzUcvlH z$~Z2spgG;7edX*N-s)grP{C&U{LT_ z*t>8{p;L+?E;~w>3Zo^b5_?VES}D;%rJD=Ks6c`>Q7C~%Q+5?;RIjy{7ecBoRhlC9 zTZ(g{gA2FPKZ$aCl+J!}CwX#Vfu@Ih5Cw$@X!v0bcyF`mU z&kcvDTH_wizO7Z&DII(kGohEzTm81&w_|zlY=2dq_ME8fqMpu%cEp&JAB9#H=ZwUD z3mncs=Q{6y?xMBJ^M9s8MOnGg(<-=vwfDW@bAV44*q^ zxa$#HG;)4V3O^!W$hA9^j>wxeHP1G~I*=^p6n$GVNlDRacp=J#M}_>584Im>d600b zl_;c{Fo}BFMPXWv))2_%6KFCz&S^nUE{2nHLzRKNb_Zv~Seo(CJ~WCRB8W1b%Mn?Q zi-KV25JG!_OnUN3LBr7AH91V;keHL9XzI{YqYi9aI!EX!+bDN8W#h?Z4eM91)7)ye ztY%#eu|KGwGeOCCTlHk{Uw*U3Kng^;wJ8FnW*eEnpCNc=68ZR=L^+Zd=CI0E^JXDg zeyEhnl8+d!nN!)mv6Up>k;d6Y#h>Y0_I~gaZE!EsT$ME*tE7LDs2%uJwAa1NNTQ=1 zO3E?HE@Y46#dy}uxLXo)O&Lcjzh!7Hdxrbb(@G5aT$P0!3QWxt$HonB>qLr*69aX` zkj-_{9uw8wa}jm2m@(_TjF$h7S5!|f`rH{qwy`_wm>t}jdy~!vjttFDGQy7r=~r7$ zQ@W=q`9{lm>g&SNG~Gn<1H+p+WCw3N=@T}yos|B7(}iuX$#A!aN3Jrqj&?5ExvOts zyb$Y76ZD0>>XdzIX^+ZK?zQN4y1^|@uY^MfvB(bF9LF@aljg5N38(hS5zex{rU+T| ztBweXSlyhQ2eT8qQ1h(P7YKmwcgXpjV9@ULD&~4B>Tdp2_vBA?%D-1v)OFbIBUa4| z#9WVLGoqd-Do1dnF5(SlzO&z&Xt@kIx~?Y)b^Nt1^waG3>ttSzkOKQ61p2m0kyEE` zvG!u-6{}r)O1(DoQ?6$X5hK=e%lTOfiG}Fy2`AmT7OI?l3Q;qi<>HTo+Tk+F&Y!5R zXXe)sELJgWY`8OVD0;i#I@0y5iJ`IBEjJVm@N^O7JF{zOw4mZ!R$Gd8;#IsUx?pNG zS(Y$QyQp|))(#nLs7^1Vyk7Kd+@o>T z(KQWGZ&Ra>gwrRBQN1Rd*M2W+JXxZBuJ{GG*v`btDfN-C`p8G%+u%;x-W@auD`+>} zKu;GxqRp~)@g=@WQhnrA?LR5uow~z9wqWBXd$z<~LmXR4-+FRR7Ybj+MmEKZ;GOmK zCsu$*sT;oUtz!5o%CbA-*C-LV1$%4B2kuGq4LU0RBapup=)2W#b*;VpfW$GfZ_{E~ z_WR8uiSf$M6(0ILbTFMHsVm}VM_=_T_l#ge^K-$R(m^Ip z(@1RlHvz51#G~{Zdr+vMIU6 zyoy)6cuaw`q{An6Phauj&@YZ;EpCWy#v!2goD>m?aS&@d*T@737 zZSj!%AN}6ouJ1nWPA{r2mJMUXQ1Nrc^Mo&AxrH%Z1dj0bON5X9UX)Lf`VOLd2oI`1 zCVY|rPw$>mwdsm+b8-iSvA2Ac@TTL56SOZCuV%Zly`!slJG5^W?%aKlJ`kTrqlvFx z_Iz!~pS2!;Vme9lE7D~R=QkMiC25(tUxyn(9Vh)^^Z3mJ+dbe=)wdnC{K82Gx zXlWK6GLk&xs~;D2$E=@wQWSa$cf9o>VL9VlduWs9R8d>@pcpZo$#H7b zeIMk(>wY7oa#M(r@8lt$w|bY0!`)89le(6fT#V-k7tYD!zHPQ$saLSArMuS!>Fz}? z&_51OORg9CZ(cHX|`B?=D2Uwz~|J%5s9`&n}GfARMnegHMg{u*`pcA zY!?a#Y0hE1zl3SLsEY_W>kHVkgm!fGZF3gg$2mDUE}Lg)7ol9(A>BhdaKpf&dr*v0 zRqWpedlvK{o;HLZ;%8>f@wR?{{?Zz)x8&4r?=BcS);ImcC3k%ZS|GT??#Sl*OId|MxcyOYRPIx`^svCbyOy6tPm`< z$~s}0Z`pP_jX|2_ZYkV6b_w<~58JmG=l1HoNEc|>y`8pGK}Qp`f^oYz`QIWZAY(c? z*-Pqf-24u|wyclt)N`cTsh+srqgC^<1=sdwC)rIQEL)2`St)i;j*!z;VKp#%ROB@M(Q?IHWFn^j{+ z&ac@g-dO*mD69Ki@%oLMKc`;qlbZS7_hDS>N>im&T+5{?9{+Q4Ej~mp==Jz*{y03~ z7ku&3mMELwcV>#&SQSzn7HR)ZcDKLzgQxV0E&@sKum2R;l zJCjjCl=5GVjIw6U&C7SvF-jxmlfN0^WWlT`-D$+2C?yrHLP_tN<}jHYzZ@Z=*vtrW zAu$zmW6;t~gwt)Uf=MzKr5o>|82;r9@gBq2t&!2RAmwC8OvVf`HSG>gx_M0)_|3A^ z#ALct4*7Y(`(@Q7H&7GTRZxpKf#6 zrP#e}8rCw~riZHDU~)mQV9Negivel>*dBfZAAs;>2RnobDMqI;MH(l=kj#Eio+xjSRoA0bnf{Qd1={%dg`fr#ADC#$>bU&S3uLy&*_9Nz9fxxnSkbLz@}gOZpn5aKhL{Z-oc((AH(({C zndGV9e1FY)ka|;oBY8q-b~4m!X1j@g+rn%%Ah9(YPQVn%kp9K?kd9|U8kz+z5A$zl z-@%2Ro^CPz`)ZXNkhARv|7Z;u2%FUjQ-haDV=FI<`YC>&? z(U^WG)AVn|vvx!L&6TQ6n9558%Zd`;>SuzXalz=KhJ!8kpwa_5bjUT8`raeDAsF4i zPpbEjd_1R4_yW0XzOwzGcLIX#u$iE4r2f;T7dTbuQOR+F>Mm;GBAG*b&@ZTxH24)& zfQW)wBps1FRLE`PYV2y!Xcrr}zI_3qs}XGS0? zp4;n*QcQDB&yC|+5gpf>CUGIsl+)9fwiY{Zvh18ZQPqdbq9;^f&5*zcR?IpQ)e>wx zdt6iXkZ zhv|4BR?Zs@yr>)`cQ|vViy?#6GYD8COdi&N?2-cfCwhijr;tS6C`(B+iewZqiy@E5 zoC|VAw2JXgo(@y-3wTUDeP;^M?asxcCpyH07o^2x;p7U~hYjdT8%JEC>hH{n!U8cT- ztTI^NXg{(-l;b!pER}(-ie9e$h7Rb9AFbwqEO*v?wTht&ZPrj;t6ea8p;oI|*RAOPNVGuz$5~lPx_v z)6+^(wi%)RbRCW5w4^L%4EM7pSy+fgRzZh}$|vRdv-9Ru4))ArLzzPxJ^7($j!T(z zo-=fY&{YP0nEu211v$*=Xh&M2?x~IA2a%N8Ha3~fF{@trk|(?6s*3sxn|m-s?senUllL~dadXd;Fl_^^)wwggx6{fg_2~?E#u)3JTTiD`A zejE?a3qKxQ$ZCmEdQNL$TRjMdkZAegZ)d{b#3Gzs~BQdoIVZCJ9ZH_iIZp5 zD{}b2$W7(jR_a@`55`COd>qo+$_{F~h460)JPehZvU*il;`F2`5uArgOZpi5vRC%3 zkg3zqav8`6+AS_T%gr2LPe+tJAe@g&Q**DPH)Cs~;`=N3f`}rRImbPJz&IvZccpU= zxhrqhjGTFddWMjAD<_KG~Fa9(z=G6zwB<%b#KzFFc&0UMvj8X3y@C zfzV?|gUx!O4c~a=kkqYQ{+Xn>mD=9N{HKOYs0SH)Zr({6CNz36y`#`-wyG0^%z>Rb5m{W(vh}nqS6vJoJ zVQ`hXKy@tUT%>@`qAqqR?Wjzdh=t_n+s?x>#sXTx==5TE2RVeC1$_&-C$U|h-?N06gi6Mk#y{>3_jIP4TN+afCQh90bj_g?sNTq? z^rKutO}N|?hkMq!nhr8uL3cXB(~{|)EL9#C)Zl-VMD#UD+yga_QbP+}K>?jOF;7a! zq?6bTcD46`ir7DSestepXL$;1{#0Ybf0~^_4|1Dq`^1n3=xlGq1p9*8_ETci%4uQvbOL& z8A57xyZCjAK$u+IvochJXeM@SytoG8kRSkH@kK=wGH`>`geXsC$7m!b_dwD5!~({@ zLZ3^v#C^n>6oFv7qOS!^sVk1hW8S?~0oR(pnD!@IhF)M!S7^YkNl}iwceMhS)^M)O z@fRFiPhjiYqZ_SLqEj~B9|E`VQFtSDG9^ej$V7CbIZfZfFu`|mxxc*Hzp}hI1t#EC z=vAsCA?;v%Y`k>Ax6C84su#BSS03H9PwR5ogaiZLeqtUT4n0=!>FPJs`WSi4x!vckclP3a*8X_79{T*lT)kqW zX;Syo*NG)JN^FsecaQlyYj*3{o+B>e4~8--!*5$69?nW~O8;ih^23FzzPR3MrAM3e zed6Y%W7nB|=mokyZk^|GLx+*+Bf^rpT_+noU1`9{w%4#fFro|G2CH zQP?J2#_ogzzxya`VTh1R+ja|HgM*ttKnApEQp!N!`s-hIq48LYN?bP}gu*W1TUAYM zQNb&})Rz`enMsIZG-$Ig0y-~3(cP8pi54a=QPagjKMJB!RCZ9D+v_jC8ZpdbjaLF)L14sQ#8vSC zJ0DxsA^)?LKqo<@hCo%s$I=`X1W$hV5nK$|&#)(M5|Z3)Xjd5!9ea{4g&Q=0z@q42 zWzc93{f{VH310F!)Rm^OenWOwz^_5M@a#vpaw34le4ThL}Tm6b(S@ho#ZUGDC+^{ z&}tf~yb?$qr=K@>(5afjjaelwo2B%I5?UKi*kwM8+Ka;S0v@Ak^)vKNF%;RM|+EMP~|=}O=U{{qyGL%;CeBz6+zrhvhgjbKtJVO`Hv5x6@^jf!x-UI4yl;TY<5)yXeDonR-t3 zXhlF+$WCJFPkTOwK{R07c9(euyEB`_NR{gleOfrL@=fO0IgwcjWAtuKhS149Bb3jd zHfuh_S=J>?*=p?ra^9Y2qt95E)C?5EzMy*H3oNX1;ZJm%6ha=oOS&<6iBFg&D%|c| zH6w;BQLH?N>l1F@N1tO|ELHiQb~lu-0I1I`EfbE_hEz*hE{Hy(quf3^S9zuKEJTyqpG4U|z2vW6@-->1%;UCZ zJ!ETH_&IboWx|WXQyQL*i}@s?;cOM4zOVY3#^q<|7wY4*8h5WNdp7&4_MyrS%}ttF z^0STW%lRn&CO1{nwwd8C-p{o~W`@VphV2W^oNptj(Jr_2>>mVF%Jsm1&h|O~G3g-) zLTjN8?;yo|dw!f;nhtP}RR5D~qsQnonL^>a^f32NMd2CW(sM$T_C4xV`pTAKh9Syz zl^MTKjD<;xv2-)YAjfoWE+^kNNC~DK#qBY;eHHyBK$K4j66KjMDwgfMcHYeyYvheL zpSJgEl+U*6nsZ|Te`~#LmJw8Z4QS^kN7O)^rbuGAlB0Vt3w_{?Oj#9 zw-5Pl32Jsiuq-woZL#y`&qvW25*21Px5b9e$#EnhL^nxj-%^iB%dEuQnNxLAoi8Wv zhWZCUf2gl9%9DnDfj$OY;jvo%2df${wONVd1~TP_qC?oE8_pHgpYhPnTskLjg*uCE z2Yn^SgYiT0@zTMosz0~Pw`)IUi9)9cjQAQ33%-i=0ies!5qy=LN>iHNs#}vrQ85Yi zZM%IX2WflyP@sxna64&Cd3067>Y|2cHUI`-ROMf`6$6KhD&PyKzyUM_D#LjuXrx0$ zs?UYkHKr|2V67HYl7yg0TS^j{L(8R@1f1-wOvqiFq8Fbzh!yJ7RC^QxCVW;n`bt^(jrV2?a2+V!UwgPnsouz|N$}@W8Aq?KM+Vn(=aYj=9 zWRq5ln@sT95LDjN^Y}4V16)C|2I+B7>+SiF`mk@G6Uu0;ySK7wEW)w|9M%_c3wpJ1 zDAyuNL-p}`>X?-c&25jlb6k20*P44EWFB%ZkhI5z%cs%|%5CH#$Q&90U2*Q*IdS$P zMxz%AVM`*U!r9A?l0Fs@3XA zG8B%u_g3|!!9ACrZVu2D(%+3AS2gEIz|LonAmO~}f%rCN|5?2M7ldIUGLEnK_| zdlwf%Z0g75c#-F`R~Z`5hcG=U4QRE=V8Kc?ArMPnS$`=WqjgzN2DRtufm!C>8O$)HEv#(><}R3{;7X3Yn06$|T#n}; z7p`s}z+&wClILZ)gvDyZI!L<9unvWa!Y+l~rE(qw+p|vzqm>|hu!Xbl!-TVfJyF=@ zw&{h

-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

8p}5yH$Q(oEs@?wM%wG-rdkJ$I>3q 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 Date: Wed, 10 Jun 2020 16:04:14 +0800 Subject: [PATCH 02/87] =?UTF-8?q?=E4=BF=AE=E6=94=B9chain=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/issues_controller.rb | 147 ++++++++++-------- app/views/issues/edit.json.jbuilder | 2 + app/views/issues/show.json.jbuilder | 2 +- ...71625_remove_issues_lock_version_column.rb | 5 + dump.rdb | Bin 589 -> 662 bytes 5 files changed, 94 insertions(+), 62 deletions(-) create mode 100644 db/migrate/20200610071625_remove_issues_lock_version_column.rb diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 174c6b17b..e15256d31 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -7,6 +7,7 @@ class IssuesController < ApplicationController before_action :set_issue, only: [:edit, :update, :destroy, :show, :copy, :close_issue, :lock_issue] before_action :get_branches, only: [:new, :edit] + before_action :check_token_enough, only: [:create, :update] include ApplicationHelper include TagChosenHelper @@ -105,20 +106,6 @@ class IssuesController < ApplicationController elsif params[:subject].to_s.size > 255 normal_status(-1, "标题不能超过255个字符") else - if params[:issue_type].to_s == "2" - return normal_status(-1, "悬赏的奖金必须大于0") if params[:token].to_i == 0 - query_params = { - type: "query", - chain_params: { - reponame: @project.try(:identifier), - username: current_user.try(:login) - } - } - response = Gitea::Chain::ChainGetService.new(query_params).call - return normal_status(-1, "获取token失败,请稍后重试") if response.status != 200 - return normal_status(-1, "您的token值不足") if JSON.parse(response.body)["balance"].to_i < params[:token].to_i - end - issue_params = issue_send_params(params) @issue = Issue.new(issue_params) @@ -171,12 +158,13 @@ class IssuesController < ApplicationController def edit # @all_branches = get_branches # @issue_chosen = issue_left_chosen(@project, @issue.id) + @cannot_edit_tags = @issue.issue_type=="2" && @issue.status_id == 5 #悬赏任务已解决且关闭的状态下,不能修改 @issue_attachments = @issue.attachments end def update - issue_params = issue_send_params(params).except(:issue_classify, :author_id, :project_id) - return normal_status(-1, "您没有权限修改token") if @issue.will_save_change_to_token? && @issue.user_id != current_user&.id + last_token = @issue.token + last_status_id = @issue.status_id if params[:issue_tag_ids].present? && !@issue&.issue_tags_relates.where(issue_tag_id: params[:issue_tag_ids]).exists? @issue&.issue_tags_relates&.destroy_all params[:issue_tag_ids].each do |tag| @@ -184,50 +172,61 @@ class IssuesController < ApplicationController end end - if @issue.update_attributes(issue_params) - issue_files = params[:attachment_ids] - change_files = false - issue_file_ids = [] + issue_files = params[:attachment_ids] + change_files = false + issue_file_ids = [] - if issue_files.present? - change_files = true - issue_files.each do |id| - attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id) - unless attachment.blank? - attachment.container = @issue - attachment.author_id = current_user.id - attachment.description = "" - attachment.save - end + if issue_files.present? + change_files = true + issue_files.each do |id| + attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id) + unless attachment.blank? + attachment.container = @issue + attachment.author_id = current_user.id + attachment.description = "" + attachment.save end end - - if params[:status_id].to_i == 5 - @issue.issue_times.update_all(end_time: Time.now) - @issue.update_closed_issues_count_in_project! - if @issue.issue_type.to_s == "2" && @issue.saved_change_to_attribute("status_id") - if @issue.status_id_was == 3 - post_to_chain("add", @issue.token, @issue.get_assign_user.try(:login)) - else - post_to_chain("add", @issue.token, @issue.user.try(:login)) - end - end - end - - if @issue.issue_type.to_s == "2" && ![3,5].include?(@issue.status_id) && @issue.saved_change_to_attribute("token") - #表示修改token值 - last_token = @issue.token_was - change_token = last_token - @issue.token - change_type = change_token > 0 ? "add" : "minus" - post_to_chain(change_type, change_token.abs, current_user.try(:login)) - end - - @issue.create_journal_detail(change_files, issue_files, issue_file_ids, current_user&.id) - normal_status(0, "更新成功") - else - normal_status(-1, "更新失败") end + if @issue.issue_type.to_s == "2" && @issue.status_id == 5 #已关闭的情况下,只能更新标题和内容,附件 + new_issue_params = { + subject: params[:subject], + description: params[:description], + } + if @issue.update_attributes(new_issue_params) + normal_status(0, "更新成功") + else + normal_status(-1, "更新失败") + end + else + issue_params = issue_send_params(params).except(:issue_classify, :author_id, :project_id) + + if @issue.update_attributes(issue_params) + if params[:status_id].to_i == 5 #任务由非关闭状态到关闭状态时 + @issue.issue_times.update_all(end_time: Time.now) + @issue.update_closed_issues_count_in_project! + if @issue.issue_type.to_s == "2" && last_status_id != 5 + if @issue.assigned_to_id.present? && last_status_id == 3 #只有当用户完成100%时,才给token + post_to_chain("add", @issue.token, @issue.get_assign_user.try(:login)) + else + post_to_chain("add", @issue.token, @issue.user.try(:login)) + end + end + end + + if @issue.issue_type.to_s == "2" && @issue.status_id != 5 && @issue.saved_change_to_attribute("token") + #表示修改token值 + change_token = last_token - @issue.token + change_type = change_token > 0 ? "add" : "minus" + post_to_chain(change_type, change_token.abs, current_user.try(:login)) + end + @issue.create_journal_detail(change_files, issue_files, issue_file_ids, current_user&.id) + normal_status(0, "更新成功") + else + normal_status(-1, "更新失败") + end + end end def show @@ -247,15 +246,25 @@ class IssuesController < ApplicationController end def destroy - if @issue.destroy - if @issue.issue_type == "2" && @issue.status_id != 5 - post_to_chain("add", @issue.token, current_user.try(:login)) + begin + issue_type = @issue.issue_type + status_id = @issue.status_id + token = @issue.token + login = @issue.user.try(:login) + if @issue.destroy + if issue_type == "2" && status_id != 5 + post_to_chain("add", token, login) + end + normal_status(0, "删除成功") + else + normal_status(-1, "删除失败") end - - normal_status(0, "删除成功") - else + rescue => exception + Rails.logger.info("#########_______exception.message_________##########{exception.message}") normal_status(-1, "删除失败") + else end + end def clean @@ -470,4 +479,20 @@ class IssuesController < ApplicationController } PostChainJob.perform_later(change_params) end + + def check_token_enough + if params[:issue_type].to_s == "2" + return normal_status(-1, "悬赏的奖金必须大于0") if params[:token].to_i == 0 + query_params = { + type: "query", + chain_params: { + reponame: @project.try(:identifier), + username: current_user.try(:login) + } + } + response = Gitea::Chain::ChainGetService.new(query_params).call + return normal_status(-1, "获取token失败,请稍后重试") if response.status != 200 + return normal_status(-1, "您的token值不足") if JSON.parse(response.body)["balance"].to_i < params[:token].to_i + end + end end diff --git a/app/views/issues/edit.json.jbuilder b/app/views/issues/edit.json.jbuilder index 382dab1ba..eae63c3c7 100644 --- a/app/views/issues/edit.json.jbuilder +++ b/app/views/issues/edit.json.jbuilder @@ -3,6 +3,8 @@ json.extract! @issue, :id,:subject,:description,:is_private,:assigned_to_id,:tra :start_date,:due_date,:estimated_hours, :issue_type, :token,:issue_classify, :branch_name json.done_ratio @issue.done_ratio.to_s + "%" json.issue_tags @issue.get_issue_tags +json.cannot_edit_tags @cannot_edit_tags +json.issue_current_user @issue.author_id == current_user.try(:id) # json.issue_chosen @issue_chosen # json.branches @all_branches json.attachments do diff --git a/app/views/issues/show.json.jbuilder b/app/views/issues/show.json.jbuilder index 156031f71..be6de14e0 100644 --- a/app/views/issues/show.json.jbuilder +++ b/app/views/issues/show.json.jbuilder @@ -1,5 +1,5 @@ json.partial! "commons/success" -json.extract! @issue, :id,:subject,:is_lock,:description,:is_private, :start_date,:due_date,:estimated_hours +json.extract! @issue, :id,:subject,:is_lock,:description,:is_private, :start_date,:due_date,:estimated_hours, :status_id json.user_permission @user_permission json.closed_on @issue.closed_on.present? ? format_time(@issue.closed_on) : "" 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..ffe1a0f96 --- /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 diff --git a/dump.rdb b/dump.rdb index c96e57e865b64c9f889a66aa66b0bd1657c0f7f2..e7d3633d3885b2825b171176f927f6428e135054 100644 GIT binary patch delta 181 zcmX@hGL3bDfo|O72XVhRN{drdbaPX44=JQcF#O_4%umxTC`wJtP0C3{kUHorNyZ!y1A*jhaOB3W%$LDn4hLwP?VaOo0OA!fZ-p*Z+2z| z?&6Zf605Yt%$(Ge0}Ov0ckB31jFl5(Vk<07Eln+EWKT&=ODxSP`LpQc_8Ajjx$zhn z7#JDq8JJoaSeQ(c!ZDL$}~1x5MEsl`AC9AN#=+jW0?BX8eI E0KP&z-2eap From 844699dd1bb88e6f4f9bef91b3b54277a661175f Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 10 Jun 2020 16:34:34 +0800 Subject: [PATCH 03/87] change --- dump.rdb | Bin 662 -> 661 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dump.rdb b/dump.rdb index e7d3633d3885b2825b171176f927f6428e135054..96e309a5a2dbabeaa83261b7620588212dd4d900 100644 GIT binary patch delta 92 zcmV-i0Hgnw1(gMmFcNH<;9mL&b#rB8Ep26O!r)vQkwQ8H0t(TQe<1-ek)cHcVi;VJ y=|K??F*P|cH#avpIX5mjI5sshlRN?U1Of`tQ;}U7lTiXY3O4_^v<8U9ZvhP41RnMP delta 93 zcmV-j0HXhu1(pSnFcMyq;9mL&b#rB8Ep26O!XRcCkwQ8H&vvzue<1-dk)cHcFoi&o z=|K_^F*P|cH#asgIWR6bGch?hHj_I6_XN*&wNsH@8k0~0I|?=b(fel-C+@+nBlsdS From 6b296214856e34211c41873e3dcd5a9277c497f9 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 10 Jun 2020 18:33:23 +0800 Subject: [PATCH 04/87] change token issue bug --- app/controllers/issues_controller.rb | 2 ++ dump.rdb | Bin 662 -> 662 bytes 2 files changed, 2 insertions(+) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index fd3f39a32..3bd483dc4 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -199,6 +199,8 @@ class IssuesController < ApplicationController else normal_status(-1, "更新失败") end + elsif @issue.issue_type.to_s == "2" && params[:status_id].to_i == 5 && @issue.author_id !== current_user.try(:id) + normal_status(-1, "不允许修改为关闭状态") else issue_params = issue_send_params(params).except(:issue_classify, :author_id, :project_id) diff --git a/dump.rdb b/dump.rdb index 388301ac5e8666183794e066ec614610aa93be64..9915154ed6c32ece8f637625c6ea4a9aa5656281 100644 GIT binary patch delta 78 zcmbQnI*oOLfzXm|58{4tloqF^=;o&89@?NUJJHFC`Ix=^#QJn*b-z;+UwUwv8X6hs inHw4!T28iR{J{d044D`!H93&UmgCIYfcCnEP4xho2OVVq delta 78 zcmbQnI*oOLfsogh2XVhRN{drdbaPX44{dOioaki5d`Z-7VtqQZvC6@TFFm+SOpOfm i3{A|;jVD_({$K%0hD?l=njFYv%dy0aM Date: Wed, 10 Jun 2020 18:47:03 +0800 Subject: [PATCH 05/87] change --- app/controllers/issues_controller.rb | 2 +- dump.rdb | Bin 662 -> 663 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 3bd483dc4..f2b4850c9 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -199,7 +199,7 @@ class IssuesController < ApplicationController else normal_status(-1, "更新失败") end - elsif @issue.issue_type.to_s == "2" && params[:status_id].to_i == 5 && @issue.author_id !== current_user.try(:id) + elsif @issue.issue_type.to_s == "2" && params[:status_id].to_i == 5 && @issue.author_id != current_user.try(:id) normal_status(-1, "不允许修改为关闭状态") else issue_params = issue_send_params(params).except(:issue_classify, :author_id, :project_id) diff --git a/dump.rdb b/dump.rdb index 9915154ed6c32ece8f637625c6ea4a9aa5656281..c2f4527b399f4ed946768e5db0d13d51260d2654 100644 GIT binary patch delta 87 zcmbQnI-PZbfzZDl58{4tloqF^=;o&89%3jGo9JZ4d?M3hVtqQZM#bfcFCB%23{5Q! r%`HsLjSTgSEG*27%`GR}Fn(tNstTDHD>XTg$(G~h4aMI_wTwCdmx>>? delta 86 zcmbQvI*oOLfzXm|58{4tloqF^=;o&89@?NUJJHFC`Ix=^#QJn*b-z;+Upfj28k$-f qnp>C}8X4%B8yXr~8cw!l{LTVY6f!YZYH|>hEytO)0qu1So9Y2yWghAP From 77b995e9586c137e0f766183344bbe94c4f0aeed Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 11 Jun 2020 11:46:58 +0800 Subject: [PATCH 06/87] remove dump.mb --- dump.rdb | Bin 663 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dump.rdb diff --git a/dump.rdb b/dump.rdb deleted file mode 100644 index c2f4527b399f4ed946768e5db0d13d51260d2654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcma))O>5LZ7{`;csk^pT=%L_gD|lgxHzB3+8$ zQSbwJ@-v7xk6}gdt_QvKsvlvyRMTCw7Akms`170pJiq7u%^SBK*tQ)_TLMxlt!E$% zziW5>>G{PVp-NW$sX-LYVRH2T;K{UEN=U67@`)xkwCO75nKcrC^MpaA9chOxWA^sP zS*(bXFa2~ldkBkH-AZzlUlw()UQtS6z>YD?Z z!fi~hb3U~03f^U$U>1kA*9+pzb%>MsX%e_ZTlwqJN}p}+eSRbAGL8QxG>qMnf-*A9 zBs3DhYTfZ8CkXw(b-HdC_O^nkk(6>=X$@Lr{6qgs|9g8M4Y*VV&H=^fjJ9pePzTlJ zgo5-bRwzEE_QJ^Xy>8@1!MYcA(1@mJ@v9C}c*opsW?byRh?Ua3)+W3lr4Ue%F{)S9 zLAxcCAW{4XrI6uLXUe?Nl7Iyn3@I6!t46^U&BkW)Vt%YaNc6aa7*2roJ#%H5rcfxV z%sU4c-o1FWc50L8`O@-&ub-RKnL6=yrrKJXeq#S$YU=|qw6)XTtKQFVUoRhiyz0LE E1^$uU@Bjb+ From 9d7e7b2eb7cd7d38130e6532dae43156cd4c72be Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 12 Jun 2020 18:28:20 +0800 Subject: [PATCH 07/87] change --- app/controllers/repositories_controller.rb | 2 +- dump.rdb | Bin 808 -> 809 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 75e409e66..33b84af2c 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -193,7 +193,7 @@ class RepositoriesController < ApplicationController issue_type: "1", tracker_id: 2, status_id: 1, - priority_id: 1 + priority_id: params[:priority_id] || "2" } @pull_issue = Issue.new(issue_params) if @pull_issue.save! diff --git a/dump.rdb b/dump.rdb index 3bcfe7a80bf9bf205f88e2c792e8182b68a9ba9f..8f85f550fce638596a9e142fb08898c097d8e096 100644 GIT binary patch delta 87 zcmZ3%wvugvfuKvouLp=)%OH%{O&8ry87&+>;zCF|SqRJltPIn$% delta 86 zcmZ3 Date: Fri, 12 Jun 2020 18:48:32 +0800 Subject: [PATCH 08/87] change --- dump.rdb | Bin 809 -> 809 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/dump.rdb b/dump.rdb index 8f85f550fce638596a9e142fb08898c097d8e096..f32855aa2218c0b6fabc47c634896f23703b1770 100644 GIT binary patch delta 82 zcmZ3e_-;$8p_8Xe34 delta 82 zcmZ3 Date: Thu, 18 Jun 2020 15:59:37 +0800 Subject: [PATCH 09/87] change --- app/queries/projects/list_my_query.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/queries/projects/list_my_query.rb b/app/queries/projects/list_my_query.rb index 1f07787d9..b0522e680 100644 --- a/app/queries/projects/list_my_query.rb +++ b/app/queries/projects/list_my_query.rb @@ -17,7 +17,7 @@ class Projects::ListMyQuery < ApplicationQuery projects = Project.visible end - if params[:is_public].present? && !params[:is_public] + if params[:is_public].present? && params[:is_public] == "private" projects = projects.is_private.joins(:members).where(members: { user_id: user.id }) else projects = projects.visible.joins(:members).where(members: { user_id: user.id }) From c6f4d7157f34b6ebfac0a192046de96bdb226e13 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Tue, 30 Jun 2020 11:15:03 +0800 Subject: [PATCH 10/87] ADD mirror_url to simpe project api --- app/helpers/projects_helper.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 139255c81..2db8101ed 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -35,7 +35,8 @@ module ProjectsHelper tmp_json = tmp_json.merge({ mirror_status: repo.mirror_status, mirror_num: repo.mirror_num, - first_sync: repo.first_sync? + mirror_url: repo.mirror_url, + first_sync: repo.first_sync?, }) end From 73d3715ccaffbf36d6b01bac891c08437c69b266 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 3 Jul 2020 16:17:06 +0800 Subject: [PATCH 11/87] change --- app/controllers/repositories_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 79cd30f7c..de5cf4d8f 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -8,8 +8,8 @@ class RepositoriesController < ApplicationController before_action :find_repository_by_id, only: %i[commit sync_mirror tags] before_action :authorizate_user_can_edit_repo!, only: %i[sync_mirror] before_action :get_ref, only: %i[entries sub_entries top_counts] - before_action :get_statistics, only: %i[top_counts] before_action :get_latest_commit, %i[entries sub_entries top_counts] + before_action :get_statistics, only: %i[top_counts] def show @user = current_user From 8a1abaed8af4ecb6d8371e32daf5adc9798e9837 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 6 Jul 2020 16:35:03 +0800 Subject: [PATCH 12/87] change --- app/controllers/repositories_controller.rb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index ccc49574e..957856cdd 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -53,8 +53,6 @@ class RepositoriesController < ApplicationController @project_owner = @project.owner @hash_commit = Gitea::Repository::Commits::ListService.new(@project_owner.login, @project.identifier, sha: params[:sha], page: params[:page], limit: params[:limit], token: current_user&.gitea_token).call - Rails.logger.info("#####################_______hash_commit______############{@hash_commit}") - Rails.logger.info("#####################_______hash_commit_size______############{@hash_commit.size}") end def commit 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 13/87] 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 14/87] 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 15/87] 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 16/87] 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 17/87] 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 18/87] 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 19/87] 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 20/87] 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 21/87] 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 22/87] 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 265562a260fdecbc67cbd656c3669df552099d8b Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:33:18 +0800 Subject: [PATCH 23/87] change bugs --- app/controllers/sync_forge_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index 51193a0ca..532d69ebd 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -6,16 +6,17 @@ class SyncForgeController < ApplicationController sync_params = params[:sync_params] #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) - Rails.logger.info("=================begin_to_update_project========") + SyncLog.sync_log("=================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========") + SyncLog.sync_log("=================begin_to_create_new_project========") 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] + private: !sync_params[:is_public], + name: sync_params[:name] } project = Projects::CreateService.new(project_user, project_params).call if project.present? @@ -194,7 +195,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 9e15f2c7333c88904d5217ef223e10606c422fd8 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:36:27 +0800 Subject: [PATCH 24/87] 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 c6c7f0968b5d553c37ce77f5905544a5770f7677 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Thu, 9 Jul 2020 20:37:43 +0800 Subject: [PATCH 25/87] change bugs --- app/controllers/sync_forge_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/sync_forge_controller.rb b/app/controllers/sync_forge_controller.rb index b51b0880b..dc8aac612 100644 --- a/app/controllers/sync_forge_controller.rb +++ b/app/controllers/sync_forge_controller.rb @@ -6,11 +6,11 @@ class SyncForgeController < ApplicationController sync_params = params[:sync_params] #以前已同步的项目,那么肯定存在仓库 if Project.exists?(id: sync_params[:id], identifier: sync_params[:identifier]) - SyncLog.sync_log("=================begin_to_update_project========") + Rails.logger.info("=================begin_to_update_project========") project = Project.find_by(id: sync_params[:id]) check_sync_project(project, sync_params) else #新建项目 - SyncLog.sync_log("=================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 = { identifier: sync_params[:identifier], 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 26/87] 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 27/87] 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 28/87] 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 29/87] 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 30/87] 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 31/87] 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 32/87] 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 33/87] 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 34/87] 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 35/87] 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 36/87] 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 66beab34570ae587ea92d0acb62afceb68ac28a1 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 11:54:30 +0800 Subject: [PATCH 37/87] s --- app/services/repositories/create_service.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/services/repositories/create_service.rb b/app/services/repositories/create_service.rb index b9005db55..866251900 100644 --- a/app/services/repositories/create_service.rb +++ b/app/services/repositories/create_service.rb @@ -15,6 +15,19 @@ 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 6d6294419d73f46bb81de22e93b585cb742d5f55 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Fri, 10 Jul 2020 14:05:37 +0800 Subject: [PATCH 38/87] 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 39/87] 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 40/87] 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 41/87] 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 42/87] 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 43/87] 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 44/87] 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 45/87] 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 46/87] 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 47/87] 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 48/87] 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 49/87] 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 50/87] 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 51/87] 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 52/87] 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 53/87] 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 54/87] 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 55/87] 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 56/87] 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 57/87] 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 58/87] 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 59/87] 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 60/87] 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 61/87] 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 62/87] 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 63/87] 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 64/87] 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 65/87] 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 66/87] 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 67/87] 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 68/87] 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 69/87] 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 70/87] 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 71/87] 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 72/87] 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 73/87] 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 74/87] 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 2ccf667f201014831bf3985c857087f7d2538579 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 10:08:20 +0800 Subject: [PATCH 75/87] 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 aac959fc6451df070887b374c991565e8b44b35f Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Mon, 13 Jul 2020 10:08:46 +0800 Subject: [PATCH 76/87] 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 77/87] 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 78/87] 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 79/87] 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 80/87] 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 81/87] 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 82/87] 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 83/87] 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 84/87] 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 85/87] 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 86/87] 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 87/87] 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|