Merge branch 'trustie_server' of https://git.trustie.net/Gitlink/forgeplus into trustie_server

This commit is contained in:
xiaoxiaoqiong 2021-12-29 15:01:48 +08:00
commit 2021cbbd5b
2 changed files with 6 additions and 4 deletions

View File

@ -43,10 +43,10 @@ class CompareController < ApplicationController
def load_compare_params def load_compare_params
# @base = Addressable::URI.unescape(params[:base]) # @base = Addressable::URI.unescape(params[:base])
@base = Base64.decode64(params[:base]) @base = params[:base].include?(":") ? Addressable::URI.unescape(params[:base].split(":")[0]) + ':' + Base64.decode64(params[:base].split(":")[1]) : Base64.decode64(params[:base])
@head = params[:head].include?('.json') ? params[:head][0..-6] : params[:head] @head = params[:head].include?('.json') ? params[:head][0..-6] : params[:head]
# @head = Addressable::URI.unescape(@head) # @head = Addressable::URI.unescape(@head)
@head = Base64.decode64(@head) @head = @head.include?(":") ? Addressable::URI.unescape(@head.split(":")[0]) + ':' + Base64.decode64(@head.split(":")[1]) : Base64.decode64(@head)
end end
def gitea_compare(base, head) def gitea_compare(base, head)

View File

@ -129,8 +129,10 @@ class PullRequests::CreateService < ApplicationService
end end
def merge_original_pull_params def merge_original_pull_params
base_pull_params[:head] = CGI.escape(base_pull_params[:head])
base_pull_params[:base] = CGI.escape(base_pull_params[:base])
if pull_request.is_original && @params[:merge_user_login] if pull_request.is_original && @params[:merge_user_login]
base_pull_params.merge(head: "#{@params[:merge_user_login]}:#{@params[:head]}") base_pull_params.merge(head: "#{@params[:merge_user_login]}:#{base_pull_params[:head]}")
else else
base_pull_params base_pull_params
end end
@ -160,7 +162,7 @@ class PullRequests::CreateService < ApplicationService
def compare_head_base! def compare_head_base!
head = pull_request.is_original && @params[:merge_user_login] ? "#{@params[:merge_user_login]}/#{@project.identifier}:#{@params[:head]}" : @params[:head] head = pull_request.is_original && @params[:merge_user_login] ? "#{@params[:merge_user_login]}/#{@project.identifier}:#{@params[:head]}" : @params[:head]
compare_result = Gitea::Repository::Commits::CompareService.call(@owner.login, @project.identifier, @params[:base], head, @current_user.gitea_token) compare_result = Gitea::Repository::Commits::CompareService.call(@owner.login, @project.identifier, CGI.escape(@params[:base]), CGI.escape(head), @current_user.gitea_token)
raise '分支内容相同,无需创建合并请求' if compare_result["Commits"].blank? && compare_result["Diff"].blank? raise '分支内容相同,无需创建合并请求' if compare_result["Commits"].blank? && compare_result["Diff"].blank?
end end