forked from Gitlink/forgeplus
Merge branch 'standalone_develop' of https://gitlink.org.cn/Trustie/forgeplus into standalone_develop
This commit is contained in:
commit
f615487380
|
|
@ -32,15 +32,35 @@ class Api::V1::Projects::BranchesController < Api::V1::BaseController
|
|||
@result_object = Api::V1::Projects::Branches::AllListService.call(@project, current_user&.gitea_token)
|
||||
end
|
||||
|
||||
before_action :require_operate_above, only: [:create, :destroy, :restore]
|
||||
before_action :require_operate_above, only: [:create, :delete, :destroy, :restore]
|
||||
|
||||
def create
|
||||
@result_object = Api::V1::Projects::Branches::CreateService.call(@project, branch_params, current_user&.gitea_token)
|
||||
@project.update_column(:updated_on, Time.now)
|
||||
end
|
||||
|
||||
def delete
|
||||
@result_object = Api::V1::Projects::Branches::DeleteService.call(@project, params[:branch_name], current_user&.gitea_token)
|
||||
if @result_object
|
||||
@project.update_column(:updated_on, Time.now)
|
||||
# 有开启的pr需要一同关闭
|
||||
# 1、删除本仓库中存在未关闭的pr,即本仓库分支1->分支2
|
||||
# 2、如果是fork仓库,考虑删除主仓库中存在未关闭的pr,即本仓库:分支1->主:分支2,同时分两种删除:1删除本仓库分支1,2删除主仓库分支2
|
||||
close_pull_requests_by(@project, params[:branch_name])
|
||||
if @project.forked_from_project_id.present?
|
||||
# fork项目中删除分支
|
||||
close_pull_requests_by(@project.fork_project, params[:branch_name])
|
||||
end
|
||||
|
||||
return render_ok
|
||||
else
|
||||
return render_error('删除分支失败!')
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@result_object = Api::V1::Projects::Branches::DeleteService.call(@project, params[:name], current_user&.gitea_token)
|
||||
@name = params[:name].include?('.json') ? params[:name][0..-6] : params[:name]
|
||||
@result_object = Api::V1::Projects::Branches::DeleteService.call(@project, Base64.decode64(@name), current_user&.gitea_token)
|
||||
if @result_object
|
||||
@project.update_column(:updated_on, Time.now)
|
||||
# 有开启的pr需要一同关闭
|
||||
|
|
|
|||
|
|
@ -7,10 +7,11 @@ class Api::V1::Projects::TagsController < Api::V1::BaseController
|
|||
end
|
||||
|
||||
def show
|
||||
@result_object = Api::V1::Projects::Tags::GetService.call(@project, params[:name], current_user&.gitea_token)
|
||||
@name = params[:name].include?('.json') ? params[:name][0..-6] : params[:name]
|
||||
@result_object = Api::V1::Projects::Tags::GetService.call(@project, Base64.decode64(@name), current_user&.gitea_token)
|
||||
end
|
||||
|
||||
before_action :require_operate_above, only: [:create, :destroy]
|
||||
before_action :require_operate_above, only: [:create, :delete, :destroy]
|
||||
|
||||
def create
|
||||
@result_object = Api::V1::Projects::Tags::CreateService.call(@project, tag_params, current_user&.gitea_token)
|
||||
|
|
@ -18,8 +19,18 @@ class Api::V1::Projects::TagsController < Api::V1::BaseController
|
|||
@project.update_column(:updated_on, Time.now)
|
||||
end
|
||||
|
||||
def delete
|
||||
@result_object = Api::V1::Projects::Tags::DeleteService.call(@project, params[:tag_name], current_user&.gitea_token)
|
||||
if @result_object
|
||||
return render_ok
|
||||
else
|
||||
return render_error('删除标签失败!')
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@result_object = Api::V1::Projects::Tags::DeleteService.call(@project, params[:name], current_user&.gitea_token)
|
||||
@name = params[:name].include?('.json') ? params[:name][0..-6] : params[:name]
|
||||
@result_object = Api::V1::Projects::Tags::DeleteService.call(@project, Base64.decode64(@name), current_user&.gitea_token)
|
||||
if @result_object
|
||||
return render_ok
|
||||
else
|
||||
|
|
|
|||
|
|
@ -94,6 +94,7 @@ class PullRequestsController < ApplicationController
|
|||
@fork_project_user_name = @pull_request&.fork_project&.owner.try(:show_real_name)
|
||||
@fork_project_user = @pull_request&.fork_project&.owner.try(:login)
|
||||
@fork_project_identifier = @pull_request&.fork_project&.repository.try(:identifier)
|
||||
@gitea_pull = Gitea::PullRequest::GetService.call(@owner.login, @repository.identifier, @pull_request.gitea_number, @owner&.gitea_token)
|
||||
end
|
||||
|
||||
def update
|
||||
|
|
@ -146,14 +147,14 @@ class PullRequestsController < ApplicationController
|
|||
@pull_request.gitea_number, @requests_params, current_user.gitea_token)
|
||||
|
||||
if gitea_pull[:status] === :success
|
||||
if params[:issue_tag_ids].present?
|
||||
#if params[:issue_tag_ids].present?
|
||||
#if params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size > 1
|
||||
# return normal_status(-1, "最多只能创建一个标记。")
|
||||
#elsif params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].size == 1
|
||||
if params[:issue_tag_ids].is_a?(Array) && params[:issue_tag_ids].present?
|
||||
new_issue_tag_ids = params[:issue_tag_ids]
|
||||
now_issue_tag_ids = @issue.issue_tags.pluck(:id)
|
||||
if !(now_issue_tag_ids & new_issue_tag_ids).empty? || !(now_issue_tag_ids.empty? && new_issue_tag_ids.empty?)
|
||||
if params[:issue_tag_ids].is_a?(Array) #&& params[:issue_tag_ids].present?
|
||||
new_issue_tag_ids = params[:issue_tag_ids].sort!
|
||||
now_issue_tag_ids = @issue.issue_tags.pluck(:id).sort!
|
||||
if (!(now_issue_tag_ids & new_issue_tag_ids).empty? || !(now_issue_tag_ids.empty? && new_issue_tag_ids.empty?)) && new_issue_tag_ids != now_issue_tag_ids
|
||||
journal = @issue.journals.create!({user_id: current_user.id, operate_by: 'Issue'})
|
||||
journal.journal_details.create!({property: "issue_tag", prop_key: "#{new_issue_tag_ids.size}", old_value: now_issue_tag_ids.join(","), value: new_issue_tag_ids.join(",")})
|
||||
end
|
||||
|
|
@ -164,18 +165,22 @@ class PullRequestsController < ApplicationController
|
|||
else
|
||||
return normal_status(-1, "请输入正确的标记。")
|
||||
end
|
||||
end
|
||||
if params[:attached_issue_ids].present?
|
||||
if params[:attached_issue_ids].is_a?(Array) && params[:attached_issue_ids].size > 1
|
||||
return normal_status(-1, "最多只能关联一个疑修。")
|
||||
elsif params[:attached_issue_ids].is_a?(Array) && params[:attached_issue_ids].size == 1
|
||||
@pull_request&.pull_attached_issues&.destroy_all
|
||||
params[:attached_issue_ids].each do |issue|
|
||||
PullAttachedIssue.create!(issue_id: issue, pull_request_id: @pull_request.id)
|
||||
end
|
||||
else
|
||||
return normal_status(-1, "请输入正确的疑修。")
|
||||
#end
|
||||
if params[:attached_issue_ids].is_a?(Array) && params[:attached_issue_ids].size > 1
|
||||
return normal_status(-1, "最多只能关联一个疑修。")
|
||||
elsif params[:attached_issue_ids].is_a?(Array) #&& params[:attached_issue_ids].size == 1
|
||||
new_attached_issue_ids = params[:attached_issue_ids].sort!
|
||||
now_attached_issue_ids = @pull_request.attached_issues.pluck(:id).sort!
|
||||
if (!(now_attached_issue_ids & new_attached_issue_ids).empty? || !(now_attached_issue_ids.empty? && new_attached_issue_ids.empty?)) && new_attached_issue_ids != now_attached_issue_ids
|
||||
journal = @issue.journals.create!({user_id: current_user.id, operate_by: 'Issue'})
|
||||
journal.journal_details.create!({property: "attached_issue", prop_key: "#{new_attached_issue_ids.size}", old_value: now_attached_issue_ids.join(","), value: new_attached_issue_ids.join(",")})
|
||||
end
|
||||
@pull_request&.pull_attached_issues&.destroy_all
|
||||
params[:attached_issue_ids].each do |issue|
|
||||
PullAttachedIssue.create!(issue_id: issue, pull_request_id: @pull_request.id)
|
||||
end
|
||||
else
|
||||
return normal_status(-1, "请输入正确的疑修。")
|
||||
end
|
||||
if params[:status_id].to_i == 5
|
||||
@issue.issue_times.update_all(end_time: Time.now)
|
||||
|
|
|
|||
|
|
@ -294,7 +294,7 @@ class RepositoriesController < ApplicationController
|
|||
def archive
|
||||
domain = GiteaService.gitea_config[:domain]
|
||||
api_url = GiteaService.gitea_config[:base_url]
|
||||
archive_url = "/repos/#{@owner.login}/#{@repository.identifier}/archive/#{Addressable::URI.escape(params[:archive])}"
|
||||
archive_url = "/repos/#{@owner.login}/#{@repository.identifier}/archive/#{URI.encode(params[:archive])}"
|
||||
|
||||
file_path = [domain, api_url, archive_url].join
|
||||
file_path = [file_path, "access_token=#{@owner&.gitea_token}"].join("?")
|
||||
|
|
|
|||
|
|
@ -553,6 +553,16 @@ class Journal < ApplicationRecord
|
|||
content += "将标记由<b>#{old_value}</b>更改为<b>#{new_value}</b>"
|
||||
end
|
||||
return content
|
||||
when 'attached_issue'
|
||||
old_value = Issue.where(id: detail.old_value.split(",")).pluck(:subject).join("、")
|
||||
new_value = Issue.where(id: detail.value.split(",")).pluck(:subject).join("、")
|
||||
if old_value.nil? || old_value.blank?
|
||||
content += "添加了<b>#{new_value}</b>关联疑修"
|
||||
else
|
||||
new_value = "无" if new_value.blank?
|
||||
content += "将关联疑修由<b>#{old_value}</b>更改为<b>#{new_value}</b>"
|
||||
end
|
||||
return content
|
||||
when 'assigner'
|
||||
old_value = User.where(id: detail.old_value.split(",")).map{|u| u.real_name}.join("、")
|
||||
new_value = User.where(id: detail.value.split(",")).map{|u| u.real_name}.join("、")
|
||||
|
|
|
|||
|
|
@ -39,8 +39,15 @@ class Api::V1::Projects::Branches::CreateService < ApplicationService
|
|||
end
|
||||
|
||||
def excute_data_to_gitea
|
||||
@gitea_data = $gitea_client.post_repos_branches_by_owner_repo(owner, repo, {body: request_body.to_json, query: request_params}) rescue nil
|
||||
raise Error, '创建分支失败!' unless @gitea_data.is_a?(Hash)
|
||||
begin
|
||||
@gitea_data = $gitea_client.post_repos_branches_by_owner_repo(owner, repo, {body: request_body.to_json, query: request_params})
|
||||
rescue Gitea::Api::ServerError => e
|
||||
if e.http_code == 409 && e.to_s.include?("The branch with the same tag already exists")
|
||||
raise Error, '创建分支失败,分支名称与标签名称不能相同!'
|
||||
else
|
||||
raise Error, '创建分支失败!'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def check_branch_exist
|
||||
|
|
|
|||
|
|
@ -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, CGI.escape(branch_name), {query: request_params})
|
||||
@gitea_data = $gitea_client.delete_repos_branches_by_owner_repo_branch(owner, repo, URI.encode(branch_name), {query: request_params})
|
||||
rescue => e
|
||||
raise Error, '保护分支无法删除!' if e.to_s.include?("branch protected")
|
||||
raise Error, '删除分支失败!'
|
||||
|
|
|
|||
|
|
@ -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, CGI.escape(tag_name), {query: request_params})
|
||||
@gitea_data = $gitea_client.delete_repos_tags_by_owner_repo_tag(owner, repo, URI.encode(tag_name), {query: request_params})
|
||||
rescue => e
|
||||
raise Error, '请先删除发行版!' if e.to_s.include?("409")
|
||||
raise Error, '删除标签失败!'
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@ json.commits_count @pull_request.commits_count
|
|||
json.files_count @pull_request.files_count
|
||||
json.comments_count @pull_request.comments_count
|
||||
json.reviewers @pull_request.reviewers.pluck(:login)
|
||||
json.mergeable @gitea_pull["mergeable"]
|
||||
json.state @gitea_pull["state"]
|
||||
json.pull_request_staus @pull_request.status == 1 ? "merged" : (@pull_request.status == 2 ? "closed" : "open")
|
||||
json.attached_issues @pull_request.attached_issues.each do |issue|
|
||||
json.(issue, :id, :subject, :project_issues_index)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ json.project_identifier @project.identifier
|
|||
json.pr_time time_from_now(@pull_request.updated_at)
|
||||
json.commits_count @gitea_pull["commit_num"]
|
||||
json.files_count @gitea_pull["changed_files"]
|
||||
json.comments_count @issue.journals.parent_journals.size
|
||||
json.comments_total_count @issue.get_journals_size
|
||||
json.comments_count @issue.journals.where.not(notes: nil).size
|
||||
json.comments_total_count @issue.journals.where.not(notes: nil).size
|
||||
json.can_reopen @pull_request.closed?
|
||||
json.assign_user do
|
||||
json.partial! 'users/user_simple', user: @issue_assign_to
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
json.name @file['content']['name']
|
||||
json.sha @file['content']['sha']
|
||||
json.size @file['content']['size']
|
||||
json.content @file['content']['content']
|
||||
json.encoding @file['content']['encoding']
|
||||
json.name @file['content'].present? ? @file['content']['name'] : params[:filepath]
|
||||
json.sha @file['content'].present? ? @file['content']['sha'] : ""
|
||||
json.size @file['content'].present? ? @file['content']['size'] : ""
|
||||
json.content @file['content'].present? ? @file['content']['content'] : params[:content]
|
||||
json.encoding @file['content'].present? ? @file['content']['encoding'] : "base64"
|
||||
json.pr_id @pull_issue.try(:id)
|
||||
json.commit do
|
||||
json.message @file['commit']['message']
|
||||
|
|
|
|||
|
|
@ -235,12 +235,17 @@ defaults format: :json do
|
|||
get :github
|
||||
get :all
|
||||
post :restore
|
||||
post :delete
|
||||
patch :update_default_branch
|
||||
end
|
||||
end
|
||||
match 'branches/*name', to: "branches#destroy", via: :all, constraints: { name: /[^\/]+/ }
|
||||
|
||||
resources :tags, param: :name, only: [:index, :create]
|
||||
resources :tags, param: :name, only: [:index, :create] do
|
||||
collection do
|
||||
post :delete
|
||||
end
|
||||
end
|
||||
delete 'tags/*name', to: "tags#destroy", via: :all, constraints: { name: /[^\/]+/ }
|
||||
get 'tags/*name', to: "tags#show", via: :all, constraints: { name: /[^\/]+/ }
|
||||
get '/compare/:base...:head/files' => 'compare#files', :constraints => { base: /.+/, head: /.+/ }
|
||||
|
|
|
|||
Loading…
Reference in New Issue