Create services for issue close and reopen
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
0d41f6f0a3
commit
cc77365488
|
@ -86,10 +86,9 @@ class GitPushService
|
|||
author = commit_user(commit)
|
||||
|
||||
if !issues_to_close.empty? && is_default_branch
|
||||
Thread.current[:current_user] = author
|
||||
Thread.current[:current_commit] = commit
|
||||
|
||||
issues_to_close.each { |i| i.close && i.save }
|
||||
issues_to_close.each do |issue|
|
||||
Issues::CloseService.new(project, author, {}).execute(issue, commit)
|
||||
end
|
||||
end
|
||||
|
||||
# Create cross-reference notes for any other references. Omit any issues that were referenced in an
|
||||
|
|
|
@ -3,11 +3,6 @@ module Issues
|
|||
|
||||
private
|
||||
|
||||
# Create issue note with service comment like 'Status changed to closed'
|
||||
def create_note(issue)
|
||||
Note.create_status_change_note(issue, issue.project, current_user, issue.state, current_commit)
|
||||
end
|
||||
|
||||
def create_assignee_note(issue)
|
||||
Note.create_assignee_change_note(issue, issue.project, current_user, issue.assignee)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
module Issues
|
||||
class CloseService < BaseService
|
||||
def execute(issue, commit = nil)
|
||||
if issue.close
|
||||
notification_service.close_issue(issue, current_user)
|
||||
event_service.close_issue(issue, current_user)
|
||||
create_note(issue, commit)
|
||||
execute_hooks(issue)
|
||||
end
|
||||
|
||||
issue
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_note(issue, current_commit)
|
||||
Note.create_status_change_note(issue, issue.project, current_user, issue.state, current_commit)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,19 @@
|
|||
module Issues
|
||||
class ReopenService < BaseService
|
||||
def execute(issue)
|
||||
if issue.reopen
|
||||
event_service.reopen_issue(issue, current_user)
|
||||
create_note(issue, commit)
|
||||
execute_hooks(issue)
|
||||
end
|
||||
|
||||
issue
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_note(issue)
|
||||
Note.create_status_change_note(issue, issue.project, current_user, issue.state, nil)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -5,7 +5,7 @@ module Issues
|
|||
issue.reset_events_cache
|
||||
|
||||
if issue.is_being_reassigned?
|
||||
notification.reassigned_issue(issue, current_user)
|
||||
notification_service.reassigned_issue(issue, current_user)
|
||||
create_assignee_note(issue)
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue