From b06e29260ad6e2db729fa99d1c317d3be2d912bc Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 1 Aug 2022 14:28:44 +0800 Subject: [PATCH 01/43] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20return=20error=20st?= =?UTF-8?q?atus=E9=BB=98=E8=AE=A4=E4=B8=BA-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/concerns/render_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/concerns/render_helper.rb b/app/controllers/concerns/render_helper.rb index 851a3ccf8..b90af99bb 100644 --- a/app/controllers/concerns/render_helper.rb +++ b/app/controllers/concerns/render_helper.rb @@ -3,7 +3,7 @@ module RenderHelper render json: { status: 0, message: 'success' }.merge(data) end - def render_error(message = '') + def render_error(message = '', status = -1) render json: { status: status, message: message } end From 096b0b954d2c6474f9677792e027d509ecee43e2 Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 1 Aug 2022 17:14:32 +0800 Subject: [PATCH 02/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20fork=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E5=8D=8F=E4=BD=9C=E8=80=85=E5=8F=AF=E4=BB=A5=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E6=96=87=E4=BB=B6=E8=87=B3=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/base_controller.rb | 7 +++++++ app/controllers/api/v1/projects/contents_controller.rb | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/v1/base_controller.rb b/app/controllers/api/v1/base_controller.rb index c765906b0..b937d798e 100644 --- a/app/controllers/api/v1/base_controller.rb +++ b/app/controllers/api/v1/base_controller.rb @@ -40,6 +40,13 @@ class Api::V1::BaseController < ApplicationController return render_forbidden if !current_user.admin? && !@project.operator?(current_user) end + # 具有仓库的操作权限或者fork仓库的操作权限 + def require_operate_above_or_fork_project + @project = load_project + puts !current_user.admin? && !@project.operator?(current_user) && !(@project.fork_project.present? && @project.fork_project.operator?(current_user)) + return render_forbidden if !current_user.admin? && !@project.operator?(current_user) && !(@project.fork_project.present? && @project.fork_project.operator?(current_user)) + end + # 具有对仓库的访问权限 def require_public_and_member_above @project = load_project diff --git a/app/controllers/api/v1/projects/contents_controller.rb b/app/controllers/api/v1/projects/contents_controller.rb index 44ab8c549..1c59164a1 100644 --- a/app/controllers/api/v1/projects/contents_controller.rb +++ b/app/controllers/api/v1/projects/contents_controller.rb @@ -1,13 +1,13 @@ class Api::V1::Projects::ContentsController < Api::V1::BaseController - before_action :require_operate_above, only: [:batch] + before_action :require_operate_above_or_fork_project, only: [:batch] def batch @batch_content_params = batch_content_params # 处理下author和committer信息,如果没传则默认为当前用户信息 @batch_content_params.merge!(author_email: current_user.mail, author_name: current_user.login) if batch_content_params[:author_email].blank? && batch_content_params[:author_name].blank? @batch_content_params.merge!(committer_email: current_user.mail, committer_name: current_user.login) if batch_content_params[:committer_email].blank? && batch_content_params[:committer_name].blank? - @result_object = Api::V1::Projects::Contents::BatchCreateService.call(@project, @batch_content_params, current_user&.gitea_token) - puts @result_object + + @result_object = Api::V1::Projects::Contents::BatchCreateService.call(@project, @batch_content_params, @project.owner.gitea_token) end private From 9d385845a6b753be6942b733432c83c7ff1cc26e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Tue, 2 Aug 2022 15:27:16 +0800 Subject: [PATCH 03/43] =?UTF-8?q?fixed=20=E8=AF=84=E5=AE=A1=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E4=B8=BA=E5=B7=B2=E8=AF=BB=E5=92=8C=E6=9C=AA=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/topic/banners_controller.rb | 3 +- app/controllers/mark_files_controller.rb | 36 ++++++++++++++----- config/routes.rb | 6 +++- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/app/controllers/admins/topic/banners_controller.rb b/app/controllers/admins/topic/banners_controller.rb index 359845806..8d48892bc 100644 --- a/app/controllers/admins/topic/banners_controller.rb +++ b/app/controllers/admins/topic/banners_controller.rb @@ -1,8 +1,9 @@ class Admins::Topic::BannersController < Admins::Topic::BaseController before_action :find_banner, only: [:edit, :update, :destroy] - def index + def index @banners = paginate(::Topic::Banner) + @banners = paginate(::Topic::Banner.where("title like ?", "%#{params[:search]}%")) if params[:search].present? end def new diff --git a/app/controllers/mark_files_controller.rb b/app/controllers/mark_files_controller.rb index 4668471e3..36b5b81f0 100644 --- a/app/controllers/mark_files_controller.rb +++ b/app/controllers/mark_files_controller.rb @@ -9,21 +9,39 @@ class MarkFilesController < ApplicationController end def create - unless @pull_request.mark_files.present? - MarkFile.bulk_insert(*%i[pull_request_id, file_path_sha file_path created_at updated_at]) do |worker| - @files_result['Files'].each do |file| - worker.add(pull_request_id: @pull_request.id, file_path_sha: SecureRandom.uuid.gsub("-", ""), file_path: file['Name']) - end - end - end + # unless @pull_request.mark_files.present? + # MarkFile.bulk_insert(*%i[pull_request_id, file_path_sha file_path created_at updated_at]) do |worker| + # @files_result['Files'].each do |file| + # worker.add(pull_request_id: @pull_request.id, file_path_sha: SecureRandom.uuid.gsub("-", ""), file_path: file['Name']) + # end + # end + # end end def mark_file_as_unread - + tip_exception "参数错误" if params[:file_path_sha].blank? + file_path = Base64.strict_decode64(params[:file_path_sha].to_s) + mark_file = @pull_request.mark_files.find_or_initialize_by(file_path_sha: params[:file_path_sha]) + mark_file.file_path = file_path + mark_file.user_id = current_user.id + mark_file.mark_as_read = false + mark_file.save + render_ok + rescue Exception => e + tip_exception "参数解析错误" end def mark_file_as_read - + tip_exception "参数错误" if params[:file_path_sha].blank? + file_path = Base64.strict_decode64(params[:file_path_sha].to_s) + mark_file = @pull_request.mark_files.find_or_initialize_by(file_path_sha: params[:file_path_sha]) + mark_file.file_path = file_path + mark_file.user_id = current_user.id + mark_file.mark_as_read = true + mark_file.save + render_ok + rescue Exception => e + tip_exception "参数解析错误" end private diff --git a/config/routes.rb b/config/routes.rb index f7483666b..32f7ae3e2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -557,7 +557,11 @@ Rails.application.routes.draw do get :files get :commits resources :reviews, only: [:create] - resources :mark_files, only: [:index, :create] + scope '/diffs' do + resources :mark_files, only: [:index] + put :mark_file_as_unread, to: 'mark_files#mark_file_as_unread', as: 'mark_file_as_unread' + put :mark_file_as_read, to: 'mark_files#mark_file_as_read', as: 'mark_file_as_read' + end end collection do post :check_can_merge From 8bf4e9b8d23029070ca525192de3eed3074cf8e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Tue, 2 Aug 2022 18:10:01 +0800 Subject: [PATCH 04/43] fixed Repository.url --- app/models/repository.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index 03c4e98e0..c60164001 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -49,7 +49,7 @@ class Repository < ApplicationRecord end def url - self['url'].blank? ? "#{Gitea.gitea_config[:domain]}/#{self.owner&.login}/#{self.identifier}.git" : self['url'] + self['url'].blank? ? "#{GiteaService.gitea_config[:domain]}/#{self.owner&.login}/#{self.identifier}.git" : self['url'] end # with repository is mirror From ab5d273f9888339cc72512a12239f2bcd696b8bb Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 2 Aug 2022 19:03:54 +0800 Subject: [PATCH 05/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E7=89=88?= =?UTF-8?q?=E6=9C=ACdiff=E6=96=B0=E5=A2=9Ediff=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/_simple_gitea_diff_detail.json.jbuilder | 1 + .../api/v1/projects/_simple_gitea_diff_file_detail.json.jbuilder | 1 + 2 files changed, 2 insertions(+) diff --git a/app/views/api/v1/projects/_simple_gitea_diff_detail.json.jbuilder b/app/views/api/v1/projects/_simple_gitea_diff_detail.json.jbuilder index 5dff0b89d..f313d2edd 100644 --- a/app/views/api/v1/projects/_simple_gitea_diff_detail.json.jbuilder +++ b/app/views/api/v1/projects/_simple_gitea_diff_detail.json.jbuilder @@ -14,6 +14,7 @@ json.files diff['Files'].each do |file| json.is_renamed file['IsRenamed'] json.is_ambiguous file['IsAmbiguous'] json.is_submodule file['IsSubmodule'] + json.diff file['Diff'] json.sections file['Sections'] do |section| json.file_name section['FileName'] json.name section['Name'] diff --git a/app/views/api/v1/projects/_simple_gitea_diff_file_detail.json.jbuilder b/app/views/api/v1/projects/_simple_gitea_diff_file_detail.json.jbuilder index 13f833338..9bbcafd5f 100644 --- a/app/views/api/v1/projects/_simple_gitea_diff_file_detail.json.jbuilder +++ b/app/views/api/v1/projects/_simple_gitea_diff_file_detail.json.jbuilder @@ -10,6 +10,7 @@ json.name file['Name'] json.is_renamed file['IsRenamed'] json.is_ambiguous file['IsAmbiguous'] json.is_submodule file['IsSubmodule'] + json.diff file['Diff'] json.sections file['Sections'] do |section| json.file_name section['FileName'] json.name section['Name'] From fea11bdc2ec9b0a5c44d3863cc0832571187c6c7 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 3 Aug 2022 14:20:25 +0800 Subject: [PATCH 06/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9Awebhook=20type?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/webhooks_controller.rb | 7 ++++++- app/docs/slate/source/includes/_pulls.md | 1 + app/docs/slate/source/includes/_repositories.md | 2 +- .../api/v1/projects/webhooks/create_service.rb | 7 ++++--- .../projects/webhooks/_simple_detail.json.jbuilder | 2 +- .../webhooks/_simple_gitea_detail.json.jbuilder | 1 + public/docs/api.html | 12 ++++++++++++ 7 files changed, 26 insertions(+), 6 deletions(-) diff --git a/app/controllers/api/v1/projects/webhooks_controller.rb b/app/controllers/api/v1/projects/webhooks_controller.rb index bb2c2172c..1dec26d21 100644 --- a/app/controllers/api/v1/projects/webhooks_controller.rb +++ b/app/controllers/api/v1/projects/webhooks_controller.rb @@ -5,11 +5,12 @@ class Api::V1::Projects::WebhooksController < Api::V1::BaseController def index # @result_object = Api::V1::Projects::Webhooks::ListService.call(@project, current_user&.gitea_token) @webhooks = @project.webhooks + @webhooks = @webhooks.where(type: params[:type]) if params[:type].present? @webhooks = kaminari_paginate(@webhooks) end def create - @result_object = Api::V1::Projects::Webhooks::CreateService.call(@project, webhook_params, current_user&.gitea_token) + @result_object = Api::V1::Projects::Webhooks::CreateService.call(@project, create_webhook_params, current_user&.gitea_token) end def show @@ -44,6 +45,10 @@ class Api::V1::Projects::WebhooksController < Api::V1::BaseController end private + def create_webhook_params + params.require(:webhook).permit(:active, :branch_filter, :http_method, :url, :content_type, :secret, :type, events: []) + end + def webhook_params params.require(:webhook).permit(:active, :branch_filter, :http_method, :url, :content_type, :secret, events: []) end diff --git a/app/docs/slate/source/includes/_pulls.md b/app/docs/slate/source/includes/_pulls.md index adc6e3cc4..671c7fbd5 100644 --- a/app/docs/slate/source/includes/_pulls.md +++ b/app/docs/slate/source/includes/_pulls.md @@ -903,6 +903,7 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/versions/33/diff |is_renamed|bool|是否重命名| |is_ambiguous|bool|| |is_submodule|bool|是否为子模块| +|diff|string|git diff内容| |sections.file_name|string|文件名称| |sections.name|string|| |sections.lines.left_index|int|文件变动之前所在行数| diff --git a/app/docs/slate/source/includes/_repositories.md b/app/docs/slate/source/includes/_repositories.md index a9fa42e2c..b06325090 100644 --- a/app/docs/slate/source/includes/_repositories.md +++ b/app/docs/slate/source/includes/_repositories.md @@ -2283,7 +2283,7 @@ await octokit.request('POST /api/v1/yystopf/ceshi/webhooks.json') |webhook.active |是| | bool | 是否激活| |webhook.branch_filter|否| |string|分支过滤| |webhook.events |否| |array|触发事件| - +|webhook.type |否| gitea |string| hook类型,gitea slack discord dingtalk telegram msteams feishu matrix jianmu| 触发事件字段说明 参数| 含义| diff --git a/app/services/api/v1/projects/webhooks/create_service.rb b/app/services/api/v1/projects/webhooks/create_service.rb index bef0a3405..edc8b2263 100644 --- a/app/services/api/v1/projects/webhooks/create_service.rb +++ b/app/services/api/v1/projects/webhooks/create_service.rb @@ -1,14 +1,14 @@ class Api::V1::Projects::Webhooks::CreateService < ApplicationService include ActiveModel::Model - attr_reader :project, :token, :owner, :repo, :active, :branch_filter, :content_type, :url, :http_method, :secret, :events + attr_reader :project, :token, :owner, :repo, :active, :branch_filter, :content_type, :url, :http_method, :secret, :events, :type attr_accessor :gitea_data validates :url, format: { with: URI::regexp(%w[http https]), message: "请输入正确的地址" } validates :active, inclusion: {in: [true, false]} validates :http_method, inclusion: { in: %w(POST GET), message: "请输入正确的请求方式"} validates :content_type, inclusion: { in: %w(json form), message: "请输入正确的Content Type"} - + validates :type, inclusion: {in: %w(gitea slack discord dingtalk telegram msteams feishu matrix jianmu), message: "请输入正确的Webhook Type"} def initialize(project, params, token=nil) @project = project @owner = project&.owner.login @@ -20,6 +20,7 @@ class Api::V1::Projects::Webhooks::CreateService < ApplicationService @http_method = params[:http_method] @secret = params[:secret] @events = params[:events] + @type = params[:type] || "gitea" @token = token end @@ -52,7 +53,7 @@ class Api::V1::Projects::Webhooks::CreateService < ApplicationService secret: secret }, events: events || [], - type: 'gitea', + type: type, } end diff --git a/app/views/api/v1/projects/webhooks/_simple_detail.json.jbuilder b/app/views/api/v1/projects/webhooks/_simple_detail.json.jbuilder index 145b3e59b..6926cfd32 100644 --- a/app/views/api/v1/projects/webhooks/_simple_detail.json.jbuilder +++ b/app/views/api/v1/projects/webhooks/_simple_detail.json.jbuilder @@ -1,3 +1,3 @@ -json.(webhook, :id, :url, :http_method, :is_active) +json.(webhook, :id, :url, :http_method, :is_active, :type) json.last_status webhook.last_status json.create_time Time.at(webhook.created_unix).strftime("%Y-%m-%d %H:%M:%S") \ No newline at end of file diff --git a/app/views/api/v1/projects/webhooks/_simple_gitea_detail.json.jbuilder b/app/views/api/v1/projects/webhooks/_simple_gitea_detail.json.jbuilder index ca180d8b1..96c9eac12 100644 --- a/app/views/api/v1/projects/webhooks/_simple_gitea_detail.json.jbuilder +++ b/app/views/api/v1/projects/webhooks/_simple_gitea_detail.json.jbuilder @@ -1,4 +1,5 @@ json.id webhook["id"] +json.type webhook["type"] json.content_type webhook['config']['content_type'] json.http_method webhook['config']['http_method'] json.url webhook['config']['url'] diff --git a/public/docs/api.html b/public/docs/api.html index bcc4da5c9..a9909eb91 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -11364,6 +11364,13 @@ http://localhost:3000/api/v1/yystopf/ceshi/webhooks.json array 触发事件 + +webhook.type +否 +gitea +string +hook类型,gitea slack discord dingtalk telegram msteams feishu matrix jianmu +

触发事件字段说明

@@ -14032,6 +14039,11 @@ http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/versions/33/diff.json 是否为子模块 +diff +string +git diff内容 + + sections.file_name string 文件名称 From 96d34d0237f20b38293fba47aef551974d32a1e9 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 3 Aug 2022 15:31:04 +0800 Subject: [PATCH 07/43] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=AF=B7=E6=B1=82=E5=AE=A1=E6=9F=A5=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/projects/pulls/reviews_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/v1/projects/pulls/reviews_controller.rb b/app/controllers/api/v1/projects/pulls/reviews_controller.rb index 039a6c4df..11df824e8 100644 --- a/app/controllers/api/v1/projects/pulls/reviews_controller.rb +++ b/app/controllers/api/v1/projects/pulls/reviews_controller.rb @@ -13,7 +13,7 @@ class Api::V1::Projects::Pulls::ReviewsController < Api::V1::Projects::Pulls::Ba private def require_reviewer - return render_forbidden('您没有审查权限,请联系项目管理员') if !current_user.admin? && !@pull_request.reviewers.exists?(current_user.id) + return render_forbidden('您没有审查权限,请联系项目管理员') if !current_user.admin? && !@pull_request.reviewers.exists?(current_user.id) && !@project.manager?(current_user) end def review_params From 024bc289defc5ba36d311cca07620ef491574561 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 3 Aug 2022 17:13:45 +0800 Subject: [PATCH 08/43] =?UTF-8?q?=E4=BF=AE=E6=94=B9:=20=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=AF=84=E8=AE=BA=E5=BF=85=E9=80=89=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BB=A5=E5=8F=8A=E5=AE=A1=E6=9F=A5=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/pulls/reviews_controller.rb | 3 ++- app/docs/slate/source/includes/_pulls.md | 3 ++- .../api/v1/projects/pulls/journals/create_service.rb | 2 +- .../api/v1/projects/pulls/reviews/index.json.jbuilder | 3 ++- public/docs/api.html | 9 ++++++++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/v1/projects/pulls/reviews_controller.rb b/app/controllers/api/v1/projects/pulls/reviews_controller.rb index 11df824e8..622296c6c 100644 --- a/app/controllers/api/v1/projects/pulls/reviews_controller.rb +++ b/app/controllers/api/v1/projects/pulls/reviews_controller.rb @@ -2,7 +2,8 @@ class Api::V1::Projects::Pulls::ReviewsController < Api::V1::Projects::Pulls::Ba def index @reviews = @pull_request.reviews - @reviews = kaminari_paginate(@reviews) + @reviews = @reviews.where(status: params[:status]) if params[:status].present? + # @reviews = kaminari_paginate(@reviews) end before_action :require_reviewer, only: [:create] diff --git a/app/docs/slate/source/includes/_pulls.md b/app/docs/slate/source/includes/_pulls.md index 671c7fbd5..9733f958b 100644 --- a/app/docs/slate/source/includes/_pulls.md +++ b/app/docs/slate/source/includes/_pulls.md @@ -1029,6 +1029,7 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/reviews.json') |owner |是| |string |用户登录名 | |repo |是| |string |项目标识identifier | |index |是| | int |合并请求序号| +|status |否| |string |审查类型, common: 评论类型, approved: 已通过, rejected: 已拒绝| ### 返回字段说明: 参数 | 类型 | 字段说明 @@ -1373,7 +1374,7 @@ await octokit.request('POST /api/v1/yystopf/ceshi/pulls/1/journals.json') |index |是| | integer|合并请求序号| |type |是| | string |评论类型 comment: 普通, problem: 需要回应的评论| |note |否| | string |评论内容| -|review_id |是| | string |审查ID| +|review_id |否| | string |审查ID| |line_code |否| | string |行号| |commit_id |否| | bool |commitID| |path |否| | integer|文件路径| diff --git a/app/services/api/v1/projects/pulls/journals/create_service.rb b/app/services/api/v1/projects/pulls/journals/create_service.rb index 45b5ec030..7b0401c90 100644 --- a/app/services/api/v1/projects/pulls/journals/create_service.rb +++ b/app/services/api/v1/projects/pulls/journals/create_service.rb @@ -23,7 +23,7 @@ class Api::V1::Projects::Pulls::Journals::CreateService < ApplicationService def call raise Error, errors.full_messages.join(", ") unless valid? - check_review_is_exists + check_review_is_exists if review_id.present? if type == 'problem' create_problem_journal else diff --git a/app/views/api/v1/projects/pulls/reviews/index.json.jbuilder b/app/views/api/v1/projects/pulls/reviews/index.json.jbuilder index 04792d5c6..567df1b75 100644 --- a/app/views/api/v1/projects/pulls/reviews/index.json.jbuilder +++ b/app/views/api/v1/projects/pulls/reviews/index.json.jbuilder @@ -1,4 +1,5 @@ -json.total_count @reviews.total_count +# json.total_count @reviews.total_count +json.total_count @reviews.count json.reviews @reviews.each do |review| json.partial! 'api/v1/projects/pulls/reviews/simple_detail', review: review end \ No newline at end of file diff --git a/public/docs/api.html b/public/docs/api.html index a9909eb91..943f8c361 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -14254,6 +14254,13 @@ http://localhost:3000/api/v1/yystopf/ceshi_commit/pulls/3/versions/33/diff.json int 合并请求序号 + +status +否 + +string +审查类型, common: 评论类型, approved: 已通过, rejected: 已拒绝 +

返回字段说明:

@@ -15000,7 +15007,7 @@ http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/journals.json - + From 1a2352c535ce597594b6ef88873190f4bf874320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 10:03:29 +0800 Subject: [PATCH 09/43] =?UTF-8?q?fixed=20reposyncer=20gitlink=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 107320934..9b4a18c95 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -13,7 +13,7 @@ class ObRepositorySyncsController < ApplicationController tip_exception "参数错误" if params[:github_address].blank? && params[:gitee_address].blank? project_name ="#{@project.owner.name}:#{@project.identifier}" service = ObRepositorySync::ApiService.new(project_name) - project_params = params.merge({ "gitlink_address": @project.repository.url }) + project_params = params.merge({ "gitlink_address": "https://gitlink.org.cn/#{@project.owner&.login}/#{@project.identifier}.git" }) res = service.create_projects(project_params) tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" sync_id = res["data"]["id"] From 1b3a4bc1469afb091d45b29f0d8cc7e21060092b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 10:37:28 +0800 Subject: [PATCH 10/43] =?UTF-8?q?fixed=20reposyncer=20gitlink=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 9b4a18c95..45843ec80 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -23,7 +23,6 @@ class ObRepositorySyncsController < ApplicationController ob_repository_sync.name = project_name ob_repository_sync.github_address = "#{params[:github_address]}" ob_repository_sync.gitee_address = "#{params[:gitee_address]}" - ob_repository_sync.gitlink_address = @project.repository.url ob_repository_sync.github_token = "#{params[:github_token]}" ob_repository_sync.gitee_token = "#{params[:gitee_token]}" ob_repository_sync.sync_id = sync_id From ebe8df82216211ec4c738e19488007b9cbcef761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 11:24:15 +0800 Subject: [PATCH 11/43] fixed reposyncer delete --- app/controllers/ob_repository_syncs_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 45843ec80..8b6c1731c 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -37,6 +37,7 @@ class ObRepositorySyncsController < ApplicationController if res["code"].to_s == "200" @ob_repository_sync.destroy! end + render_ok end def jobs From a9811768d42718c5c614623314471a9e98a4a0b7 Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 4 Aug 2022 15:46:19 +0800 Subject: [PATCH 12/43] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=AF=84=E8=AE=BA=E7=B1=BB=E5=9E=8B=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/docs/slate/source/includes/_pulls.md | 2 +- app/services/api/v1/projects/pulls/journals/create_service.rb | 2 +- public/docs/api.html | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/docs/slate/source/includes/_pulls.md b/app/docs/slate/source/includes/_pulls.md index 9733f958b..ecc9c285a 100644 --- a/app/docs/slate/source/includes/_pulls.md +++ b/app/docs/slate/source/includes/_pulls.md @@ -1372,7 +1372,7 @@ await octokit.request('POST /api/v1/yystopf/ceshi/pulls/1/journals.json') |owner |是| | string |用户登录名 | |repo |是| | string |项目标识identifier | |index |是| | integer|合并请求序号| -|type |是| | string |评论类型 comment: 普通, problem: 需要回应的评论| +|type |否|comment| string |评论类型 comment: 普通, problem: 需要回应的评论| |note |否| | string |评论内容| |review_id |否| | string |审查ID| |line_code |否| | string |行号| diff --git a/app/services/api/v1/projects/pulls/journals/create_service.rb b/app/services/api/v1/projects/pulls/journals/create_service.rb index 7b0401c90..df207771b 100644 --- a/app/services/api/v1/projects/pulls/journals/create_service.rb +++ b/app/services/api/v1/projects/pulls/journals/create_service.rb @@ -15,7 +15,7 @@ class Api::V1::Projects::Pulls::Journals::CreateService < ApplicationService @note = params[:note] @commit_id = params[:commit_id] @path = params[:path] - @type = params[:type] + @type = params[:type] || "comment" @diff = params[:diff] @review_id = params[:review_id] @user = user diff --git a/public/docs/api.html b/public/docs/api.html index 943f8c361..c2e6e4270 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -14993,8 +14993,8 @@ http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/journals.json - - + + From 4941e0868466eb172b919194ba57adb49a3e0c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 16:24:19 +0800 Subject: [PATCH 13/43] fixed reposyncer job_type --- app/controllers/ob_repository_syncs_controller.rb | 2 +- app/services/ob_repository_sync/api_service.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 8b6c1731c..d48cf1499 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -57,7 +57,7 @@ class ObRepositorySyncsController < ApplicationController job.github_branch = "#{params[:github_branch]}" job.gitee_branch = "#{params[:gitee_branch]}" job.gitlink_branch = "#{params[:gitlink_branch]}" - job.job_type = "#{params[:type]}" + job.job_type = "#{params[:job_type]}" job.base = "#{params[:base]}" job.job_id = job_id job.save diff --git a/app/services/ob_repository_sync/api_service.rb b/app/services/ob_repository_sync/api_service.rb index 5e93c70e8..787383432 100644 --- a/app/services/ob_repository_sync/api_service.rb +++ b/app/services/ob_repository_sync/api_service.rb @@ -58,7 +58,7 @@ class ObRepositorySync::ApiService < ApplicationService "github_branch": "#{params[:github_branch]}", "gitee_branch": "#{params[:gitee_branch]}", "gitlink_branch": "#{params[:gitlink_branch]}", - "type": "#{params[:type]}", + "type": "#{params[:job_type]}", "base": "#{params[:base]}" } url = URI("#{domain}/cerobot/projects/#{@project_name}/jobs") From 4fb2003f64303aa1825b0cfb83d206e9134d203f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 16:50:01 +0800 Subject: [PATCH 14/43] =?UTF-8?q?fixed=20reposyncer=20=E5=88=86=E6=94=AF?= =?UTF-8?q?=E7=BB=84=E5=90=88=E5=B7=B2=E9=85=8D=E7=BD=AE=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index d48cf1499..344a58355 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -48,6 +48,13 @@ class ObRepositorySyncsController < ApplicationController end def create_jobs + tip_exception "必须配置一个分支" if params[:github_branch].blank? && params[:gitee_branch].blank? && params[:gitlink_branch].blank? + ob_jobs = ObRepositorySyncJob.where(ob_repository_sync_id: @ob_repository_sync.id) + ob_jobs.where(job_type: params[:job_type]) if params[:job_type].present? + ob_jobs.where(github_branch: params[:github_branch]) if params[:github_branch].present? + ob_jobs.where(gitee_branch: params[:gitee_branch]) if params[:gitee_branch].present? + ob_jobs.where(gitlink_branch: params[:gitlink_branch]) if params[:gitlink_branch].present? + tip_exception "该分支组合已配置,不能重复!" if ob_jobs.count > 0 service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.create_projects_jobs(params) tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" From 72a4549fe9db5766691130d861f54c985b01cefd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 17:02:25 +0800 Subject: [PATCH 15/43] =?UTF-8?q?fixed=20reposyncer=20jobs=20=E5=88=86?= =?UTF-8?q?=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 8 +++++++- app/services/ob_repository_sync/api_service.rb | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 344a58355..9a0471c02 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -44,7 +44,13 @@ class ObRepositorySyncsController < ApplicationController tip_exception "该项目未创建同步任务" if @ob_repository_sync.blank? service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.get_projects_jobs - render_ok(count: res["data"]["total"], data: res["data"]["list"]) + data = res["data"]["list"] + if params[:type] && params[:type].to_s.downcase == "github" + data = data.select { |row| row["github_branch"].present? } + elsif params[:type] && params[:type].to_s.downcase == "gitee" + data = data.select { |row| row["gitee_branch"].present? } + end + render_ok(count: res["data"]["total"], data: data) end def create_jobs diff --git a/app/services/ob_repository_sync/api_service.rb b/app/services/ob_repository_sync/api_service.rb index 787383432..b059f7995 100644 --- a/app/services/ob_repository_sync/api_service.rb +++ b/app/services/ob_repository_sync/api_service.rb @@ -43,7 +43,7 @@ class ObRepositorySync::ApiService < ApplicationService end def get_projects_jobs - url = URI("#{domain}/cerobot/projects/#{@project_name}/jobs") + url = URI("#{domain}/cerobot/projects/#{@project_name}/jobs?pageSize=100&pageNum=1") http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) request["Content-Type"] = "application/json" From 690ddcb4a7a0467ed1031f9f1e6f2c4424611004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 4 Aug 2022 17:20:24 +0800 Subject: [PATCH 16/43] =?UTF-8?q?fixed=20reposyncer=20=E5=88=86=E6=94=AF?= =?UTF-8?q?=E7=BB=84=E5=90=88=E5=B7=B2=E9=85=8D=E7=BD=AE=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 9a0471c02..8fd97355a 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -56,10 +56,10 @@ class ObRepositorySyncsController < ApplicationController def create_jobs tip_exception "必须配置一个分支" if params[:github_branch].blank? && params[:gitee_branch].blank? && params[:gitlink_branch].blank? ob_jobs = ObRepositorySyncJob.where(ob_repository_sync_id: @ob_repository_sync.id) - ob_jobs.where(job_type: params[:job_type]) if params[:job_type].present? - ob_jobs.where(github_branch: params[:github_branch]) if params[:github_branch].present? - ob_jobs.where(gitee_branch: params[:gitee_branch]) if params[:gitee_branch].present? - ob_jobs.where(gitlink_branch: params[:gitlink_branch]) if params[:gitlink_branch].present? + ob_jobs = ob_jobs.where(job_type: params[:job_type]) if params[:job_type].present? + ob_jobs = ob_jobs.where(github_branch: params[:github_branch]) if params[:github_branch].present? + ob_jobs = ob_jobs.where(gitee_branch: params[:gitee_branch]) if params[:gitee_branch].present? + ob_jobs = ob_jobs.where(gitlink_branch: params[:gitlink_branch]) if params[:gitlink_branch].present? tip_exception "该分支组合已配置,不能重复!" if ob_jobs.count > 0 service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.create_projects_jobs(params) From f8268accc00f25a402b76cd7a1af7e715760e68a Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 4 Aug 2022 17:28:14 +0800 Subject: [PATCH 17/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=20=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E4=B8=8B=E9=A1=B9=E7=9B=AE=E5=8D=8F=E4=BD=9C=E8=80=85?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/members_controller.rb | 5 ++++ app/views/members/index.json.jbuilder | 34 ++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index 92ad4ccbb..b4d8e1f9a 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -26,6 +26,9 @@ class MembersController < ApplicationController @total_count = scope.size @members = paginate(scope) + if @project.owner.is_a?(Organization) && (params[:page].to_i == 1 || params[:page].blank?) + @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take + end end def remove @@ -65,6 +68,8 @@ class MembersController < ApplicationController end def check_member_not_exists! + @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take + return render_error("用户为组织成员,请到组织下操作!") if @current_user_header_team.present? return render_error("user_id为#{params[:user_id]}的用户还不是项目成员") unless member_exists? end diff --git a/app/views/members/index.json.jbuilder b/app/views/members/index.json.jbuilder index 457c50271..ba08d0214 100644 --- a/app/views/members/index.json.jbuilder +++ b/app/views/members/index.json.jbuilder @@ -1,9 +1,31 @@ json.total_count @total_count -json.members @members do |member| - if member.user.present? - json.partial! 'member', user: member.user - json.is_owner @project.owner?(member.user) - json.role member.roles.last.name - json.role_name t("roles.#{member.roles.last.name}") +json.members do + if @current_user_header_team.present? + json.child! do + json.partial! 'member', user: current_user + json.is_owner @project.owner?(current_user) + case @current_user_header_team.authorize + when 'read' + json.role 'Reporter' + json.role_name t("roles.Reporter") + when 'write' + json.role 'Developer' + json.role_name t("roles.Developer") + when 'admin' + json.role 'Manager' + json.role_name t("roles.Manager") + when 'owner' + json.role 'Manager' + json.role_name t("roles.Manager") + end + end + end + @members.each do |member| + json.child! do + json.partial! 'member', user: member.user + json.is_owner @project.owner?(member.user) + json.role member.roles.last.name + json.role_name t("roles.#{member.roles.last.name}") + end end end From d20a7b13180449024a450386245b095b6f21f3a6 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 5 Aug 2022 10:50:41 +0800 Subject: [PATCH 18/43] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=8D=8F=E4=BD=9C=E8=80=85=E6=B7=BB=E5=8A=A0=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=88=90=E5=91=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/members_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index b4d8e1f9a..d7f0204c9 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -64,12 +64,13 @@ class MembersController < ApplicationController end def check_member_exists! - return render_error("user_id为#{params[:user_id]}的用户已经是项目成员") if member_exists? + @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take + return render_error("user_id为#{params[:user_id]}的用户已经是项目成员") if member_exists? || (params[:user_id].to_i == current_user.id && @current_user_header_team.present?) end def check_member_not_exists! @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take - return render_error("用户为组织成员,请到组织下操作!") if @current_user_header_team.present? + return render_error("用户为组织成员,请到组织下操作!") if (params[:user_id].to_i == current_user.id && @current_user_header_team.present?) && !member_exists? return render_error("user_id为#{params[:user_id]}的用户还不是项目成员") unless member_exists? end From b8be0c23cb63655ac4c1340105c11081421985dc Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 5 Aug 2022 11:05:29 +0800 Subject: [PATCH 19/43] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/members_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index d7f0204c9..5c8ed963e 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -26,7 +26,7 @@ class MembersController < ApplicationController @total_count = scope.size @members = paginate(scope) - if @project.owner.is_a?(Organization) && (params[:page].to_i == 1 || params[:page].blank?) + if @project.owner.is_a?(Organization) && (params[:page].to_i == 1 || params[:page].blank?) && !@project.members.exists?(user_id: current_user.id) @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take end end From eac06382fee5ba6377d6badc327400c24bd1f854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Fri, 5 Aug 2022 11:41:13 +0800 Subject: [PATCH 20/43] fixed reposyncer logs routes --- config/routes.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/routes.rb b/config/routes.rb index 32f7ae3e2..9be96e01c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -592,6 +592,7 @@ Rails.application.routes.draw do collection do delete :delete get :jobs + get :job_logs post :create_jobs delete :delete_job post :start_job From 14f4b290cbfcf41e3022ac1456d77cf599023ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Fri, 5 Aug 2022 11:42:40 +0800 Subject: [PATCH 21/43] fixed reposyncer job_logs --- app/controllers/ob_repository_syncs_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 8fd97355a..87622b90b 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -107,7 +107,7 @@ class ObRepositorySyncsController < ApplicationController tip_exception "该项目未创建同步任务" if @ob_repository_sync.blank? tip_exception "缺少参数job_id" if params[:job_id].blank? service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) - @data = service.job_logs params[:job_id] + res = service.job_logs params[:job_id] tip_exception "请求错误: #{res["msg"]}" if res["code"].to_s != "200" render_ok(count: res["data"]["total"], data: res["data"]["list"]) end From 99ba5230846c61724584a427d52cdc388665ac0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Fri, 5 Aug 2022 11:45:46 +0800 Subject: [PATCH 22/43] fixed reposyncer job_logs --- app/services/ob_repository_sync/api_service.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/services/ob_repository_sync/api_service.rb b/app/services/ob_repository_sync/api_service.rb index b059f7995..5ecd48afa 100644 --- a/app/services/ob_repository_sync/api_service.rb +++ b/app/services/ob_repository_sync/api_service.rb @@ -124,11 +124,7 @@ class ObRepositorySync::ApiService < ApplicationService response = http.request(request) Rails.logger.info "set_commit job response.read_body======#{response.read_body}" res = JSON.parse(response.body) - if res["code"].to_s == "200" - res["data"] - else - [] - end + res end def pull_requests From e7aa05b5359b09d3cabe40edc5f7b28c65a5e9a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Fri, 5 Aug 2022 13:48:40 +0800 Subject: [PATCH 23/43] =?UTF-8?q?fixed=20reposyncer=20=E5=88=A0=E9=99=A4jo?= =?UTF-8?q?b=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 87622b90b..0ba17163c 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -83,7 +83,8 @@ class ObRepositorySyncsController < ApplicationController service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.delete_job params[:job_id] tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" - @ob_repository_sync.destroy! + job = ObRepositorySyncJob.find_by(ob_repository_sync_id: @ob_repository_sync.id, job_id: params[:job_id]) + job.destroy! if job.present? render_ok end From 0699c768a5404bbe826964cb44867b27a412145f Mon Sep 17 00:00:00 2001 From: yystopf Date: Mon, 8 Aug 2022 14:17:45 +0800 Subject: [PATCH 24/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9Afork=E4=BB=93?= =?UTF-8?q?=E5=BA=93=E4=B8=8D=E6=94=AF=E6=8C=81=E4=BB=A3=E7=A0=81=E6=BA=AF?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/traces/projects_controller.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/controllers/traces/projects_controller.rb b/app/controllers/traces/projects_controller.rb index 89a4aac8d..74e683f85 100644 --- a/app/controllers/traces/projects_controller.rb +++ b/app/controllers/traces/projects_controller.rb @@ -3,6 +3,7 @@ class Traces::ProjectsController < Traces::BaseController before_action :require_login before_action :load_project + before_action :require_project_not_be_forked_project before_action :set_trace_token_to_cookie before_action :authorizate_user_can_edit_project!, except: [:task_results] @@ -95,4 +96,8 @@ class Traces::ProjectsController < Traces::BaseController :domain => Trace.trace_config[:cookie_domain] } end + + def require_project_not_be_forked_project + return render_error('fork仓库暂不支持代码溯源服务,敬请谅解。') if @project.forked_from_project_id.present? + end end \ No newline at end of file From 4b05838498b361717e020f5a11d22ab90eda6416 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 9 Aug 2022 09:48:02 +0800 Subject: [PATCH 25/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E8=AF=B7=E6=B1=82=E8=AF=84=E8=AE=BA=E6=96=B0=E5=A2=9E?= =?UTF-8?q?path=E5=8F=82=E6=95=B0=E7=AD=9B=E9=80=89=E4=BB=A5=E5=8F=8A?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=88=86=E9=A1=B5=E6=9C=80=E5=A4=9A=E8=BF=94?= =?UTF-8?q?=E5=9B=9E200=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/v1/projects/pulls/journals_controller.rb | 2 +- app/docs/slate/source/includes/_pulls.md | 1 + .../api/v1/projects/pulls/journals/list_service.rb | 4 +++- .../api/v1/projects/pulls/journals/index.json.jbuilder | 2 +- public/docs/api.html | 7 +++++++ 5 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/v1/projects/pulls/journals_controller.rb b/app/controllers/api/v1/projects/pulls/journals_controller.rb index d32474973..4f46a916f 100644 --- a/app/controllers/api/v1/projects/pulls/journals_controller.rb +++ b/app/controllers/api/v1/projects/pulls/journals_controller.rb @@ -2,7 +2,7 @@ class Api::V1::Projects::Pulls::JournalsController < Api::V1::Projects::Pulls::B def index @journals = Api::V1::Projects::Pulls::Journals::ListService.call(@project, @pull_request, params, current_user) - @journals = kaminari_paginate(@journals) + @journals = @journals.limit(200) end def create diff --git a/app/docs/slate/source/includes/_pulls.md b/app/docs/slate/source/includes/_pulls.md index ecc9c285a..85b77e181 100644 --- a/app/docs/slate/source/includes/_pulls.md +++ b/app/docs/slate/source/includes/_pulls.md @@ -1248,6 +1248,7 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/journals.json') |need_respond |否| |bool |是否需要回应| |state |否| |string |状态, opened: 开启的, resolved: 已解决的, disabled: 无效的| |parent_id |否| |integer|父评论ID| +|path |否| |string |评论文件路径| |sort_by |否|created_on|string |排序字段 created_on: 创建时间, updated_on: 更新时间| |sort_direction |否|asc |string |排序类型 desc: 倒序, asc: 正序| diff --git a/app/services/api/v1/projects/pulls/journals/list_service.rb b/app/services/api/v1/projects/pulls/journals/list_service.rb index 30b650f07..010fb3651 100644 --- a/app/services/api/v1/projects/pulls/journals/list_service.rb +++ b/app/services/api/v1/projects/pulls/journals/list_service.rb @@ -1,7 +1,7 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService include ActiveModel::Model - attr_reader :project, :pull_request, :keyword, :review_id, :need_respond, :state, :parent_id, :sort_by, :sort_direction, :user + attr_reader :project, :pull_request, :keyword, :review_id, :need_respond, :state, :parent_id, :path, :sort_by, :sort_direction, :user attr_accessor :queried_journals validates :sort_by, inclusion: {in: Journal.column_names, message: '请输入正确的SortBy'} @@ -19,6 +19,7 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService @parent_id = params[:parent_id] @sort_by = params[:sort_by] || 'created_on' @sort_direction = params[:sort_direction] || 'asc' + @path = params[:path] @user = user end @@ -41,6 +42,7 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService journals = journals.where(review_id: review_id) if review_id.present? journals = journals.where(need_respond: need_respond) if need_respond.present? journals = journals.where(state: state) if state.present? + journals = journals.where(path: path) if path.present? q = journals.ransack(notes_cont: keyword) scope = q.result.includes(:user, :resolveer, review: [:reviewer, pull_request: :issue]) diff --git a/app/views/api/v1/projects/pulls/journals/index.json.jbuilder b/app/views/api/v1/projects/pulls/journals/index.json.jbuilder index e71eb5f71..1cb9a4eb5 100644 --- a/app/views/api/v1/projects/pulls/journals/index.json.jbuilder +++ b/app/views/api/v1/projects/pulls/journals/index.json.jbuilder @@ -1,4 +1,4 @@ -json.total_count @journals.total_count +json.total_count @journals.count json.journals @journals.each do |journal| json.partial! 'api/v1/projects/pulls/journals/simple_detail', journal: journal end \ No newline at end of file diff --git a/public/docs/api.html b/public/docs/api.html index c2e6e4270..9689aabe0 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -14769,6 +14769,13 @@ http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/reviews.json + + + + + + + From 4199f4097cae6eb22f9c0627285a56d050c0eb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Tue, 9 Aug 2022 10:22:55 +0800 Subject: [PATCH 26/43] =?UTF-8?q?fixed=20reposyncer=20gitlink=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/ob_repository_syncs_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 0ba17163c..ebae8e427 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -13,7 +13,8 @@ class ObRepositorySyncsController < ApplicationController tip_exception "参数错误" if params[:github_address].blank? && params[:gitee_address].blank? project_name ="#{@project.owner.name}:#{@project.identifier}" service = ObRepositorySync::ApiService.new(project_name) - project_params = params.merge({ "gitlink_address": "https://gitlink.org.cn/#{@project.owner&.login}/#{@project.identifier}.git" }) + domain = GiteaService.gitea_config[:domain] + project_params = params.merge({ "gitlink_address": "#{domain}/#{@project.owner&.login}/#{@project.identifier}.git" }) res = service.create_projects(project_params) tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" sync_id = res["data"]["id"] From c60572e31fd3793ce814170c15b40f60781384db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 16:06:11 +0800 Subject: [PATCH 27/43] =?UTF-8?q?fixed=20Gitea::PullRequest::FilesService?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/gitea/pull_request/files_service.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/services/gitea/pull_request/files_service.rb b/app/services/gitea/pull_request/files_service.rb index a8cb26627..f7a2bd750 100644 --- a/app/services/gitea/pull_request/files_service.rb +++ b/app/services/gitea/pull_request/files_service.rb @@ -1,6 +1,6 @@ # List pull requests files class Gitea::PullRequest::FilesService < Gitea::ClientService - attr_reader :owner, :repo, :pull_number, :token + attr_reader :owner, :repo, :pull_number, :token, :params # GET /repos/{owner}/{repo}/pulls/{pull_number}/files # owner: 用户 @@ -8,22 +8,23 @@ class Gitea::PullRequest::FilesService < Gitea::ClientService # pull_number: pull request主键id # eg: # Gitea::PullRequest::FilesService.call('jasder', 'repo_identifier', 1) - def initialize(owner, repo, pull_number, token=nil) + def initialize(owner, repo, pull_number, token=nil, params={}) @owner = owner @repo = repo @token = token @pull_number = pull_number + @params = params end def call - response = get(url, params) + response = get(url, params.merge(token: token)) render_result(response) end private - def params - Hash.new.merge(token: token) - end + # def params + # Hash.new.merge(token: token) + # end def url "/repos/#{owner}/#{repo}/pulls/#{pull_number}/files".freeze From b949ee260ddc8cb65fd4cfca5af497b534065bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 16:07:20 +0800 Subject: [PATCH 28/43] =?UTF-8?q?fixed=20=E5=B7=B2=E8=AF=BB=E6=9C=AA?= =?UTF-8?q?=E8=AF=BB=E6=A0=87=E8=AE=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/mark_files_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/mark_files_controller.rb b/app/controllers/mark_files_controller.rb index 36b5b81f0..a7ec304fd 100644 --- a/app/controllers/mark_files_controller.rb +++ b/app/controllers/mark_files_controller.rb @@ -4,7 +4,7 @@ class MarkFilesController < ApplicationController before_action :load_pull_request def index - @files_result = Gitea::PullRequest::FilesService.call(@owner.login, @project.identifier, @pull_request.gitea_number, current_user&.gitea_token) + @files_result = Gitea::PullRequest::FilesService.call(@owner.login, @project.identifier, @pull_request.gitea_number, current_user&.gitea_token, { "only-file-name": true }) @mark_files = MarkFile.where(pull_request_id: @pull_request.id) end From e46c934b2c80d3a4784148be3bfd58d5a06a1c3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 16:54:00 +0800 Subject: [PATCH 29/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index af77858e1..dbe63a66b 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -11,7 +11,7 @@ class Admins::MessageTemplatesController < Admins::BaseController end def create - @message_template = MessageTemplate::CustomTip.new(ignore_params) + @message_template = MessageTemplate::CustomTip.new(message_template_params) if @message_template.save! redirect_to admins_message_templates_path From 9ce7cdf0c3ab33239f0f62d769314aca1d179ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:20:29 +0800 Subject: [PATCH 30/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 5 +++-- app/models/message_template.rb | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index dbe63a66b..79a4bbc8b 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -10,7 +10,7 @@ class Admins::MessageTemplatesController < Admins::BaseController @message_template = MessageTemplate::CustomTip.new end - def create + def create @message_template = MessageTemplate::CustomTip.new(message_template_params) if @message_template.save! @@ -47,7 +47,8 @@ class Admins::MessageTemplatesController < Admins::BaseController private def message_template_params - params.require(@message_template.type.split("::").join("_").underscore.to_sym).permit! + type = @message_template.present? ? @message_template.type : "MessageTemplate::CustomTip" + params.require(type.split("::").join("_").underscore.to_sym).permit! end def get_template diff --git a/app/models/message_template.rb b/app/models/message_template.rb index 50de7d8ef..ec761ddcf 100644 --- a/app/models/message_template.rb +++ b/app/models/message_template.rb @@ -13,6 +13,7 @@ # class MessageTemplate < ApplicationRecord + self.inheritance_column = nil PLATFORM = 'GitLink' def self.build_init_data From 4918fda2e179e1002d2b088be3a5f79235a2a304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:23:27 +0800 Subject: [PATCH 31/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/message_template.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/message_template.rb b/app/models/message_template.rb index ec761ddcf..bc6c5a714 100644 --- a/app/models/message_template.rb +++ b/app/models/message_template.rb @@ -114,6 +114,6 @@ class MessageTemplate < ApplicationRecord end def simple_type - self.type.split("::")[-1] + self.type.to_s.split("::")[-1] end end From 58368277c0448b7a7498799536dc32ccc64f8494 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:25:55 +0800 Subject: [PATCH 32/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index 79a4bbc8b..291a1b3f5 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -12,7 +12,7 @@ class Admins::MessageTemplatesController < Admins::BaseController def create @message_template = MessageTemplate::CustomTip.new(message_template_params) - + @message_template.type = "MessageTemplate::CustomTip" if @message_template.save! redirect_to admins_message_templates_path flash[:success] = "创建消息模板成功" From c167c39050d9052da021ffa923b8ca6589ed4771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:43:27 +0800 Subject: [PATCH 33/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index 291a1b3f5..87a3ccfe7 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -7,7 +7,7 @@ class Admins::MessageTemplatesController < Admins::BaseController end def new - @message_template = MessageTemplate::CustomTip.new + @message_template = MessageTemplate.new end def create @@ -47,8 +47,9 @@ class Admins::MessageTemplatesController < Admins::BaseController private def message_template_params - type = @message_template.present? ? @message_template.type : "MessageTemplate::CustomTip" - params.require(type.split("::").join("_").underscore.to_sym).permit! + # type = @message_template.present? ? @message_template.type : "MessageTemplate::CustomTip" + # params.require(type.split("::").join("_").underscore.to_sym).permit! + params.require(:message_template).permit! end def get_template From 8ec3e4bbaa7ed39a59af125afdc45c95005d6bc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 16:06:11 +0800 Subject: [PATCH 34/43] =?UTF-8?q?fixed=20Gitea::PullRequest::FilesService?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/gitea/pull_request/files_service.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/services/gitea/pull_request/files_service.rb b/app/services/gitea/pull_request/files_service.rb index a8cb26627..f7a2bd750 100644 --- a/app/services/gitea/pull_request/files_service.rb +++ b/app/services/gitea/pull_request/files_service.rb @@ -1,6 +1,6 @@ # List pull requests files class Gitea::PullRequest::FilesService < Gitea::ClientService - attr_reader :owner, :repo, :pull_number, :token + attr_reader :owner, :repo, :pull_number, :token, :params # GET /repos/{owner}/{repo}/pulls/{pull_number}/files # owner: 用户 @@ -8,22 +8,23 @@ class Gitea::PullRequest::FilesService < Gitea::ClientService # pull_number: pull request主键id # eg: # Gitea::PullRequest::FilesService.call('jasder', 'repo_identifier', 1) - def initialize(owner, repo, pull_number, token=nil) + def initialize(owner, repo, pull_number, token=nil, params={}) @owner = owner @repo = repo @token = token @pull_number = pull_number + @params = params end def call - response = get(url, params) + response = get(url, params.merge(token: token)) render_result(response) end private - def params - Hash.new.merge(token: token) - end + # def params + # Hash.new.merge(token: token) + # end def url "/repos/#{owner}/#{repo}/pulls/#{pull_number}/files".freeze From 32db15aad585d6d7005e6ba35e71d1cbb3f2fc0b Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 11 Aug 2022 09:29:12 +0800 Subject: [PATCH 35/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20commit=E6=89=BE?= =?UTF-8?q?=E4=B8=8D=E5=88=B0=E8=BF=94=E5=9B=9E404?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index fdec82b66..32bb1f0eb 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -137,6 +137,7 @@ class RepositoriesController < ApplicationController else @commit = Gitea::Repository::Commits::GetService.call(@owner.login, @repository.identifier, @sha, current_user&.gitea_token) @commit_diff = Gitea::Repository::Commits::GetService.call(@owner.login, @repository.identifier, @sha, current_user&.gitea_token, {diff: true}) + render_error(@commit[:message], @commit[:status]) if @commit.has_key?(:status) || @commit_diff.has_key?(:status) end end From 48846a7e31810a6d9cb631701c7902023358965d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 16:07:20 +0800 Subject: [PATCH 36/43] =?UTF-8?q?fixed=20=E5=B7=B2=E8=AF=BB=E6=9C=AA?= =?UTF-8?q?=E8=AF=BB=E6=A0=87=E8=AE=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/mark_files_controller.rb | 41 ++++++++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/app/controllers/mark_files_controller.rb b/app/controllers/mark_files_controller.rb index 88856c35a..a7ec304fd 100644 --- a/app/controllers/mark_files_controller.rb +++ b/app/controllers/mark_files_controller.rb @@ -4,17 +4,44 @@ class MarkFilesController < ApplicationController before_action :load_pull_request def index - @files_result = Gitea::PullRequest::FilesService.call(@owner.login, @project.identifier, @pull_request.gitea_number, current_user&.gitea_token) - - MarkFile.bulk_insert(*%i[pull_request_id, file_path_sha file_path created_at updated_at]) do |worker| - @files_result['Files'].echo do |file| - worker.add(pull_request_id: @pull_request.id, file_path_sha: SecureRandom.uuid.gsub("-", ""), file_path: file['Name']) - end - end + @files_result = Gitea::PullRequest::FilesService.call(@owner.login, @project.identifier, @pull_request.gitea_number, current_user&.gitea_token, { "only-file-name": true }) @mark_files = MarkFile.where(pull_request_id: @pull_request.id) end def create + # unless @pull_request.mark_files.present? + # MarkFile.bulk_insert(*%i[pull_request_id, file_path_sha file_path created_at updated_at]) do |worker| + # @files_result['Files'].each do |file| + # worker.add(pull_request_id: @pull_request.id, file_path_sha: SecureRandom.uuid.gsub("-", ""), file_path: file['Name']) + # end + # end + # end + end + + def mark_file_as_unread + tip_exception "参数错误" if params[:file_path_sha].blank? + file_path = Base64.strict_decode64(params[:file_path_sha].to_s) + mark_file = @pull_request.mark_files.find_or_initialize_by(file_path_sha: params[:file_path_sha]) + mark_file.file_path = file_path + mark_file.user_id = current_user.id + mark_file.mark_as_read = false + mark_file.save + render_ok + rescue Exception => e + tip_exception "参数解析错误" + end + + def mark_file_as_read + tip_exception "参数错误" if params[:file_path_sha].blank? + file_path = Base64.strict_decode64(params[:file_path_sha].to_s) + mark_file = @pull_request.mark_files.find_or_initialize_by(file_path_sha: params[:file_path_sha]) + mark_file.file_path = file_path + mark_file.user_id = current_user.id + mark_file.mark_as_read = true + mark_file.save + render_ok + rescue Exception => e + tip_exception "参数解析错误" end private From 7e48e5e8b80b94d652833a19297333655532abd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 16:54:00 +0800 Subject: [PATCH 37/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index af77858e1..dbe63a66b 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -11,7 +11,7 @@ class Admins::MessageTemplatesController < Admins::BaseController end def create - @message_template = MessageTemplate::CustomTip.new(ignore_params) + @message_template = MessageTemplate::CustomTip.new(message_template_params) if @message_template.save! redirect_to admins_message_templates_path From 964bef789654962b835beeb5fd46597ab1dffdec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:20:29 +0800 Subject: [PATCH 38/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 5 +++-- app/models/message_template.rb | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index dbe63a66b..79a4bbc8b 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -10,7 +10,7 @@ class Admins::MessageTemplatesController < Admins::BaseController @message_template = MessageTemplate::CustomTip.new end - def create + def create @message_template = MessageTemplate::CustomTip.new(message_template_params) if @message_template.save! @@ -47,7 +47,8 @@ class Admins::MessageTemplatesController < Admins::BaseController private def message_template_params - params.require(@message_template.type.split("::").join("_").underscore.to_sym).permit! + type = @message_template.present? ? @message_template.type : "MessageTemplate::CustomTip" + params.require(type.split("::").join("_").underscore.to_sym).permit! end def get_template diff --git a/app/models/message_template.rb b/app/models/message_template.rb index 50de7d8ef..ec761ddcf 100644 --- a/app/models/message_template.rb +++ b/app/models/message_template.rb @@ -13,6 +13,7 @@ # class MessageTemplate < ApplicationRecord + self.inheritance_column = nil PLATFORM = 'GitLink' def self.build_init_data From ad8fed944037360539367470536902698404ea69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:23:27 +0800 Subject: [PATCH 39/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/message_template.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/message_template.rb b/app/models/message_template.rb index ec761ddcf..bc6c5a714 100644 --- a/app/models/message_template.rb +++ b/app/models/message_template.rb @@ -114,6 +114,6 @@ class MessageTemplate < ApplicationRecord end def simple_type - self.type.split("::")[-1] + self.type.to_s.split("::")[-1] end end From 5c4930a362a2d5b89b8503e66fb41a7674ecbdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:25:55 +0800 Subject: [PATCH 40/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index 79a4bbc8b..291a1b3f5 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -12,7 +12,7 @@ class Admins::MessageTemplatesController < Admins::BaseController def create @message_template = MessageTemplate::CustomTip.new(message_template_params) - + @message_template.type = "MessageTemplate::CustomTip" if @message_template.save! redirect_to admins_message_templates_path flash[:success] = "创建消息模板成功" From 716b29c25fa35df9046abf41cbf3c06c5c57f0fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Wed, 10 Aug 2022 17:43:27 +0800 Subject: [PATCH 41/43] =?UTF-8?q?fixed=20=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E9=85=8D=E7=BD=AEtype?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admins/message_templates_controller.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/admins/message_templates_controller.rb b/app/controllers/admins/message_templates_controller.rb index 291a1b3f5..87a3ccfe7 100644 --- a/app/controllers/admins/message_templates_controller.rb +++ b/app/controllers/admins/message_templates_controller.rb @@ -7,7 +7,7 @@ class Admins::MessageTemplatesController < Admins::BaseController end def new - @message_template = MessageTemplate::CustomTip.new + @message_template = MessageTemplate.new end def create @@ -47,8 +47,9 @@ class Admins::MessageTemplatesController < Admins::BaseController private def message_template_params - type = @message_template.present? ? @message_template.type : "MessageTemplate::CustomTip" - params.require(type.split("::").join("_").underscore.to_sym).permit! + # type = @message_template.present? ? @message_template.type : "MessageTemplate::CustomTip" + # params.require(type.split("::").join("_").underscore.to_sym).permit! + params.require(:message_template).permit! end def get_template From 6ec7a1329316dc0072aab898c4d42b333a3e1624 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cxxq250=E2=80=9D?= <“xxq250@qq.com”> Date: Thu, 11 Aug 2022 09:31:40 +0800 Subject: [PATCH 42/43] =?UTF-8?q?fixed=20reposyncer=20=E5=88=86=E6=94=AF?= =?UTF-8?q?=E7=BB=84=E5=90=88=E5=B7=B2=E9=85=8D=E7=BD=AE=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E8=83=BD=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ob_repository_syncs_controller.rb | 27 ++++++++++++++----- .../ob_repository_sync/api_service.rb | 14 +++++----- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/app/controllers/ob_repository_syncs_controller.rb b/app/controllers/ob_repository_syncs_controller.rb index 107320934..ebae8e427 100644 --- a/app/controllers/ob_repository_syncs_controller.rb +++ b/app/controllers/ob_repository_syncs_controller.rb @@ -13,7 +13,8 @@ class ObRepositorySyncsController < ApplicationController tip_exception "参数错误" if params[:github_address].blank? && params[:gitee_address].blank? project_name ="#{@project.owner.name}:#{@project.identifier}" service = ObRepositorySync::ApiService.new(project_name) - project_params = params.merge({ "gitlink_address": @project.repository.url }) + domain = GiteaService.gitea_config[:domain] + project_params = params.merge({ "gitlink_address": "#{domain}/#{@project.owner&.login}/#{@project.identifier}.git" }) res = service.create_projects(project_params) tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" sync_id = res["data"]["id"] @@ -23,7 +24,6 @@ class ObRepositorySyncsController < ApplicationController ob_repository_sync.name = project_name ob_repository_sync.github_address = "#{params[:github_address]}" ob_repository_sync.gitee_address = "#{params[:gitee_address]}" - ob_repository_sync.gitlink_address = @project.repository.url ob_repository_sync.github_token = "#{params[:github_token]}" ob_repository_sync.gitee_token = "#{params[:gitee_token]}" ob_repository_sync.sync_id = sync_id @@ -38,16 +38,30 @@ class ObRepositorySyncsController < ApplicationController if res["code"].to_s == "200" @ob_repository_sync.destroy! end + render_ok end def jobs tip_exception "该项目未创建同步任务" if @ob_repository_sync.blank? service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.get_projects_jobs - render_ok(count: res["data"]["total"], data: res["data"]["list"]) + data = res["data"]["list"] + if params[:type] && params[:type].to_s.downcase == "github" + data = data.select { |row| row["github_branch"].present? } + elsif params[:type] && params[:type].to_s.downcase == "gitee" + data = data.select { |row| row["gitee_branch"].present? } + end + render_ok(count: res["data"]["total"], data: data) end def create_jobs + tip_exception "必须配置一个分支" if params[:github_branch].blank? && params[:gitee_branch].blank? && params[:gitlink_branch].blank? + ob_jobs = ObRepositorySyncJob.where(ob_repository_sync_id: @ob_repository_sync.id) + ob_jobs = ob_jobs.where(job_type: params[:job_type]) if params[:job_type].present? + ob_jobs = ob_jobs.where(github_branch: params[:github_branch]) if params[:github_branch].present? + ob_jobs = ob_jobs.where(gitee_branch: params[:gitee_branch]) if params[:gitee_branch].present? + ob_jobs = ob_jobs.where(gitlink_branch: params[:gitlink_branch]) if params[:gitlink_branch].present? + tip_exception "该分支组合已配置,不能重复!" if ob_jobs.count > 0 service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.create_projects_jobs(params) tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" @@ -57,7 +71,7 @@ class ObRepositorySyncsController < ApplicationController job.github_branch = "#{params[:github_branch]}" job.gitee_branch = "#{params[:gitee_branch]}" job.gitlink_branch = "#{params[:gitlink_branch]}" - job.job_type = "#{params[:type]}" + job.job_type = "#{params[:job_type]}" job.base = "#{params[:base]}" job.job_id = job_id job.save @@ -70,7 +84,8 @@ class ObRepositorySyncsController < ApplicationController service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) res = service.delete_job params[:job_id] tip_exception "保存失败: #{res["msg"]}" if res["code"].to_s != "200" - @ob_repository_sync.destroy! + job = ObRepositorySyncJob.find_by(ob_repository_sync_id: @ob_repository_sync.id, job_id: params[:job_id]) + job.destroy! if job.present? render_ok end @@ -94,7 +109,7 @@ class ObRepositorySyncsController < ApplicationController tip_exception "该项目未创建同步任务" if @ob_repository_sync.blank? tip_exception "缺少参数job_id" if params[:job_id].blank? service = ObRepositorySync::ApiService.new(@ob_repository_sync.name) - @data = service.job_logs params[:job_id] + res = service.job_logs params[:job_id] tip_exception "请求错误: #{res["msg"]}" if res["code"].to_s != "200" render_ok(count: res["data"]["total"], data: res["data"]["list"]) end diff --git a/app/services/ob_repository_sync/api_service.rb b/app/services/ob_repository_sync/api_service.rb index 7bed888e6..5ecd48afa 100644 --- a/app/services/ob_repository_sync/api_service.rb +++ b/app/services/ob_repository_sync/api_service.rb @@ -15,7 +15,9 @@ class ObRepositorySync::ApiService < ApplicationService "github_address": "#{params[:github_address]}", "gitee_address": "#{params[:gitee_address]}", "github_token": "#{params[:github_token]}", - "gitee_token": "#{params[:gitee_token]}" + "gitee_token": "#{params[:gitee_token]}", + "gitlink_address": "#{params[:gitlink_address]}", + "gitlink_token": "#{params[:gitlink_token]}" } url = URI("#{domain}/cerobot/projects") http = Net::HTTP.new(url.host, url.port) @@ -41,7 +43,7 @@ class ObRepositorySync::ApiService < ApplicationService end def get_projects_jobs - url = URI("#{domain}/cerobot/projects/#{@project_name}/jobs") + url = URI("#{domain}/cerobot/projects/#{@project_name}/jobs?pageSize=100&pageNum=1") http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) request["Content-Type"] = "application/json" @@ -56,7 +58,7 @@ class ObRepositorySync::ApiService < ApplicationService "github_branch": "#{params[:github_branch]}", "gitee_branch": "#{params[:gitee_branch]}", "gitlink_branch": "#{params[:gitlink_branch]}", - "type": "#{params[:type]}", + "type": "#{params[:job_type]}", "base": "#{params[:base]}" } url = URI("#{domain}/cerobot/projects/#{@project_name}/jobs") @@ -122,11 +124,7 @@ class ObRepositorySync::ApiService < ApplicationService response = http.request(request) Rails.logger.info "set_commit job response.read_body======#{response.read_body}" res = JSON.parse(response.body) - if res["code"].to_s == "200" - res["data"] - else - [] - end + res end def pull_requests From 13472b23111774f3f3ea00acd782b21fdb2cb1a6 Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 11 Aug 2022 15:21:11 +0800 Subject: [PATCH 43/43] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E8=AF=84=E8=AE=BA=E6=9F=A5=E8=AF=A2is=5Ffull?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/docs/slate/source/includes/_pulls.md | 1 + app/models/journal.rb | 1 + .../v1/projects/pulls/journals/list_service.rb | 16 ++++++++++------ public/docs/api.html | 7 +++++++ 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/app/docs/slate/source/includes/_pulls.md b/app/docs/slate/source/includes/_pulls.md index 85b77e181..ac5714db8 100644 --- a/app/docs/slate/source/includes/_pulls.md +++ b/app/docs/slate/source/includes/_pulls.md @@ -1249,6 +1249,7 @@ await octokit.request('GET /api/v1/yystopf/ceshi_commit/pulls/3/journals.json') |state |否| |string |状态, opened: 开启的, resolved: 已解决的, disabled: 无效的| |parent_id |否| |integer|父评论ID| |path |否| |string |评论文件路径| +|is_full |否| |bool |是否展示全部评论(包括回复)| |sort_by |否|created_on|string |排序字段 created_on: 创建时间, updated_on: 更新时间| |sort_direction |否|asc |string |排序类型 desc: 倒序, asc: 正序| diff --git a/app/models/journal.rb b/app/models/journal.rb index e0dbf36d3..20297dd99 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -42,6 +42,7 @@ class Journal < ApplicationRecord belongs_to :resolveer, class_name: 'User', foreign_key: :resolveer_id, optional: true has_many :journal_details, :dependent => :delete_all has_many :attachments, as: :container, dependent: :destroy + has_many :children_journals, class_name: 'Journal', foreign_key: :parent_id scope :journal_includes, ->{includes(:user, :journal_details, :attachments)} scope :parent_journals, ->{where(parent_id: nil)} diff --git a/app/services/api/v1/projects/pulls/journals/list_service.rb b/app/services/api/v1/projects/pulls/journals/list_service.rb index 010fb3651..b7a79c98b 100644 --- a/app/services/api/v1/projects/pulls/journals/list_service.rb +++ b/app/services/api/v1/projects/pulls/journals/list_service.rb @@ -1,12 +1,13 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService include ActiveModel::Model - attr_reader :project, :pull_request, :keyword, :review_id, :need_respond, :state, :parent_id, :path, :sort_by, :sort_direction, :user + attr_reader :project, :pull_request, :keyword, :review_id, :need_respond, :state, :parent_id, :path, :is_full, :sort_by, :sort_direction, :user attr_accessor :queried_journals validates :sort_by, inclusion: {in: Journal.column_names, message: '请输入正确的SortBy'} validates :sort_direction, inclusion: {in: %w(asc desc), message: '请输入正确的SortDirection'} validates :need_respond, inclusion: {in: [true, false], message: '请输入正确的NeedRespond'}, allow_nil: true + validates :is_full, inclusion: {in: [true, false], message: '请输入正确的IsFull'} validates :state, inclusion: {in: %w(opened resolved disabled)}, allow_nil: true def initialize(project, pull_request, params, user) @@ -19,6 +20,7 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService @parent_id = params[:parent_id] @sort_by = params[:sort_by] || 'created_on' @sort_direction = params[:sort_direction] || 'asc' + @is_full = ActiveModel::Type::Boolean.new.cast(params[:is_full]) || false @path = params[:path] @user = user end @@ -33,10 +35,12 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService private def journal_query_data journals = @pull_request.journals - if parent_id.present? - journals = journals.where(parent_id: parent_id) - else - journals = journals.parent_journals + if !is_full + if parent_id.present? + journals = journals.where(parent_id: parent_id) + else + journals = journals.parent_journals + end end journals = journals.where(review_id: review_id) if review_id.present? @@ -45,7 +49,7 @@ class Api::V1::Projects::Pulls::Journals::ListService < ApplicationService journals = journals.where(path: path) if path.present? q = journals.ransack(notes_cont: keyword) - scope = q.result.includes(:user, :resolveer, review: [:reviewer, pull_request: :issue]) + scope = q.result.includes(:user, :resolveer, :children_journals, review: [:reviewer, pull_request: :issue]) scope = scope.order("journals.#{sort_by} #{sort_direction}") @queried_journals = scope diff --git a/public/docs/api.html b/public/docs/api.html index 9689aabe0..c43f7c403 100644 --- a/public/docs/api.html +++ b/public/docs/api.html @@ -14776,6 +14776,13 @@ http://localhost:3000/api/v1/yystopf/ceshi/pulls/1/reviews.json + + + + + + +
review_id string 审查ID
typecomment string 评论类型 comment: 普通, problem: 需要回应的评论
父评论ID
pathstring评论文件路径
sort_by created_on评论文件路径
is_fullbool是否展示全部评论(包括回复)
sort_by created_on