Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/issues/close_service.rb')
-rw-r--r--app/services/issues/close_service.rb16
1 files changed, 14 insertions, 2 deletions
diff --git a/app/services/issues/close_service.rb b/app/services/issues/close_service.rb
index 746f7d1f4c1..1700d1d8586 100644
--- a/app/services/issues/close_service.rb
+++ b/app/services/issues/close_service.rb
@@ -24,8 +24,8 @@ module Issues
return issue
end
- if project.issues_enabled? && issue.close
- issue.update(closed_by: current_user)
+ if project.issues_enabled? && issue.close(current_user)
+ remove_on_close_labels_from(issue)
event_service.close_issue(issue, current_user)
create_note(issue, closed_via) if system_note
@@ -52,6 +52,18 @@ module Issues
private
+ def remove_on_close_labels_from(issue)
+ old_labels = issue.labels.to_a
+
+ issue.label_links.with_remove_on_close_labels.delete_all
+ issue.labels.reset
+
+ Issuable::CommonSystemNotesService.new(project: project, current_user: current_user).execute(
+ issue,
+ old_labels: old_labels
+ )
+ end
+
def close_external_issue(issue, closed_via)
return unless project.external_issue_tracker&.support_close_issue?