From 7cd9afe7f2ff2cbaaabe0ecf6eb364b55aaf8d60 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 21 Jun 2024 10:58:05 +0200 Subject: [PATCH] [IMP] runbot_merge: trigger commits cron The commit cron needs to be triggered any time we: - create a new commit - update a commit to set its `to_check` So do that in create and write as well as the SQL query in the webhook handler. This should mean we don't need the periodic cron anymore, but for safety's sake run it on 30mn for now. TBF even if we miss triggers, the next `status` webhook hitting will check all the relevant commits anyway... --- runbot_merge/controllers/__init__.py | 1 + runbot_merge/data/merge_cron.xml | 2 +- runbot_merge/models/pull_requests.py | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/runbot_merge/controllers/__init__.py b/runbot_merge/controllers/__init__.py index bdbd96c8..86d65541 100644 --- a/runbot_merge/controllers/__init__.py +++ b/runbot_merge/controllers/__init__.py @@ -369,6 +369,7 @@ def handle_status(env, event): statuses = c.statuses::jsonb || EXCLUDED.statuses::jsonb WHERE NOT c.statuses::jsonb @> EXCLUDED.statuses::jsonb """, [event['sha'], status_value]) + env.ref("runbot_merge.process_updated_commits")._trigger() return 'ok' diff --git a/runbot_merge/data/merge_cron.xml b/runbot_merge/data/merge_cron.xml index f8736785..b0ff6e1d 100644 --- a/runbot_merge/data/merge_cron.xml +++ b/runbot_merge/data/merge_cron.xml @@ -64,7 +64,7 @@ code model._notify() - 1 + 30 minutes -1 diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index 5685721e..9b57924b 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -1781,11 +1781,14 @@ class Commit(models.Model): def create(self, values): values['to_check'] = True r = super(Commit, self).create(values) + self.env.ref("runbot_merge.process_updated_commits")._trigger() return r def write(self, values): values.setdefault('to_check', True) r = super(Commit, self).write(values) + if values['to_check']: + self.env.ref("runbot_merge.process_updated_commits")._trigger() return r def _notify(self):