From f64243d18891d697a62ea3fb106cddeeb83e4b95 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Mon, 1 Jun 2020 15:28:46 +0800 Subject: [PATCH] FIX commits api bug --- app/controllers/repositories_controller.rb | 3 ++- app/services/gitea/client_service.rb | 3 +++ .../gitea/repository/commits/list_service.rb | 16 +++++++++------- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 0a88fb22c..f65853be9 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -44,7 +44,8 @@ class RepositoriesController < ApplicationController end def commits - @hash_commit = Gitea::Repository::Commits::ListService.new(@project.owner, @project.identifier, sha: params[:sha], page: params[:page]).call + @hash_commit = Gitea::Repository::Commits::ListService.new(@project.owner.login, @project.identifier, + sha: params[:sha], page: params[:page], limit: params[:limit], token: current_user&.gitea_token).call end def commit diff --git a/app/services/gitea/client_service.rb b/app/services/gitea/client_service.rb index 9f9084ffb..7fd990c6f 100644 --- a/app/services/gitea/client_service.rb +++ b/app/services/gitea/client_service.rb @@ -1,6 +1,9 @@ class Gitea::ClientService < ApplicationService attr_reader :username, :secret, :token, :url, :params + PAGINATE_DEFAULT_PAGE = 1 + PAGINATE_DEFAULT_LIMIT = 20 + def initialize(options={}) @username = options[:username] @secret = options[:password] diff --git a/app/services/gitea/repository/commits/list_service.rb b/app/services/gitea/repository/commits/list_service.rb index 4bba67457..124cf544d 100644 --- a/app/services/gitea/repository/commits/list_service.rb +++ b/app/services/gitea/repository/commits/list_service.rb @@ -1,12 +1,15 @@ # Get a list of all commits from a repository class Gitea::Repository::Commits::ListService < Gitea::ClientService - attr_reader :user, :repo_name, :args + attr_reader :owner, :repo_name, :args # sha: SHA or branch to start listing commits from (usually 'master') - def initialize(user, repo_name, **args) - @user = user + # ex: + # Gitea::Repository::Commits::ListService.new(@project.owner.login, @project.identifier, + # sha: params[:sha], page: params[:page], limit: params[:limit], token: current_user&.gitea_token).call + def initialize(owner, repo_name, **args) + @owner = owner @repo_name = repo_name - @args = { sha: 'master', page: 1 }.merge(args.compact) + @args = args end def call @@ -16,15 +19,14 @@ class Gitea::Repository::Commits::ListService < Gitea::ClientService private def params - @args.merge(token: user.gitea_token) + { sha: args[:sha] || 'master', page: args[:page] || PAGINATE_DEFAULT_PAGE, limit: args[:limit] || PAGINATE_DEFAULT_LIMIT, token: args[:token] || "" } end def url - "/repos/#{user.login}/#{repo_name}/commits".freeze + "/repos/#{owner}/#{repo_name}/commits".freeze end def render_result(response) - case response.status when 200 result = {}