diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index f364c11ff..dac637764 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -132,6 +132,8 @@ module RepositoriesHelper src_regex_3 = /src= (.*?) / src_regex_4 = /src =(.*?) / src_regex_5 = /src =(.*?) / + href_regex = /href=\"(.*?)\"/ + href_regex_1 = /href=\'(.*?)\'/ ss_c = content.to_s.scan(s_regex_c) ss = content.to_s.scan(s_regex) ss_1 = content.to_s.scan(s_regex_1) @@ -142,7 +144,9 @@ module RepositoriesHelper ss_src_3 = content.to_s.scan(src_regex_3) ss_src_4 = content.to_s.scan(src_regex_4) ss_src_5 = content.to_s.scan(src_regex_5) - total_sources = {ss_c: ss_c,ss: ss, ss_1: ss_1, ss_2: ss_2, ss_src: ss_src, ss_src_1: ss_src_1, ss_src_2: ss_src_2, ss_src_3: ss_src_3, ss_src_4: ss_src_4, ss_src_5: ss_src_5} + ss_href = content.to_s.scan(href_regex) + ss_href_1 = content.to_s.scan(href_regex_1) + total_sources = {ss_c: ss_c,ss: ss, ss_1: ss_1, ss_2: ss_2, ss_src: ss_src, ss_src_1: ss_src_1, ss_src_2: ss_src_2, ss_src_3: ss_src_3, ss_src_4: ss_src_4, ss_src_5: ss_src_5, ss_href: ss_href, ss_href_1: ss_href_1} # total_sources.uniq! total_sources.except(:ss, :ss_c).each do |k, sources| sources.each do |s| @@ -173,13 +177,17 @@ module RepositoriesHelper content = content.gsub("src=#{s[0]}", "src=\'#{s_content}\'") when 'ss_2' content = content.gsub(/]:#{s[0]}/, "]: #{s_content.to_s.gsub(" ","").gsub("\r", "")}") - else + when 'ss_href' + content = content.gsub("href=\"#{s[0]}\"", "href=\"#{s_content}\"") + when 'ss_href_1' + content = content.gsub("href=\'#{s[0]}\'", "href=\'#{s_content}\'") + else content = content.gsub("(#{s[0]})", "(#{s_content})") end else path = [owner&.login, repo&.identifier, 'tree', ref, file_path].join("/") s_content = File.expand_path(s_content, path) - s_content = s_content.split("#{Rails.root}/")[1] + s_content = s_content.split("#{Rails.root}")[1] case k.to_s when 'ss_src' content = content.gsub("src=\"#{s[0]}\"", "src=\"/#{s_content}\"") @@ -187,7 +195,11 @@ module RepositoriesHelper content = content.gsub("src=\'#{s[0]}\'", "src=\'/#{s_content}\'") when 'ss_2' content = content.gsub(/]:#{s[0]}/, "]: /#{s_content.to_s.gsub(" ","").gsub("\r", "")}") - else + when 'ss_href' + content = content.gsub("href=\"#{s[0]}\"", "href=\"#{s_content}\"") + when 'ss_href_1' + content = content.gsub("href=\'#{s[0]}\'", "href=\'#{s_content}\'") + else content = content.gsub("(#{s[0]})", "(/#{s_content})") end end diff --git a/app/models/message_template/project_milestone_early_expired.rb b/app/models/message_template/project_milestone_early_expired.rb index 5539fc362..3db1e1908 100644 --- a/app/models/message_template/project_milestone_early_expired.rb +++ b/app/models/message_template/project_milestone_early_expired.rb @@ -19,8 +19,8 @@ class MessageTemplate::ProjectMilestoneEarlyExpired < MessageTemplate def self.get_message_content(receivers, milestone) receivers.each do |receiver| if receiver.user_template_message_setting.present? - send_setting = receiver.user_template_message_setting.notification_body["ManageProject::MilestoneEarlyExpired"] - send_setting = send_setting.nil? ? UserTemplateMessageSetting.init_notification_body["ManageProject::MilestoneEarlyExpired"] : send_setting + send_setting = receiver.user_template_message_setting.notification_body["ManageProject::MilestoneExpired"] + send_setting = send_setting.nil? ? UserTemplateMessageSetting.init_notification_body["ManageProject::MilestoneExpired"] : send_setting receivers = receivers.where.not(id: receiver.id) unless send_setting end end @@ -38,8 +38,8 @@ class MessageTemplate::ProjectMilestoneEarlyExpired < MessageTemplate def self.get_email_message_content(receiver, milestone) if receiver.user_template_message_setting.present? - send_setting = receiver.user_template_message_setting.email_body["ManageProject::MilestoneEarlyExpired"] - send_setting = send_setting.nil? ? UserTemplateMessageSetting.init_email_body["ManageProject::MilestoneEarlyExpired"] : send_setting + send_setting = receiver.user_template_message_setting.email_body["ManageProject::MilestoneExpired"] + send_setting = send_setting.nil? ? UserTemplateMessageSetting.init_email_body["ManageProject::MilestoneExpired"] : send_setting return '', '', '' unless send_setting project = milestone&.project owner = project&.owner diff --git a/app/models/template_message_setting/create_or_assign.rb b/app/models/template_message_setting/create_or_assign.rb index 629051305..8f0817070 100644 --- a/app/models/template_message_setting/create_or_assign.rb +++ b/app/models/template_message_setting/create_or_assign.rb @@ -28,5 +28,6 @@ class TemplateMessageSetting::CreateOrAssign < TemplateMessageSetting self.find_or_create_by(name: "疑修状态变更", key: "IssueChanged") self.find_or_create_by(name: "合并请求状态变更", key: "PullRequestChanged") self.find_or_create_by(name: "疑修截止日期到达最后一天", key: "IssueExpire", notification_disabled: false) + self.find_or_create_by(name: "里程碑逾期提醒", key: "MilestoneExpired", notification_disabled: false, email_disabled: true) end end diff --git a/app/models/user_template_message_setting.rb b/app/models/user_template_message_setting.rb index 7e855b768..befd2be87 100644 --- a/app/models/user_template_message_setting.rb +++ b/app/models/user_template_message_setting.rb @@ -36,6 +36,7 @@ class UserTemplateMessageSetting < ApplicationRecord "CreateOrAssign::IssueChanged": true, "CreateOrAssign::PullRequestChanged": true, "CreateOrAssign::IssueExpire": true, + "CreateOrAssign::MilestoneExpired": true, "ManageProject::Issue": true, "ManageProject::PullRequest": true, "ManageProject::Member": true, @@ -59,6 +60,7 @@ class UserTemplateMessageSetting < ApplicationRecord "CreateOrAssign::IssueChanged": false, "CreateOrAssign::PullRequestChanged": false, "CreateOrAssign::IssueExpire": false, + "CreateOrAssign::MilestoneExpired": false, "ManageProject::Issue": false, "ManageProject::PullRequest": false, "ManageProject::Member": false, diff --git a/app/services/api/v1/projects/branches/delete_service.rb b/app/services/api/v1/projects/branches/delete_service.rb index 28836c797..341079273 100644 --- a/app/services/api/v1/projects/branches/delete_service.rb +++ b/app/services/api/v1/projects/branches/delete_service.rb @@ -32,7 +32,7 @@ class Api::V1::Projects::Branches::DeleteService < ApplicationService def excute_data_to_gitea begin - @gitea_data = $gitea_client.delete_repos_branches_by_owner_repo_branch(owner, repo, branch_name, {query: request_params}) + @gitea_data = $gitea_client.delete_repos_branches_by_owner_repo_branch(owner, repo, CGI.escape(branch_name), {query: request_params}) rescue => e raise Error, '保护分支无法删除!' if e.to_s.include?("branch protected") raise Error, '删除分支失败!' diff --git a/app/services/api/v1/projects/tags/delete_service.rb b/app/services/api/v1/projects/tags/delete_service.rb index d0d317aa8..8f898bf1a 100644 --- a/app/services/api/v1/projects/tags/delete_service.rb +++ b/app/services/api/v1/projects/tags/delete_service.rb @@ -32,7 +32,7 @@ class Api::V1::Projects::Tags::DeleteService < ApplicationService def excute_data_to_gitea begin - @gitea_data = $gitea_client.delete_repos_tags_by_owner_repo_tag(owner, repo, tag_name, {query: request_params}) + @gitea_data = $gitea_client.delete_repos_tags_by_owner_repo_tag(owner, repo, CGI.escape(tag_name), {query: request_params}) rescue => e raise Error, '请先删除发行版!' if e.to_s.include?("409") raise Error, '删除标签失败!'