forgeplus/app/services/gitea/commit/info_service.rb

41 lines
827 B
Ruby

# get the detailed info of the commit
class Gitea::Commit::InfoService < Gitea::ClientService
attr_reader :owner, :repo, :sha, :token
# GET /repos/{owner}/{repo}/commits/{sha}/diff
# owner: 用户
# repo: 仓库名称/标识
# sha: commit唯一标识
# eg:
# Gitea::Commit::InfoService.call('jasder', 'repo_identifier', 'sha value')
def initialize(owner, repo, sha, token=nil)
@owner = owner
@repo = repo
@sha = sha
@token = token
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: owner)
end
def url
"/repos/#{owner}/#{repo}/git/commits/#{sha}".freeze
end
def render_result(response)
case response.status
when 200
JSON.parse(response.body)
else
nil
end
end
end