mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-02 19:30:48 +08:00
change versions and check repository
This commit is contained in:
36
app/jobs/check_mirror_job.rb
Normal file
36
app/jobs/check_mirror_job.rb
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
# 运行示例: bundle exec rails runner "CheckMirrorJob.new.call()"
|
||||
|
||||
class CheckMirrorJob < ApplicationJob
|
||||
queue_as :default
|
||||
|
||||
def perform(project)
|
||||
SyncLog.sync_log("==========begin_check_project_id_job:#{project.id}============")
|
||||
begin
|
||||
response = Gitea::Repository::Branches::ListService.new(project.owner, project.identifier).call
|
||||
unless response.present?
|
||||
SyncLog.sync_log("==========check_project_error_id:#{project.id}============")
|
||||
ActiveRecord::Base.transaction do
|
||||
delete_gitea = Gitea::Repository::DeleteService.new(project.owner, project.identifier).call
|
||||
if delete_gitea.status == 204 || delete_gitea.status == 404 #删除成功或者仓库不存在,都重新创建
|
||||
repository_params= {
|
||||
name: project.identifier,
|
||||
auto_init: true,
|
||||
private: project.repository.hidden,
|
||||
}
|
||||
gitea_repository = Gitea::Repository::CreateService.new(project.owner.gitea_token, repository_params).call
|
||||
if gitea_repository
|
||||
project.update_columns(gpid: gitea_repository["id"],forked_count: gitea_repository["forks_count"])
|
||||
else
|
||||
SyncLog.sync_log("==========gitea_repository_created_failed:#{project.id}============")
|
||||
end
|
||||
else
|
||||
SyncLog.sync_log("==========delete_gitea_failed:#{project.id}============")
|
||||
end
|
||||
end
|
||||
end
|
||||
rescue => e
|
||||
SyncLog.sync_log("==========failed_check_project_id:#{project.id}============errors:#{e}")
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user