2020-07-17 11:18:12 +08:00
|
|
|
|
class CheckMirrorRake
|
2020-07-17 14:24:14 +08:00
|
|
|
|
# 运行示例: 检查哪些项目的repo不存在,bundle exec rails runner "CheckMirrorRake.new.call()"
|
2020-07-17 11:18:12 +08:00
|
|
|
|
|
|
|
|
|
|
def call
|
|
|
|
|
|
SyncLog.sync_log("=====begin to check mirror======")
|
2020-07-17 14:24:14 +08:00
|
|
|
|
empty_repo = []
|
2020-07-17 14:33:22 +08:00
|
|
|
|
empty_user = []
|
2020-07-17 11:54:46 +08:00
|
|
|
|
all_projects = Project.select(:id,:identifier,:user_id, :gpid, :forked_count,:is_public).includes(:owner, :repository)
|
2020-07-17 11:18:12 +08:00
|
|
|
|
all_projects.each do |project|
|
|
|
|
|
|
SyncLog.sync_log("=====check_project_id:#{project.id}======")
|
2020-07-17 15:58:43 +08:00
|
|
|
|
if project&.owner&.login.present?
|
2020-07-17 14:33:22 +08:00
|
|
|
|
response = Gitea::Repository::Branches::ListService.new(project.owner, project.identifier).call
|
|
|
|
|
|
else
|
2020-07-17 15:37:07 +08:00
|
|
|
|
response = "224444"
|
2020-07-17 14:33:22 +08:00
|
|
|
|
empty_user.push(project.id)
|
|
|
|
|
|
end
|
2020-07-17 14:24:14 +08:00
|
|
|
|
unless response.present?
|
|
|
|
|
|
empty_repo.push(project.id)
|
|
|
|
|
|
end
|
2020-07-17 11:18:12 +08:00
|
|
|
|
end
|
2020-07-17 15:30:17 +08:00
|
|
|
|
|
|
|
|
|
|
SyncLog.empty_repo_project_log("=====empty_repo_project_ids:#{empty_repo}======")
|
|
|
|
|
|
SyncLog.empty_repo_project_log("=====empty_user_project_ids:#{empty_user}======")
|
2020-07-17 14:33:22 +08:00
|
|
|
|
SyncLog.sync_log("=====empty_repo_project_ids:#{empty_repo}======")
|
|
|
|
|
|
SyncLog.sync_log("=====empty_user_project_ids:#{empty_user}======")
|
2020-07-17 15:30:17 +08:00
|
|
|
|
|
|
|
|
|
|
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
|
2020-07-17 11:18:12 +08:00
|
|
|
|
end
|
|
|
|
|
|
end
|