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