From 6cfb5dfbe21b892f36d2408cc3b61a8c04894348 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 7 Feb 2023 10:33:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E4=BF=9D=E6=8A=A4=E5=88=86=E6=94=AF=E5=92=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8F=91=E8=A1=8C=E7=89=88=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/projects/tags_controller.rb | 1 + app/services/api/v1/projects/branches/delete_service.rb | 7 ++++++- app/services/api/v1/projects/tags/delete_service.rb | 7 ++++++- app/views/api/v1/projects/tags/index.json.jbuilder | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/projects/tags_controller.rb b/app/controllers/api/v1/projects/tags_controller.rb index ded55f888..06c3b1c8e 100644 --- a/app/controllers/api/v1/projects/tags_controller.rb +++ b/app/controllers/api/v1/projects/tags_controller.rb @@ -2,6 +2,7 @@ class Api::V1::Projects::TagsController < Api::V1::BaseController before_action :require_public_and_member_above, only: [:index] def index + @release_tags = @repository.version_releases.pluck(:tag_name) @result_object = Api::V1::Projects::Tags::ListService.call(@project, {page: page, limit: limit}, current_user&.gitea_token) end diff --git a/app/services/api/v1/projects/branches/delete_service.rb b/app/services/api/v1/projects/branches/delete_service.rb index ab9fee157..79a6ba0db 100644 --- a/app/services/api/v1/projects/branches/delete_service.rb +++ b/app/services/api/v1/projects/branches/delete_service.rb @@ -31,7 +31,12 @@ class Api::V1::Projects::Branches::DeleteService < ApplicationService end def excute_data_to_gitea - @gitea_data = $gitea_client.delete_repos_branches_by_owner_repo_branch(owner, repo, branch_name, {query: request_params}) rescue nil + begin + @gitea_data = $gitea_client.delete_repos_branches_by_owner_repo_branch(owner, repo, branch_name, {query: request_params}) + rescue => e + raise Error, '保护分支无法删除!' if e.to_s.include?("branch protected") + raise Error, '删除分支失败!' + end end def check_branch_exist diff --git a/app/services/api/v1/projects/tags/delete_service.rb b/app/services/api/v1/projects/tags/delete_service.rb index ee383a5bd..bb05f7b0f 100644 --- a/app/services/api/v1/projects/tags/delete_service.rb +++ b/app/services/api/v1/projects/tags/delete_service.rb @@ -31,7 +31,12 @@ class Api::V1::Projects::Tags::DeleteService < ApplicationService end def excute_data_to_gitea - @gitea_data = $gitea_client.delete_repos_tags_by_owner_repo_tag(owner, repo, tag_name, {query: request_params}) rescue nil + begin + @gitea_data = $gitea_client.delete_repos_tags_by_owner_repo_tag(owner, repo, tag_name, {query: request_params}) rescue nil + rescue => e + raise Error, '请先删除发行版!' if e.to_s.include?("409") + raise Error, '删除标签失败!' + end end def check_tag_exist diff --git a/app/views/api/v1/projects/tags/index.json.jbuilder b/app/views/api/v1/projects/tags/index.json.jbuilder index 3c6f2d4a7..207289041 100644 --- a/app/views/api/v1/projects/tags/index.json.jbuilder +++ b/app/views/api/v1/projects/tags/index.json.jbuilder @@ -1,4 +1,5 @@ json.total_count @result_object[:total_data].to_i json.tags @result_object[:data].each do |tag| json.partial! "api/v1/projects/tags/simple_gitea_index_detail", tag: tag + json.has_release @release_tags.blank? ? false : @release_tags.include?(tag['name']) end \ No newline at end of file