diff --git a/app/controllers/api/v1/projects/branches_controller.rb b/app/controllers/api/v1/projects/branches_controller.rb index 0c89f6012..bd219c23a 100644 --- a/app/controllers/api/v1/projects/branches_controller.rb +++ b/app/controllers/api/v1/projects/branches_controller.rb @@ -17,7 +17,14 @@ class Api::V1::Projects::BranchesController < Api::V1::BaseController def destroy @result_object = Api::V1::Projects::Branches::DeleteService.call(@project, params[:name], current_user&.gitea_token) - if @result_object + if @result_object + # 有开启的pr需要一同关闭 + open_pull_requests = @project.pull_requests.opening.where(head: params[:name]).where(user_id: current_user.id) + if open_pull_requests.present? + open_pull_requests.each do |pull_request| + PullRequests::CloseService.call(@project.owner, @project.repository, pull_request, current_user) + end + end return render_ok else return render_error('删除分支失败!')