修复:导入项目相关问题
This commit is contained in:
parent
4c82863851
commit
c58ca88edd
|
@ -32,7 +32,7 @@ class Admins::ProjectsController < Admins::BaseController
|
|||
def destroy
|
||||
project = Project.find_by!(id: params[:id])
|
||||
ActiveRecord::Base.transaction do
|
||||
Gitea::Repository::DeleteService.new(project.owner, project.identifier).call
|
||||
Gitea::Repository::DeleteService.new(project.owner, project.identifier, current_user.gitea_token).call
|
||||
project.destroy!
|
||||
# render_delete_success
|
||||
UserAction.create(action_id: project.id, action_type: "DestroyProject", user_id: current_user.id, :ip => request.remote_ip, data_bank: project.attributes.to_json)
|
||||
|
|
|
@ -255,7 +255,7 @@ class ProjectsController < ApplicationController
|
|||
def destroy
|
||||
if current_user.admin? || @project.manager?(current_user)
|
||||
ActiveRecord::Base.transaction do
|
||||
Gitea::Repository::DeleteService.new(@project.owner, @project.identifier).call
|
||||
Gitea::Repository::DeleteService.new(@project.owner, @project.identifier,current_user.gitea_token).call
|
||||
@project.destroy!
|
||||
@project.forked_projects.update_all(forked_from_project_id: nil)
|
||||
# 如果该项目有所属的项目分类以及为私有项目,需要更新对应数量
|
||||
|
@ -305,6 +305,25 @@ class ProjectsController < ApplicationController
|
|||
end
|
||||
|
||||
def simple
|
||||
if !@project.common? && @project&.repository&.mirror&.waiting?
|
||||
gitea_result = $gitea_client.get_repos_by_owner_repo(@project&.owner&.login, @project&.identifier)
|
||||
if !gitea_result["empty"]
|
||||
@project&.update_columns(gpid: gitea_result["id"])
|
||||
@project&.repository&.mirror&.succeeded!
|
||||
project_id = @project&.id
|
||||
user_id = @project&.owner&.id
|
||||
puts "############ mirror project_id,user_id: #{project_id},#{user_id} ############"
|
||||
OpenProjectDevOpsJob.set(wait: 5.seconds).perform_later(project_id, user_id) if project_id.present? && user_id.present?
|
||||
UpdateProjectTopicJob.set(wait: 1.seconds).perform_later(project_id) if project_id.present?
|
||||
puts "############ mirror status: #{repo.mirror.status} ############"
|
||||
end
|
||||
elsif !@project.common? && @project&.repository&.mirror&.failed?
|
||||
Gitea::Repository::DeleteService.new(@project.owner, @project.identifier,current_user.gitea_token).call
|
||||
@project.destroy!
|
||||
@project.forked_projects.update_all(forked_from_project_id: nil)
|
||||
# 如果该项目有所属的项目分类以及为私有项目,需要更新对应数量
|
||||
@project.project_category.decrement!(:private_projects_count, 1) if @project.project_category.present? && !@project.is_public
|
||||
end
|
||||
# 为了缓存活跃项目的基本信息,后续删除
|
||||
Cache::V2::ProjectCommonService.new(@project.id).read
|
||||
# 项目名称,标识,所有者变化时重置缓存
|
||||
|
|
|
@ -11,7 +11,7 @@ class CheckMirrorJob < ApplicationJob
|
|||
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
|
||||
delete_gitea = Gitea::Repository::DeleteService.new(project.owner, project.identifier, project.owner.gitea_token).call
|
||||
if delete_gitea.status == 204 || delete_gitea.status == 404 #删除成功或者仓库不存在,都重新创建
|
||||
repository_params= {
|
||||
name: project.identifier,
|
||||
|
|
|
@ -19,7 +19,18 @@ class MigrateRemoteRepositoryJob < ApplicationJob
|
|||
UpdateProjectTopicJob.set(wait: 1.seconds).perform_later(project_id) if project_id.present?
|
||||
puts "############ mirror status: #{repo.mirror.status} ############"
|
||||
else
|
||||
repo&.mirror&.failed!
|
||||
gitea_result = $gitea_client.get_repos_by_owner_repo(repo&.project&.owner&.login, repo&.project&.identifier)
|
||||
if gitea_result["empty"]
|
||||
repo&.mirror&.failed!
|
||||
else
|
||||
repo&.project&.update_columns(gpid: gitea_result["id"])
|
||||
repo&.mirror&.succeeded!
|
||||
project_id = repo&.project&.id
|
||||
puts "############ mirror project_id,user_id: #{project_id},#{user_id} ############"
|
||||
OpenProjectDevOpsJob.set(wait: 5.seconds).perform_later(project_id, user_id) if project_id.present? && user_id.present?
|
||||
UpdateProjectTopicJob.set(wait: 1.seconds).perform_later(project_id) if project_id.present?
|
||||
puts "############ mirror status: #{repo.mirror.status} ############"
|
||||
end
|
||||
end
|
||||
# UpdateProjectTopicJob 中语言要延迟1S才能获取
|
||||
BroadcastMirrorRepoMsgJob.set(wait: 1.seconds).perform_later(repo.id) unless repo&.mirror.waiting?
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
class Gitea::Repository::DeleteService < Gitea::ClientService
|
||||
attr_reader :user, :repo_name
|
||||
attr_reader :user, :repo_name, :token
|
||||
|
||||
def initialize(user, repo_name)
|
||||
def initialize(user, repo_name, token=nil)
|
||||
@user = user
|
||||
@repo_name = repo_name
|
||||
@token = token
|
||||
end
|
||||
|
||||
def call
|
||||
|
@ -13,7 +14,7 @@ class Gitea::Repository::DeleteService < Gitea::ClientService
|
|||
private
|
||||
|
||||
def params
|
||||
Hash.new.merge(token: user.gitea_token)
|
||||
Hash.new.merge(token: token)
|
||||
end
|
||||
|
||||
def url
|
||||
|
|
Loading…
Reference in New Issue