dev_forge
Jasder 5 years ago
commit a4a7b32a8a

@ -328,7 +328,7 @@ class ApplicationController < ActionController::Base
def current_user
# User.current
User.find_by_id 1
User.find_by_id 36390
end
## 默认输出json

@ -4,13 +4,35 @@ class VersionReleasesController < ApplicationController
before_action :find_version , only: [:edit, :update, :destroy]
def index
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_tags_releases = Gitea::Repository::Tags::ListService.new(@user, @repository.try(:identifier)).call
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 = version_tags_releases
# @version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier)).call
@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)
# 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
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))
if version_release.save!
git_version_release = Gitea::Versions::CreateService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier), version_params).call
if git_version_release
update_params = {
tarball_url: git_version_release["tarball_url"],
@ -53,6 +74,7 @@ class VersionReleasesController < ApplicationController
version_gid: git_version_release["id"],
}
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, "发布成功")
else
normal_status(-1, "发布失败")
@ -109,11 +131,15 @@ class VersionReleasesController < ApplicationController
ActiveRecord::Base.transaction do
begin
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
unless git_version_release
raise Error, "删除失败"
git_version_release = Gitea::Versions::DeleteService.new(@user.gitea_token, @repository.try(:login), @repository.try(:identifier), @version.try(:version_gid)).call
if git_version_release.status == 204
normal_status(0, "删除成功")
elsif git_version_release.status == 401
normal_status(0, "发布版本不存在")
else
normal_status(-1, "删除失败")
end
normal_status(0, "删除成功")
else
normal_status(-1, "删除失败")
end

@ -29,6 +29,8 @@ class Project < ApplicationRecord
has_many :praise_treads, as: :praise_tread_object, dependent: :destroy
has_and_belongs_to_many :trackers, :order => "#{Tracker.table_name}.position"
after_save :check_project_members
# 创建者
def creator
@ -40,7 +42,7 @@ class Project < ApplicationRecord
end
def member?(user)
members.exists?(user_id: user.id)
members.exists?(user_id: user.id) || user.id == self.user_id
end
def members_user_infos
@ -59,7 +61,20 @@ class Project < ApplicationRecord
else
self&.issues.select(:id)&.pluck(:id).size
end
end
#创建项目管理员
def check_project_members
unless members.present? && members.exists(user_id: self.user_id)
member_params = {
user_id: self.user_id,
project_id: self.id
}
user_member = Member.new(member_params)
if user_member.save
MemberRole.create(member_id: user_member.id ,role_id: 3)
end
end
end
end

@ -1,4 +1,5 @@
class VersionRelease < ApplicationRecord
belongs_to :repository
belongs_to :user
has_many :project_trends, as: :trend, dependent: :destroy
end

@ -43,11 +43,10 @@ class Gitea::ClientService < ApplicationService
def delete(url, params={})
auth_token = authen_params(params[:token])
response = conn(auth_token).delete do |req|
conn(auth_token).delete do |req|
req.url full_url(url)
req.body = params[:data].to_json
end
render_status(response)
end
def update(url, params={})
@ -55,7 +54,7 @@ class Gitea::ClientService < ApplicationService
request_url = [api_url, url].join('').freeze
auth_token = authen_params(params[:token])
response = conn(auth_token).put do |req|
response = conn(auth_token).patch do |req|
req.url "#{request_url}"
req.body = params[:data].to_json
end

@ -28,7 +28,7 @@ class Gitea::Versions::CreateService < Gitea::ClientService
end
def url
"/repos/#{@user}/#{@repo}/releases".freeze
"/repos/#{@user_name}/#{@repo}/releases".freeze
end
end

@ -19,6 +19,7 @@ class Gitea::Versions::DeleteService < Gitea::ClientService
end
def url
"/repos/#{@user}/#{@repo}/releases/#{@version_gid}".freeze
"/repos/#{@user_name}/#{@repo}/releases/#{@version_gid}".freeze
end
end

@ -0,0 +1,35 @@
# Get a list of all commits from a repository
class Gitea::Versions::ListService < Gitea::ClientService
attr_reader :token, :user_name, :repo
# sha: SHA or branch to start listing commits from (usually 'master')
def initialize(token, user_name, repo)
@token = token
@user_name = user_name
@repo = repo
end
def call
response = get(url, params)
render_result(response)
end
private
def params
Hash.new.merge(token: token)
end
def url
"/repos/#{@user_name}/#{@repo}/releases".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

@ -29,7 +29,7 @@ class Gitea::Versions::UpdateService < Gitea::ClientService
end
def url
"/repos/#{@user}/#{@repo}/releases/#{@version_gid}".freeze
"/repos/#{@user_name}/#{@repo}/releases/#{@version_gid}".freeze
end
end

@ -40,7 +40,8 @@ class Projects::MigrateService < ApplicationService
hidden: get_is_public,
identifier: params[:repository_name],
mirror_url: params[:clone_addr],
user_id: user.id
user_id: user.id,
login: user.login
}
end

@ -10,7 +10,7 @@ json.issue_journals do
json.array! journals.to_a.each do |j|
json.user_name j.user.try(:show_real_name)
json.user_login j.user.try(:login)
json.user_picture url_to_avatar(j.user)
json.user_avatar url_to_avatar(j.user)
json.content j.try(:notes)
json.created_at time_from_now(j.created_on)
end

@ -10,11 +10,14 @@ json.project_trends do
json.trend_type trend.trend_type
json.action_type l("trend.#{trend.action_type}") + l("trend.#{trend.trend_type}")
json.trend_id trend.trend_id
json.user_name trend.user.try(:show_real_name)
json.user_login trend.user.login
json.user_avatar url_to_avatar(trend.user)
if trend.trend_type == "Issue"
json.partial! "issues/simple_issue_item", locals: {issue: trend.trend}
elsif trend.trend_type == "VersionRelease"
json.partial! "version_releases/simple_version_release", locals: {version: trend.trend}
end
#后续需要天际pullrequest 和 版本的内容

@ -0,0 +1,2 @@
json.extract! version, :id, :name,:tag_name, :target_commitish, :tarball_url, :zipball_url,:url, :version_gid

@ -1,21 +1,22 @@
json.partial! "commons/success"
json.all_count @version_releases_size
json.limit @limit
json.version_releases do
json.array! @version_releases.to_a.each do |re|
json.id re.id
json.version_gid re.version_gid
json.name re.name
json.body re.body
json.tag_name re.tag_name
json.target_commitish re.target_commitish
json.release_type re.draft ? "草稿" : (re.prerelease ? "预发行" : "稳定")
json.tarball_url re.tarball_url
json.zipball_url re.zipball_url
json.url re.zipball_url
json.user_login re.user.try(:login)
json.user_avatar url_to_avatar(re.user)
json.created_at format_time(re.created_at)
json.format_created time_from_now(re.created_at)
end
end
json.releases @version_releases
# json.all_count @version_releases_size
# json.limit @limit
# json.version_releases do
# json.array! @version_releases.to_a.each do |re|
# json.id re.id
# json.version_gid re.version_gid
# json.name re.name
# json.body re.body
# json.tag_name re.tag_name
# json.target_commitish re.target_commitish
# json.release_type re.draft ? "草稿" : (re.prerelease ? "预发行" : "稳定")
# json.tarball_url re.tarball_url
# json.zipball_url re.zipball_url
# json.url re.zipball_url
# json.user_login re.user.try(:login)
# json.user_avatar url_to_avatar(re.user)
# json.created_at format_time(re.created_at)
# json.format_created time_from_now(re.created_at)
# end
# end

@ -17,7 +17,7 @@ zh-CN:
trend:
Issue: 工单
PullRequest: 合并请求
Version: 版本发布
VersionRelease: 版本发布
create: 创建了
journal: 回复了
close: 关闭了

Loading…
Cancel
Save