diff --git a/app/controllers/api/v1/projects/sync_repositories_controller.rb b/app/controllers/api/v1/projects/sync_repositories_controller.rb index 6aa9cb6eb..96e14faf9 100644 --- a/app/controllers/api/v1/projects/sync_repositories_controller.rb +++ b/app/controllers/api/v1/projects/sync_repositories_controller.rb @@ -42,7 +42,7 @@ class Api::V1::Projects::SyncRepositoriesController < Api::V1::BaseController return render_error("请输入正确的同步仓库ID") unless params[:sync_repository_ids].present? @sync_repositories = SyncRepository.where(id: params[:sync_repository_ids].split(",")) @sync_repositories.each do |repo| - Reposync::DeleteRepoService.call(repo.repo_name) + # Reposync::DeleteRepoService.call(repo.repo_name) # 解绑操作放在回调里 Api::V1::Projects::Webhooks::DeleteService.call(@project, repo.webhook_gid) repo.destroy end diff --git a/app/models/sync_repository.rb b/app/models/sync_repository.rb index 13af04f88..70018d7db 100644 --- a/app/models/sync_repository.rb +++ b/app/models/sync_repository.rb @@ -24,5 +24,12 @@ class SyncRepository < ApplicationRecord belongs_to :project has_many :sync_repository_branches, dependent: :destroy + before_destroy :unbind_reposyncer + validates :repo_name, uniqueness: { message: "已存在" } + + def unbind_reposyncer + Reposync::DeleteRepoService.call(self.repo_name) + end + end