修改同步项目及添加没有gitea账户的用户

This commit is contained in:
sylor_huang@126.com 2020-07-17 15:30:17 +08:00
parent 98e60ee9d3
commit 7b219d385c
3 changed files with 53 additions and 2 deletions

View File

@ -8,4 +8,9 @@ class SyncLog
@my_log ||= Logger.new("#{Rails.root}/log/sync_project_log.log")
@my_log.debug(message) unless message.nil?
end
def self.empty_repo_project_log(message=nil)
empt_log ||= Logger.new("#{Rails.root}/log/empty_repo_project_log.log")
empt_log.debug(message) unless message.nil?
end
end

View File

@ -0,0 +1,34 @@
class CheckGiteaUser
# 运行示例: 检查哪些用户的gitea不存在bundle exec rails runner "CheckMirrorRake.new.call()"
def call
SyncLog.sync_log("=====begin to check gitea_user======")
all_users = User.select(:id, :gitea_token, :gitea_uid, :mail, :type).where(type: "User", gitea_token: [nil, ""], gitea_uid: [nil, ""])
if all_users.present?
new_password = "12345678"
all_users.each do |user|
SyncLog.sync_log("=====check_user_login_is:#{user.login}======")
ActiveRecord::Base.transaction do
interactor = Gitea::RegisterInteractor.call({username: user.login, email: user&.mail.present? ? user.mail : "#{user.login}@example.com", password: new_password})
if interactor.success?
gitea_user = interactor.result
result = Gitea::User::GenerateTokenService.new(user.login, new_password).call
user.gitea_token = result['sha1']
user.gitea_uid = gitea_user['id']
if user.save!
SyncLog.sync_log("=================create_gitea_user_success_login==#{user.login}")
else
SyncLog.sync_log("=================create_gitea_user_success_login==#{user.login}")
end
else
SyncLog.sync_log("=============sync_to_user_failed,user_login====#{user.login}")
end
end
rescue Exception => e
SyncLog.sync_log("=================create_gitea_user_has_erros=#{user.login}===#{e}")
end
end
SyncLog.sync_log("=====end_to_check_gitea_user=====")
end
end

View File

@ -8,8 +8,7 @@ class CheckMirrorRake
all_projects = Project.select(:id,:identifier,:user_id, :gpid, :forked_count,:is_public).includes(:owner, :repository)
all_projects.each do |project|
SyncLog.sync_log("=====check_project_id:#{project.id}======")
# CheckMirrorJob.perform_later(project)
if project.owner.present?
if project&.owner&.login.present? &&
response = Gitea::Repository::Branches::ListService.new(project.owner, project.identifier).call
else
response = "22"
@ -19,7 +18,20 @@ class CheckMirrorRake
empty_repo.push(project.id)
end
end
SyncLog.empty_repo_project_log("=====empty_repo_project_ids:#{empty_repo}======")
SyncLog.empty_repo_project_log("=====empty_user_project_ids:#{empty_user}======")
SyncLog.sync_log("=====empty_repo_project_ids:#{empty_repo}======")
SyncLog.sync_log("=====empty_user_project_ids:#{empty_user}======")
if empty_repo.present?
SyncLog.sync_log("**=====begin_create_empty_repo======**")
empty_repo_projects = all_projects.where(id: empty_repo)
empty_repo_projects.each do |project|
SyncLog.sync_log("**====create_empty_repo_project_id: #{project.id}======**")
CheckMirrorJob.perform_later(project)
end
SyncLog.sync_log("**=====endcreate_empty_repo======**")
end
end
end