gitlink-forgeplus/app/services/gitea/commit/diff_service.rb

41 lines
825 B
Ruby

# get the diff info for the commit
class Gitea::Commit::DiffService < Gitea::ClientService
attr_reader :owner, :repo, :sha, :token
# GET /repos/{owner}/{repo}/commits/{sha}/diff
# owner: 用户
# repo: 仓库名称/标识
# sha: commit唯一标识
# eg:
# Gitea::Commit::DiffService.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: token)
end
def url
"/repos/#{owner}/#{repo}/commits/#{sha}/diff".freeze
end
def render_result(response)
case response.status
when 200
JSON.parse(response.body)
else
nil
end
end
end