diff --git a/runbot_merge/models/batch.py b/runbot_merge/models/batch.py index d920802f..1a96075e 100644 --- a/runbot_merge/models/batch.py +++ b/runbot_merge/models/batch.py @@ -432,7 +432,7 @@ class Batch(models.Model): _logger.info('-> no parent %s (%s)', batch, prs) continue if not force_fw and batch.source.fw_policy != 'skipci' \ - and (invalid := batch.prs.filtered(lambda p: p.state not in ['validated', 'ready'])): + and (invalid := batch.prs.filtered(lambda p: p.status != 'success')): _logger.info( '-> wrong state %s (%s)', batch, diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index 4c175194..dd27fe36 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -1163,7 +1163,7 @@ For your own safety I've ignored *everything in your entire comment*. super().modified(fnames, create, before) @api.depends( - 'statuses', 'overrides', 'target', 'parent_id', + 'statuses', 'overrides', 'target', 'parent_id', 'skipchecks', 'repository.status_ids.context', 'repository.status_ids.branch_filter', 'repository.status_ids.prs', @@ -1173,6 +1173,9 @@ For your own safety I've ignored *everything in your entire comment*. statuses = {**json.loads(pr.statuses), **pr._get_overrides()} pr.statuses_full = json.dumps(statuses, indent=4) + if pr.skipchecks: + pr.status = 'success' + continue st = 'success' for ci in pr.repository.status_ids._for_pr(pr): diff --git a/runbot_merge/tests/test_oddities.py b/runbot_merge/tests/test_oddities.py index 6bee3696..e0f530b5 100644 --- a/runbot_merge/tests/test_oddities.py +++ b/runbot_merge/tests/test_oddities.py @@ -260,7 +260,7 @@ def test_force_ready(env, repo, config): pr_id.skipchecks = True assert pr_id.state == 'ready' - assert pr_id.status == 'pending' + assert pr_id.status == 'success' reviewer = env['res.users'].browse([env._uid]).partner_id assert pr_id.reviewed_by == reviewer