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