修改同步项目及添加没有gitea账户的用户
This commit is contained in:
parent
98e60ee9d3
commit
7b219d385c
|
@ -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
|
|
@ -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
|
|
@ -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
|
Loading…
Reference in New Issue