|
|
|
@@ -8,7 +8,7 @@ class VersionReleasesController < ApplicationController |
|
|
|
version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier)).call |
|
|
|
@version_releases = version_releases |
|
|
|
@user_permission = current_user.present? && (current_user == @user || current_user.admin?) |
|
|
|
|
|
|
|
@forge_releases = @repository.version_releases.select(:id,:version_gid).includes(:attachments) |
|
|
|
end |
|
|
|
|
|
|
|
def new |
|
|
|
@@ -34,14 +34,7 @@ class VersionReleasesController < ApplicationController |
|
|
|
else |
|
|
|
ActiveRecord::Base.transaction do |
|
|
|
begin |
|
|
|
version_params = { |
|
|
|
body: params[:body], |
|
|
|
draft: params[:draft] || false, |
|
|
|
name: params[:name].to_s.first(32), |
|
|
|
prerelease: params[:prerelease] || false, |
|
|
|
tag_name: params[:tag_name], |
|
|
|
target_commitish: params[:target_commitish] || "master" #分支 |
|
|
|
} |
|
|
|
version_params = releases_params |
|
|
|
version_release = VersionRelease.new(version_params.merge(user_id: current_user.id, repository_id: @repository.id)) |
|
|
|
if version_release.save! |
|
|
|
git_version_release = Gitea::Versions::CreateService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier), version_params).call |
|
|
|
@@ -54,6 +47,9 @@ class VersionReleasesController < ApplicationController |
|
|
|
} |
|
|
|
version_release.update_attributes!(update_params) |
|
|
|
version_release.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "create") |
|
|
|
if params[:attachment_ids].present? |
|
|
|
create_attachments(params[:attachment_ids], version_release) |
|
|
|
end |
|
|
|
normal_status(0, "发布成功") |
|
|
|
else |
|
|
|
normal_status(-1, "发布失败") |
|
|
|
@@ -70,7 +66,7 @@ class VersionReleasesController < ApplicationController |
|
|
|
end |
|
|
|
|
|
|
|
def edit |
|
|
|
|
|
|
|
@version_attachments = @version.attachments |
|
|
|
end |
|
|
|
|
|
|
|
def update |
|
|
|
@@ -81,19 +77,15 @@ class VersionReleasesController < ApplicationController |
|
|
|
else |
|
|
|
ActiveRecord::Base.transaction do |
|
|
|
begin |
|
|
|
version_params = { |
|
|
|
body: params[:body], |
|
|
|
draft: params[:draft] || false, |
|
|
|
name: params[:name], |
|
|
|
prerelease: params[:prerelease], |
|
|
|
tag_name: params[:tag_name], |
|
|
|
target_commitish: params[:target_commitish] || "master" #分支 |
|
|
|
} |
|
|
|
version_params = releases_params |
|
|
|
|
|
|
|
if @version.update_attributes!(version_params) |
|
|
|
create_attachments(params[:attachment_ids], @version) if params[:attachment_ids].present? |
|
|
|
git_version_release = Gitea::Versions::UpdateService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier), version_params, @version.try(:version_gid)).call |
|
|
|
unless git_version_release |
|
|
|
raise Error, "更新失败" |
|
|
|
end |
|
|
|
|
|
|
|
normal_status(0, "更新成功") |
|
|
|
else |
|
|
|
normal_status(-1, "更新失败") |
|
|
|
@@ -148,4 +140,27 @@ class VersionReleasesController < ApplicationController |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
def releases_params |
|
|
|
{ |
|
|
|
body: params[:body], |
|
|
|
draft: params[:draft] || false, |
|
|
|
name: params[:name], |
|
|
|
prerelease: params[:prerelease], |
|
|
|
tag_name: params[:tag_name], |
|
|
|
target_commitish: params[:target_commitish] || "master" #分支 |
|
|
|
} |
|
|
|
end |
|
|
|
|
|
|
|
def create_attachments(attachment_ids, target) |
|
|
|
attachment_ids.each do |id| |
|
|
|
attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id) |
|
|
|
unless attachment.blank? |
|
|
|
attachment.container = target |
|
|
|
attachment.author_id = current_user.id |
|
|
|
attachment.description = "" |
|
|
|
attachment.save |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
end |