|
|
@ -4,13 +4,35 @@ class VersionReleasesController < ApplicationController
|
|
|
|
before_action :find_version , only: [:edit, :update, :destroy]
|
|
|
|
before_action :find_version , only: [:edit, :update, :destroy]
|
|
|
|
|
|
|
|
|
|
|
|
def index
|
|
|
|
def index
|
|
|
|
version_releases = @repository.version_releases.includes(:user)
|
|
|
|
version_tags_releases = Gitea::Repository::Tags::ListService.new(@user, @repository.try(:identifier)).call
|
|
|
|
version_releases = version_releases.where(draft: false) unless current_user.present? && (current_user == @user || current_user.admin?)
|
|
|
|
version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier)).call
|
|
|
|
|
|
|
|
tag_names = []
|
|
|
|
|
|
|
|
if version_releases.length > 0
|
|
|
|
|
|
|
|
version_releases.each do |r|
|
|
|
|
|
|
|
|
tag_names.push(r["tag_name"])
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
@version_releases = []
|
|
|
|
|
|
|
|
if tag_names.size > 0 && version_tags_releases.length > 0
|
|
|
|
|
|
|
|
version_tags_releases.each do |r|
|
|
|
|
|
|
|
|
if tag_names.include?(r["name"])
|
|
|
|
|
|
|
|
@version_releases.push(r)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
@version_releases = version_tags_releases
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
@version_releases_size = version_releases.size
|
|
|
|
# @version_releases = version_tags_releases
|
|
|
|
page = params[:page]
|
|
|
|
# @version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier)).call
|
|
|
|
@limit = params[:limit] || 15
|
|
|
|
|
|
|
|
@version_releases = version_releases.order("created_at desc").page(page).limit(@limit)
|
|
|
|
# version_releases = @repository.version_releases.includes(:user)
|
|
|
|
|
|
|
|
# version_releases = version_releases.where(draft: false) unless current_user.present? && (current_user == @user || current_user.admin?)
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# @version_releases_size = version_releases.size
|
|
|
|
|
|
|
|
# page = params[:page]
|
|
|
|
|
|
|
|
# @limit = params[:limit] || 15
|
|
|
|
|
|
|
|
# @version_releases = version_releases.order("created_at desc").page(page).limit(@limit)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def new
|
|
|
|
def new
|
|
|
@ -44,7 +66,6 @@ class VersionReleasesController < ApplicationController
|
|
|
|
version_release = VersionRelease.new(version_params.merge(user_id: current_user.id, repository_id: @repository.id))
|
|
|
|
version_release = VersionRelease.new(version_params.merge(user_id: current_user.id, repository_id: @repository.id))
|
|
|
|
if version_release.save!
|
|
|
|
if version_release.save!
|
|
|
|
git_version_release = Gitea::Versions::CreateService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier), version_params).call
|
|
|
|
git_version_release = Gitea::Versions::CreateService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier), version_params).call
|
|
|
|
|
|
|
|
|
|
|
|
if git_version_release
|
|
|
|
if git_version_release
|
|
|
|
update_params = {
|
|
|
|
update_params = {
|
|
|
|
tarball_url: git_version_release["tarball_url"],
|
|
|
|
tarball_url: git_version_release["tarball_url"],
|
|
|
@ -53,6 +74,7 @@ class VersionReleasesController < ApplicationController
|
|
|
|
version_gid: git_version_release["id"],
|
|
|
|
version_gid: git_version_release["id"],
|
|
|
|
}
|
|
|
|
}
|
|
|
|
version_release.update_attributes!(update_params)
|
|
|
|
version_release.update_attributes!(update_params)
|
|
|
|
|
|
|
|
version_release.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "create")
|
|
|
|
normal_status(0, "发布成功")
|
|
|
|
normal_status(0, "发布成功")
|
|
|
|
else
|
|
|
|
else
|
|
|
|
normal_status(-1, "发布失败")
|
|
|
|
normal_status(-1, "发布失败")
|
|
|
@ -109,11 +131,15 @@ class VersionReleasesController < ApplicationController
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
ActiveRecord::Base.transaction do
|
|
|
|
begin
|
|
|
|
begin
|
|
|
|
if @version.destroy
|
|
|
|
if @version.destroy
|
|
|
|
git_version_release = Gitea::Versions::UpdateService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier), version_params, @version.try(:version_gid)).call
|
|
|
|
git_version_release = Gitea::Versions::DeleteService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier), @version.try(:version_gid)).call
|
|
|
|
unless git_version_release
|
|
|
|
|
|
|
|
raise Error, "删除失败"
|
|
|
|
if git_version_release.status == 204
|
|
|
|
end
|
|
|
|
|
|
|
|
normal_status(0, "删除成功")
|
|
|
|
normal_status(0, "删除成功")
|
|
|
|
|
|
|
|
elsif git_version_release.status == 401
|
|
|
|
|
|
|
|
normal_status(0, "发布版本不存在")
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
normal_status(-1, "删除失败")
|
|
|
|
|
|
|
|
end
|
|
|
|
else
|
|
|
|
else
|
|
|
|
normal_status(-1, "删除失败")
|
|
|
|
normal_status(-1, "删除失败")
|
|
|
|
end
|
|
|
|
end
|
|
|
|