add: release show api
This commit is contained in:
parent
133713ae7f
commit
46a083239b
|
@ -2,7 +2,7 @@ class VersionReleasesController < ApplicationController
|
||||||
before_action :load_repository
|
before_action :load_repository
|
||||||
before_action :set_user
|
before_action :set_user
|
||||||
before_action :require_login, except: [:index]
|
before_action :require_login, except: [:index]
|
||||||
before_action :find_version , only: [:edit, :update, :destroy]
|
before_action :find_version , only: [:show, :edit, :update, :destroy]
|
||||||
|
|
||||||
def index
|
def index
|
||||||
version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier)).call
|
version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier)).call
|
||||||
|
@ -22,6 +22,10 @@ class VersionReleasesController < ApplicationController
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
@release = Gitea::Versions::GetService.call(current_user.gitea_token, @user&.login, @repository&.identifier, @version&.version_gid)
|
||||||
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
if params[:name].nil?
|
if params[:name].nil?
|
||||||
normal_status(-1, "名称不能为空")
|
normal_status(-1, "名称不能为空")
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Get a list of all commits from a repository
|
||||||
|
class Gitea::Versions::GetService < Gitea::ClientService
|
||||||
|
attr_reader :token, :user_name, :repo, :gid, :args
|
||||||
|
|
||||||
|
# sha: SHA or branch to start listing commits from (usually 'master')
|
||||||
|
def initialize(token, user_name, repo, gid, args={})
|
||||||
|
@token = token
|
||||||
|
@user_name = user_name
|
||||||
|
@repo = repo
|
||||||
|
@gid = gid
|
||||||
|
@args = args
|
||||||
|
end
|
||||||
|
|
||||||
|
def call
|
||||||
|
response = get(url, params)
|
||||||
|
render_result(response)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def params
|
||||||
|
args.merge(token: token)
|
||||||
|
end
|
||||||
|
|
||||||
|
def url
|
||||||
|
"/repos/#{@user_name}/#{@repo}/releases/#{@gid}".freeze
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_result(response)
|
||||||
|
body = JSON.parse(response.body)
|
||||||
|
case response.status
|
||||||
|
when 200
|
||||||
|
body
|
||||||
|
else
|
||||||
|
{status: -1, message: "#{body['message']}"}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,14 @@
|
||||||
|
json.version_id version.try(:id)
|
||||||
|
json.id re["id"]
|
||||||
|
json.tag_name re["tag_name"]
|
||||||
|
json.target_commitish re["target_commitish"]
|
||||||
|
json.name re["name"]
|
||||||
|
json.body re["body"]
|
||||||
|
json.url re["url"]
|
||||||
|
json.tarball_url render_tar_url(@owner, @repository, re["tag_name"])
|
||||||
|
json.zipball_url render_zip_url(@owner, @repository, re["tag_name"])
|
||||||
|
json.draft re["draft"] ? "草稿" : (re["prerelease"] ? "预发行" : "稳定")
|
||||||
|
json.created_at format_time(version.created_at.to_s.to_time)
|
||||||
|
json.published_at format_time(version.created_at.to_s.to_time)
|
||||||
|
json.user_name user.present? ? user.try(:show_real_name) : ""
|
||||||
|
json.image_url user.present? ? url_to_avatar(user) : ""
|
|
@ -7,36 +7,10 @@ json.releases do
|
||||||
user = User.select(:id, :gitea_uid, :login, :lastname,:firstname, :nickname).find_by_gitea_uid(re["author"]["id"])
|
user = User.select(:id, :gitea_uid, :login, :lastname,:firstname, :nickname).find_by_gitea_uid(re["author"]["id"])
|
||||||
version = @forge_releases.find_by(version_gid: re["id"])
|
version = @forge_releases.find_by(version_gid: re["id"])
|
||||||
if @user_permission && re["draft"]
|
if @user_permission && re["draft"]
|
||||||
json.version_id version.try(:id)
|
json.partial! "version_release", locals: {version: version, user: user, re: re}
|
||||||
json.id re["id"]
|
|
||||||
json.tag_name re["tag_name"]
|
|
||||||
json.target_commitish re["target_commitish"]
|
|
||||||
json.name re["name"]
|
|
||||||
json.body re["body"]
|
|
||||||
json.url re["url"]
|
|
||||||
json.tarball_url render_tar_url(@owner, @repository, re["tag_name"])
|
|
||||||
json.zipball_url render_zip_url(@owner, @repository, re["tag_name"])
|
|
||||||
json.draft re["draft"] ? "草稿" : (re["prerelease"] ? "预发行" : "稳定")
|
|
||||||
json.created_at format_time(version.created_at.to_s.to_time)
|
|
||||||
json.published_at format_time(version.created_at.to_s.to_time)
|
|
||||||
json.user_name user.present? ? user.try(:show_real_name) : ""
|
|
||||||
json.image_url user.present? ? url_to_avatar(user) : ""
|
|
||||||
else
|
else
|
||||||
unless re["draft"]
|
unless re["draft"]
|
||||||
json.version_id version.try(:id)
|
json.partial! "version_release", locals: {version: version, user: user, re: re}
|
||||||
json.id re["id"]
|
|
||||||
json.tag_name re["tag_name"]
|
|
||||||
json.target_commitish re["target_commitish"]
|
|
||||||
json.name re["name"]
|
|
||||||
json.body re["body"]
|
|
||||||
json.url re["url"]
|
|
||||||
json.tarball_url render_tar_url(@owner, @repository, re["tag_name"])
|
|
||||||
json.zipball_url render_zip_url(@owner, @repository, re["tag_name"])
|
|
||||||
json.draft re["draft"] ? "草稿" : (re["prerelease"] ? "预发行" : "稳定")
|
|
||||||
json.created_at format_time(version.created_at.to_s.to_time)
|
|
||||||
json.published_at format_time(version.created_at.to_s.to_time)
|
|
||||||
json.user_name user.present? ? user.try(:show_real_name) : ""
|
|
||||||
json.image_url user.present? ? url_to_avatar(user) : ""
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
user = User.select(:id, :gitea_uid, :login, :lastname,:firstname, :nickname).find_by_gitea_uid(@release["author"]["id"])
|
||||||
|
json.partial! "version_release", locals: {version: @version, user: user, re: @release}
|
|
@ -528,7 +528,7 @@ Rails.application.routes.draw do
|
||||||
resources :forks, only: [:create]
|
resources :forks, only: [:create]
|
||||||
resources :project_trends, :path => :activity, only: [:index, :create]
|
resources :project_trends, :path => :activity, only: [:index, :create]
|
||||||
resources :issue_tags, :path => :labels, only: [:create, :edit, :update, :destroy, :index]
|
resources :issue_tags, :path => :labels, only: [:create, :edit, :update, :destroy, :index]
|
||||||
resources :version_releases, :path => :releases, only: [:index,:new, :create, :edit, :update, :destroy]
|
resources :version_releases, :path => :releases, only: [:index,:new, :show, :create, :edit, :update, :destroy]
|
||||||
|
|
||||||
scope module: :ci do
|
scope module: :ci do
|
||||||
scope do
|
scope do
|
||||||
|
|
Loading…
Reference in New Issue