From e57910a9a8b9893606e9be3407893e485c9b771b Mon Sep 17 00:00:00 2001 From: yystopf Date: Thu, 7 Nov 2024 16:46:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20Commit=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E5=88=97=E8=A1=A8=E6=8B=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/projects/commits_controller.rb | 10 +++++++++- app/views/api/v1/projects/commits/files.json.jbuilder | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 app/views/api/v1/projects/commits/files.json.jbuilder diff --git a/app/controllers/api/v1/projects/commits_controller.rb b/app/controllers/api/v1/projects/commits_controller.rb index 98fdc290f..a6d4511da 100644 --- a/app/controllers/api/v1/projects/commits_controller.rb +++ b/app/controllers/api/v1/projects/commits_controller.rb @@ -1,5 +1,5 @@ class Api::V1::Projects::CommitsController < Api::V1::BaseController - before_action :require_public_and_member_above, only: [:index, :diff, :recent] + before_action :require_public_and_member_above, only: [:index, :diff, :recent, :files] def index @result_object = Api::V1::Projects::Commits::ListService.call(@project, {page: page, limit: limit, sha: params[:sha]}, current_user&.gitea_token) @@ -10,6 +10,14 @@ class Api::V1::Projects::CommitsController < Api::V1::BaseController @result_object = Api::V1::Projects::Commits::DiffService.call(@project, params[:sha], current_user&.gitea_token) end + def files + if params[:filepath].present? + @result_object = $gitea_hat_client.get_repos_commits_files_by_owner_repo_sha_filepath(@project&.owner.login, @project&.identifier, params[:sha], params[:filepath], {query: {token: current_user&.gitea_token}}) + else + @result_object = $gitea_hat_client.get_repos_commits_files_by_owner_repo_sha(@project&.owner.login, @project&.identifier, params[:sha], {query: {token: current_user&.gitea_token, page: page, limit: limit}}) + end + end + def recent hash = Api::V1::Projects::Commits::RecentService.call(@project, {keyword: params[:keyword], page: page, limit: limit}, current_user&.gitea_token) @result_object = hash[:result] diff --git a/app/views/api/v1/projects/commits/files.json.jbuilder b/app/views/api/v1/projects/commits/files.json.jbuilder new file mode 100644 index 000000000..ce83579d5 --- /dev/null +++ b/app/views/api/v1/projects/commits/files.json.jbuilder @@ -0,0 +1,8 @@ +if params[:filepath].present? + json.partial! "api/v1/projects/simple_gitea_diff_detail", diff: @result_object +else + json.file_numbers @result_object[:total_data].to_i + json.files @result_object[:data] do |file| + json.partial! "api/v1/projects/simple_gitea_file", file: file + end +end \ No newline at end of file