forked from Gitlink/forgeplus
36 lines
947 B
Ruby
36 lines
947 B
Ruby
# Get a single commit from a repository
|
||
class Gitea::Repository::Commits::GetService < Gitea::ClientService
|
||
attr_reader :token, :owner, :repo, :sha, :hash
|
||
|
||
# sha: the commit hash
|
||
# ex: Gitea::Repository::Commits::GetService.new(@repo.user.login, repo.identifier, params[:sha], current_user.gitea_token)
|
||
# TODO custom参数用于判断调用哪个api
|
||
def initialize(owner, repo, sha, token, hash={})
|
||
@token = token
|
||
@owner = owner
|
||
@sha = sha
|
||
@repo = repo
|
||
@hash = hash
|
||
end
|
||
|
||
def call
|
||
response = get(url, params)
|
||
render_status(response)
|
||
end
|
||
|
||
private
|
||
def params
|
||
Hash.new.merge(token: token)
|
||
end
|
||
|
||
def url
|
||
if hash[:diff]
|
||
# TODO
|
||
# 平台自己编写的gitea接口,后续可能会通过提交pr的形式合并到gitea原有的接口上
|
||
"/repos/#{owner}/#{repo}/commits/#{sha}/diff".freeze
|
||
else
|
||
"/repos/#{owner}/#{repo}/git/commits/#{sha}".freeze
|
||
end
|
||
end
|
||
end
|