mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 23:45:44 +07:00
[FIX] forwardport: fix reminder cron to avoid multiple messages
Because the reminder cron uses groupby to "merge" open PRs related to the same source and send a single message for all of them (e.g. PR 6548 forward-ported to 6587 and 6591 should have a single reminder message per day not one per descendant), the PRs with the same source need to be consecutive in the search sequence. However there was no order specified so the search would yield PRs in id order or something, and if there happened to be an other forward-port PR inbetween the descendants of the original would not get coalesced and would therefore trigger a message per descendant per day (doubling or tripling the intended spam rate). Ordering by source_id should fix the issue as it ought make all PRs forward-ported from the same thing contiguous, and therefore grouped together before sending reminder messages. An alternatively solution would be to use `groupby` instead of `search` but it would require more modifications as we'd need to re-browse the sources and descendants, etc... First part of fixing #285 as this is likely why odoo/enterprise#7204 got spammed so much: its descendants were odoo/enterprise#7367 and odoo/enterprise#7369 and it just so happens that odoo/enterprise#7368 was *also* a forward port PR, causing the issue explained above.
This commit is contained in:
parent
974bab40ba
commit
ddf3f5013e
@ -971,7 +971,7 @@ stderr:
|
||||
('state', 'not in', ['merged', 'closed']),
|
||||
# last updated more than <cutoff> ago
|
||||
('write_date', '<', cutoff),
|
||||
]), lambda p: p.source_id):
|
||||
], order='source_id, id'), lambda p: p.source_id):
|
||||
self.env['runbot_merge.pull_requests.feedback'].create({
|
||||
'repository': source.repository.id,
|
||||
'pull_request': source.number,
|
||||
|
Loading…
Reference in New Issue
Block a user