Commit bdbaebf8 authored by Felipe Artur's avatar Felipe Artur Committed by Dmitriy Zaporozhets

Skip spam check for task list updates

Task list updates should not mark users action as spam on akismet.
parent 54820ac9
...@@ -182,7 +182,7 @@ class IssuableBaseService < BaseService ...@@ -182,7 +182,7 @@ class IssuableBaseService < BaseService
# To be overridden by subclasses # To be overridden by subclasses
end end
def before_update(issuable) def before_update(issuable, skip_spam_check: false)
# To be overridden by subclasses # To be overridden by subclasses
end end
...@@ -257,7 +257,7 @@ class IssuableBaseService < BaseService ...@@ -257,7 +257,7 @@ class IssuableBaseService < BaseService
last_edited_at: Time.now, last_edited_at: Time.now,
last_edited_by: current_user)) last_edited_by: current_user))
before_update(issuable) before_update(issuable, skip_spam_check: true)
if issuable.with_transaction_returning_status { issuable.save } if issuable.with_transaction_returning_status { issuable.save }
# We do not touch as it will affect a update on updated_at field # We do not touch as it will affect a update on updated_at field
......
...@@ -17,8 +17,8 @@ module Issues ...@@ -17,8 +17,8 @@ module Issues
super super
end end
def before_update(issue) def before_update(issue, skip_spam_check: false)
spam_check(issue, current_user) spam_check(issue, current_user) unless skip_spam_check
end end
def handle_changes(issue, options) def handle_changes(issue, options)
......
---
title: Skip spam check for task list updates
merge_request: 30279
author:
type: fixed
...@@ -480,6 +480,22 @@ describe Issues::UpdateService, :mailer do ...@@ -480,6 +480,22 @@ describe Issues::UpdateService, :mailer do
update_issue(description: "- [x] Task 1\n- [X] Task 2") update_issue(description: "- [x] Task 1\n- [X] Task 2")
end end
it 'does not check for spam on task status change' do
params = {
update_task: {
index: 1,
checked: false,
line_source: '- [x] Task 1',
line_number: 1
}
}
service = described_class.new(project, user, params)
expect(service).not_to receive(:spam_check)
service.execute(issue)
end
it 'creates system note about task status change' do it 'creates system note about task status change' do
note1 = find_note('marked the task **Task 1** as completed') note1 = find_note('marked the task **Task 1** as completed')
note2 = find_note('marked the task **Task 2** as completed') note2 = find_note('marked the task **Task 2** as completed')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment