| @@ -166,8 +166,9 @@ class RepositoriesController < ApplicationController | |||||
| if params[:filepath].present? || @project.educoder? | if params[:filepath].present? || @project.educoder? | ||||
| @contributors = [] | @contributors = [] | ||||
| else | else | ||||
| result = Gitea::Repository::Contributors::GetService.call(@owner, @repository.identifier) | |||||
| @contributors = result.is_a?(Hash) && result.key?(:status) ? [] : result | |||||
| result = Gitea::Repository::Contributors::GetService.call(@owner, @repository.identifier, {page: params[:page], limit: params[:limit]}) | |||||
| @total_count = result[:total_count] | |||||
| @contributors = result.is_a?(Hash) ? result[:body] : [] | |||||
| end | end | ||||
| rescue | rescue | ||||
| @contributors = [] | @contributors = [] | ||||
| @@ -1,7 +1,7 @@ | |||||
| class Api::V1::Projects::Branches::ListService < ApplicationService | class Api::V1::Projects::Branches::ListService < ApplicationService | ||||
| attr_accessor :project, :token, :owner, :repo, :name, :page, :limit | attr_accessor :project, :token, :owner, :repo, :name, :page, :limit | ||||
| attr_accessor :gitea_data | |||||
| attr_accessor :gitea_data, :gitea_repo_data | |||||
| def initialize(project, params, token=nil) | def initialize(project, params, token=nil) | ||||
| @project = project | @project = project | ||||
| @@ -16,6 +16,8 @@ class Api::V1::Projects::Branches::ListService < ApplicationService | |||||
| def call | def call | ||||
| load_gitea_data | load_gitea_data | ||||
| gitea_data["default_branch"] = gitea_repo_data["default_branch"] | |||||
| gitea_data | gitea_data | ||||
| end | end | ||||
| @@ -32,9 +34,12 @@ class Api::V1::Projects::Branches::ListService < ApplicationService | |||||
| end | end | ||||
| def load_gitea_data | def load_gitea_data | ||||
| puts request_params | |||||
| @gitea_data = $gitea_client.get_repos_branches_by_owner_repo(owner, repo, {query: request_params}) rescue nil | |||||
| puts @gitea_data | |||||
| @gitea_data = $gitea_hat_client.get_repos_branches_by_owner_repo(owner, repo, {query: request_params}) rescue nil | |||||
| raise Error, '获取分支列表失败!' unless @gitea_data.is_a?(Hash) | raise Error, '获取分支列表失败!' unless @gitea_data.is_a?(Hash) | ||||
| end | end | ||||
| def load_default_branch | |||||
| @gitea_repo_data = $gitea_client.get_repos_by_owner_repo('yystopf', 'pig') rescue nil | |||||
| raise Error, '获取仓库信息失败!' unless @gitea_data.is_a?(Hash) | |||||
| end | |||||
| end | end | ||||
| @@ -1,22 +1,38 @@ | |||||
| class Gitea::Repository::Contributors::GetService < Gitea::ClientService | class Gitea::Repository::Contributors::GetService < Gitea::ClientService | ||||
| attr_reader :owner, :repo_name | |||||
| attr_reader :owner, :repo_name, :page, :limit | |||||
| def initialize(owner, repo_name) | |||||
| def initialize(owner, repo_name, params={}) | |||||
| @owner = owner | @owner = owner | ||||
| @repo_name = repo_name | @repo_name = repo_name | ||||
| @page = params[:page] || 1 | |||||
| @limit = params[:limit] || 20 | |||||
| end | end | ||||
| def call | def call | ||||
| response = get(url, params, true) | response = get(url, params, true) | ||||
| render_status(response) | |||||
| render_result(response) | |||||
| end | end | ||||
| private | private | ||||
| def params | def params | ||||
| Hash.new.merge(token: owner.gitea_token) | |||||
| Hash.new.merge(token: owner.gitea_token, page: page, limit: limit) | |||||
| end | end | ||||
| def url | def url | ||||
| "/repos/#{owner.login}/#{repo_name}/contributors" | "/repos/#{owner.login}/#{repo_name}/contributors" | ||||
| end | end | ||||
| def render_result(response) | |||||
| case response.status | |||||
| when 200 | |||||
| result = {} | |||||
| headers = response.headers.to_hash | |||||
| body = JSON.parse(response.body) | |||||
| total_count = headers["x-total"] | |||||
| result.merge(total_count: total_count.to_i, body: body) | |||||
| else | |||||
| nil | |||||
| # {status: -1, message: "#{body['message']}"} | |||||
| end | |||||
| end | |||||
| end | end | ||||
| @@ -1,15 +1,15 @@ | |||||
| user = $redis_cache.hgetall("v2-owner-common:#{contributor["login"]}-#{contributor["email"]}") | |||||
| user = $redis_cache.hgetall("v2-owner-common:#{contributor["name"]}-#{contributor["email"]}") | |||||
| if user.blank? | if user.blank? | ||||
| json.contributions contributor["contributions"] | |||||
| # json.gid contributor["id"] | |||||
| json.login contributor["login"] | |||||
| json.contributions contributor["commits"] | |||||
| # json.id contributor["id"] | |||||
| json.name contributor["name"] | |||||
| json.type nil | json.type nil | ||||
| json.name contributor["login"] | |||||
| json.image_url User::Avatar.get_letter_avatar_url(contributor["login"]) | |||||
| json.name contributor["name"] | |||||
| json.image_url User::Avatar.get_letter_avatar_url(contributor["name"]) | |||||
| else | else | ||||
| json.contributions contributor["contributions"] | |||||
| # json.gid contributor["id"] | |||||
| json.login user["login"] | |||||
| json.contributions contributor["commits"] | |||||
| json.id user["id"] | |||||
| json.name user["name"] | |||||
| json.type user["type"] | json.type user["type"] | ||||
| json.name user["name"] | json.name user["name"] | ||||
| json.image_url user["avatar_url"] | json.image_url user["avatar_url"] | ||||
| @@ -1,4 +1,4 @@ | |||||
| total_count = @contributors.size | |||||
| total_count = @total_count | |||||
| json.list @contributors.each do |contributor| | json.list @contributors.each do |contributor| | ||||
| json.partial! 'contributor', locals: { contributor: contributor } | json.partial! 'contributor', locals: { contributor: contributor } | ||||
| end | end | ||||