summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2019-01-08 19:20:07 +0900
committerShinya Maeda <shinya@gitlab.com>2019-01-10 14:51:57 +0900
commit5cf6f16bc968ea483168d0956dd557388c72232f (patch)
treed0e3771f75f80d14a3e21780ecef889848350f21
parentb2e807e62464a77dd9f4c50f4b339d4cd4f89718 (diff)
downloadgitlab-ce-simplify-release-services.tar.gz
Simplify release servicessimplify-release-services
Add changelog fix
-rw-r--r--app/services/releases/concerns.rb48
-rw-r--r--app/services/releases/create_service.rb22
-rw-r--r--app/services/releases/destroy_service.rb14
-rw-r--r--app/services/releases/update_service.rb14
-rw-r--r--changelogs/unreleased/simplify-release-services.yml5
5 files changed, 48 insertions, 55 deletions
diff --git a/app/services/releases/concerns.rb b/app/services/releases/concerns.rb
deleted file mode 100644
index a04bb8f9e14..00000000000
--- a/app/services/releases/concerns.rb
+++ /dev/null
@@ -1,48 +0,0 @@
-# frozen_string_literal: true
-
-module Releases
- module Concerns
- extend ActiveSupport::Concern
- include Gitlab::Utils::StrongMemoize
-
- included do
- def tag_name
- params[:tag]
- end
-
- def ref
- params[:ref]
- end
-
- def name
- params[:name]
- end
-
- def description
- params[:description]
- end
-
- def release
- strong_memoize(:release) do
- project.releases.find_by_tag(tag_name)
- end
- end
-
- def existing_tag
- strong_memoize(:existing_tag) do
- repository.find_tag(tag_name)
- end
- end
-
- def tag_exist?
- existing_tag.present?
- end
-
- def repository
- strong_memoize(:repository) do
- project.repository
- end
- end
- end
- end
-end
diff --git a/app/services/releases/create_service.rb b/app/services/releases/create_service.rb
index c6e143d440d..c1d20b9858c 100644
--- a/app/services/releases/create_service.rb
+++ b/app/services/releases/create_service.rb
@@ -2,7 +2,7 @@
module Releases
class CreateService < BaseService
- include Releases::Concerns
+ include Gitlab::Utils::StrongMemoize
def execute
return error('Access Denied', 403) unless allowed?
@@ -22,11 +22,11 @@ module Releases
end
def create_tag
- return error('Ref is not specified', 422) unless ref
+ return error('Ref is not specified', 422) unless params[:ref]
result = Tags::CreateService
.new(project, current_user)
- .execute(tag_name, ref, nil)
+ .execute(params[:tag], ref, nil)
return result unless result[:status] == :success
@@ -39,8 +39,8 @@ module Releases
def create_release(tag)
release = project.releases.create!(
- name: name,
- description: description,
+ name: params[:name],
+ description: params[:description],
author: current_user,
tag: tag.name,
sha: tag.dereferenced_target.sha,
@@ -51,5 +51,17 @@ module Releases
rescue => e
error(e.message, 400)
end
+
+ def release
+ strong_memoize(:release) do
+ project.releases.find_by_tag(tag_name)
+ end
+ end
+
+ def existing_tag
+ strong_memoize(:existing_tag) do
+ project.repository.find_tag(tag_name)
+ end
+ end
end
end
diff --git a/app/services/releases/destroy_service.rb b/app/services/releases/destroy_service.rb
index 8c2bc3b4e6e..09aa693737d 100644
--- a/app/services/releases/destroy_service.rb
+++ b/app/services/releases/destroy_service.rb
@@ -2,7 +2,7 @@
module Releases
class DestroyService < BaseService
- include Releases::Concerns
+ include Gitlab::Utils::StrongMemoize
def execute
return error('Tag does not exist', 404) unless existing_tag
@@ -21,5 +21,17 @@ module Releases
def allowed?
Ability.allowed?(current_user, :destroy_release, release)
end
+
+ def release
+ strong_memoize(:release) do
+ project.releases.find_by_tag(tag_name)
+ end
+ end
+
+ def existing_tag
+ strong_memoize(:existing_tag) do
+ project.repository.find_tag(tag_name)
+ end
+ end
end
end
diff --git a/app/services/releases/update_service.rb b/app/services/releases/update_service.rb
index fabfa398c59..e37074e0012 100644
--- a/app/services/releases/update_service.rb
+++ b/app/services/releases/update_service.rb
@@ -2,7 +2,7 @@
module Releases
class UpdateService < BaseService
- include Releases::Concerns
+ include Gitlab::Utils::StrongMemoize
def execute
return error('Tag does not exist', 404) unless existing_tag
@@ -28,5 +28,17 @@ module Releases
params.except(:tag).empty?
end
# rubocop: enable CodeReuse/ActiveRecord
+
+ def release
+ strong_memoize(:release) do
+ project.releases.find_by_tag(tag_name)
+ end
+ end
+
+ def existing_tag
+ strong_memoize(:existing_tag) do
+ project.repository.find_tag(tag_name)
+ end
+ end
end
end
diff --git a/changelogs/unreleased/simplify-release-services.yml b/changelogs/unreleased/simplify-release-services.yml
new file mode 100644
index 00000000000..f08b0763464
--- /dev/null
+++ b/changelogs/unreleased/simplify-release-services.yml
@@ -0,0 +1,5 @@
+---
+title: Simplify release services
+merge_request: 24224
+author:
+type: other