Class: Releases::BaseService
- Inherits:
-
Object
- Object
- Releases::BaseService
show all
- Includes:
- BaseServiceUtility, Gitlab::Utils::StrongMemoize
- Defined in:
- app/services/releases/base_service.rb
Constant Summary
collapse
- ReleaseProtectedTagAccessError =
Class.new(StandardError)
Instance Attribute Summary collapse
Instance Method Summary
collapse
#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level
#can?
Constructor Details
#initialize(project, user = nil, params = {}) ⇒ BaseService
Returns a new instance of BaseService.
12
13
14
15
16
|
# File 'app/services/releases/base_service.rb', line 12
def initialize(project, user = nil, params = {})
@project = project
@current_user = user
@params = params.dup
end
|
Instance Attribute Details
#current_user ⇒ Object
Returns the value of attribute current_user.
10
11
12
|
# File 'app/services/releases/base_service.rb', line 10
def current_user
@current_user
end
|
#params ⇒ Object
Returns the value of attribute params.
10
11
12
|
# File 'app/services/releases/base_service.rb', line 10
def params
@params
end
|
#project ⇒ Object
Returns the value of attribute project.
10
11
12
|
# File 'app/services/releases/base_service.rb', line 10
def project
@project
end
|
Instance Method Details
#description ⇒ Object
34
35
36
|
# File 'app/services/releases/base_service.rb', line 34
def description
params[:description]
end
|
#execute_hooks(release, action = 'create') ⇒ Object
108
109
110
|
# File 'app/services/releases/base_service.rb', line 108
def execute_hooks(release, action = 'create')
release.execute_hooks(action)
end
|
#existing_tag ⇒ Object
54
55
56
57
58
|
# File 'app/services/releases/base_service.rb', line 54
def existing_tag
strong_memoize(:existing_tag) do
repository.find_tag(tag_name)
end
end
|
#inexistent_milestone_ids ⇒ Object
84
85
86
87
88
89
90
|
# File 'app/services/releases/base_service.rb', line 84
def inexistent_milestone_ids
return [] unless param_for_milestone_ids_provided?
existing_milestone_ids = milestones.map(&:id)
Array(params[:milestone_ids]) - existing_milestone_ids
end
|
#inexistent_milestone_titles ⇒ Object
76
77
78
79
80
81
82
|
# File 'app/services/releases/base_service.rb', line 76
def inexistent_milestone_titles
return [] unless param_for_milestone_titles_provided?
existing_milestone_titles = milestones.map(&:title)
Array(params[:milestones]) - existing_milestone_titles
end
|
#milestones ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'app/services/releases/base_service.rb', line 60
def milestones
return [] unless param_for_milestones_exists?
strong_memoize(:milestones) do
MilestonesFinder.new(
project: project,
current_user: current_user,
project_ids: Array(project.id),
group_ids: Array(project_group_id),
state: 'all',
title: params[:milestones],
ids: params[:milestone_ids]
).execute
end
end
|
#name ⇒ Object
30
31
32
|
# File 'app/services/releases/base_service.rb', line 30
def name
params[:name] || tag_name
end
|
#param_for_milestone_ids_provided? ⇒ Boolean
96
97
98
|
# File 'app/services/releases/base_service.rb', line 96
def param_for_milestone_ids_provided?
!!params[:milestone_ids]
end
|
#param_for_milestone_titles_provided? ⇒ Boolean
92
93
94
|
# File 'app/services/releases/base_service.rb', line 92
def param_for_milestone_titles_provided?
!!params[:milestones]
end
|
#param_for_milestones_exists? ⇒ Boolean
104
105
106
|
# File 'app/services/releases/base_service.rb', line 104
def param_for_milestones_exists?
params[:milestones].present? || params[:milestone_ids].present?
end
|
#param_for_milestones_provided? ⇒ Boolean
100
101
102
|
# File 'app/services/releases/base_service.rb', line 100
def param_for_milestones_provided?
param_for_milestone_titles_provided? || param_for_milestone_ids_provided?
end
|
#project_group_id ⇒ Object
113
|
# File 'app/services/releases/base_service.rb', line 113
def project_group_id; end
|
#ref ⇒ Object
26
27
28
|
# File 'app/services/releases/base_service.rb', line 26
def ref
params[:ref]
end
|
#release ⇒ Object
42
43
44
45
46
|
# File 'app/services/releases/base_service.rb', line 42
def release
strong_memoize(:release) do
project.releases.find_by_tag(tag_name)
end
end
|
#released_at ⇒ Object
38
39
40
|
# File 'app/services/releases/base_service.rb', line 38
def released_at
params[:released_at]
end
|
#repository ⇒ Object
48
49
50
51
52
|
# File 'app/services/releases/base_service.rb', line 48
def repository
strong_memoize(:repository) do
project.repository
end
end
|
#tag_message ⇒ Object
22
23
24
|
# File 'app/services/releases/base_service.rb', line 22
def tag_message
params[:tag_message]
end
|
#tag_name ⇒ Object
18
19
20
|
# File 'app/services/releases/base_service.rb', line 18
def tag_name
params[:tag]
end
|