ADD get readme api

This commit is contained in:
Jasder
2021-01-15 15:38:49 +08:00
parent 2253dce4d7
commit 232f26ea3b
4 changed files with 90 additions and 0 deletions

View File

@@ -133,6 +133,13 @@ class RepositoriesController < ApplicationController
render_ok
end
def readme
result = Gitea::Repository::Readme::GetService.call(@owner.login, @repository.identifier, params[:ref], current_user&.gitea_token)
@readme = result[:status] === :success ? result[:body] : nil
render json: @readme
end
private
def find_project

View File

@@ -0,0 +1,39 @@
# Gets the preferred README for a repository.
class Gitea::Repository::Readme::GetService < Gitea::ClientService
attr_reader :owner, :repo, :ref, :token
# owner: owner of the repo
# repo: name of the repo
# name: The name of the commit/branch/tag. Default: the repositorys default branch (usually master)
# eg:
# Gitea::Repository::Readme::GetService.call(user.login, repo.identifier, ref, user.gitea_token)
def initialize(owner, repo, ref, token=nil)
@owner = owner
@repo = repo
@ref = ref || 'master'
@token = token
end
def call
response = get(url, params)
status, message, body = render_response(response)
json_format(status, message, body)
end
private
def params
Hash.new.merge(token: token, ref: ref)
end
def url
"/repos/#{owner}/#{repo}/readme".freeze
end
def json_format(status, message, body)
case status
when 200 then success(body)
when 404 then error(message, 404)
else error(message, status)
end
end
end