diff --git a/runbot_merge/controllers/__init__.py b/runbot_merge/controllers/__init__.py index 05e89b66..7c815259 100644 --- a/runbot_merge/controllers/__init__.py +++ b/runbot_merge/controllers/__init__.py @@ -157,11 +157,19 @@ def handle_pr(env, event): pr_obj.repository.name, pr_obj.number, event['sender']['login'] ) - if pr_obj.state != 'error': - pr_obj.state = 'opened' - pr_obj.head = pr['head']['sha'] - pr_obj.squash = pr['commits'] == 1 + _logger.info( + "PR %s:%s updated to %s by %s, resetting to 'open' and squash=%s", + pr_obj.repository.name, pr_obj.number, + pr['head']['sha'], event['sender']['login'], + pr['commits'] == 1 + ) + + pr_obj.write({ + 'state': 'opened', + 'head': pr['head']['sha'], + 'squash': pr['commits'] == 1, + }) return 'Updated {} to {}'.format(pr_obj.id, pr_obj.head) # don't marked merged PRs as closed (!!!) diff --git a/runbot_merge/tests/test_basic.py b/runbot_merge/tests/test_basic.py index e63e1443..77ccaea5 100644 --- a/runbot_merge/tests/test_basic.py +++ b/runbot_merge/tests/test_basic.py @@ -1563,7 +1563,7 @@ class TestPRUpdate(object): c2 = repo.make_commit(c, 'first', None, tree={'m': 'cc'}) prx.push(c2) assert pr.head == c2 - assert pr.state == 'error' + assert pr.state == 'opened' def test_unknown_pr(self, env, repo): m = repo.make_commit(None, 'initial', None, tree={'m': 'm'})