This is mostly for older PRs being revived (due to comments): if the repo is deleted, the PR ends up with no label whatsoever. The fetch loop currently doesn't like that at all, and will crash trying to create the PR object:
2019-02-27 07:37:48,577 16223 ERROR mergebot odoo.sql_db: bad query: b'INSERT INTO "runbot_merge_pull_requests" ("id", "priority", "merge_method", "method_warned", "state", "link_warned", "number", "label", "author", "target", "reposito
ry", "head", "squash", "message", "create_uid", "write_uid", "create_date", "write_date") VALUES(<…>) RETURNING id'
ERROR: null value in column "label" violates not-null constraint
2019-02-27 07:37:48,577 16223 ERROR mergebot odoo.addons.base.ir.ir_cron: Call from cron Check for PRs to fetch for server action #497 failed in Job #16
Traceback (most recent call last):
File "/home/odoo/src/odoo/11.0/odoo/tools/safe_eval.py", line 350, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)
File "", line 1, in <module>
File "runbot/runbot_merge/models/pull_requests.py", line 151, in _check_fetch
f.repository._load_pr(f.number)
File "runbot/runbot_merge/models/pull_requests.py", line 203, in _load_pr
'pull_request': pr,
File "runbot/runbot_merge/controllers/__init__.py", line 138, in handle_pr
'message': message,
File "runbot/runbot_merge/models/pull_requests.py", line 698, in create
pr = super().create(vals)
File "odoo/11.0/odoo/models.py", line 3377, in create
record = self.browse(self._create(old_vals))
File "odoo/11.0/odoo/models.py", line 3470, in _create
cr.execute(query, tuple(u[2] for u in updates if len(u) > 2))
File "odoo/11.0/odoo/sql_db.py", line 155, in wrapper
return f(self, *args, **kwargs)
File "odoo/11.0/odoo/sql_db.py", line 232, in execute
res = self._obj.execute(query, params)
psycopg2.IntegrityError: null value in column "label" violates not-null constraint
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "odoo/11.0/odoo/addons/base/ir/ir_cron.py", line 102, in _callback
self.env['ir.actions.server'].browse(server_action_id).run()
File "odoo/11.0/odoo/addons/base/ir/ir_actions.py", line 554, in run
res = func(action, eval_context=eval_context)
File "odoo/11.0/addons/website/models/ir_actions.py", line 57, in run_action_code_multi
res = super(ServerAction, self).run_action_code_multi(action, eval_context)
File "odoo/11.0/odoo/addons/base/ir/ir_actions.py", line 430, in run_action_code_multi
safe_eval(action.sudo().code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action'
File "odoo/11.0/odoo/tools/safe_eval.py", line 373, in safe_eval
pycompat.reraise(ValueError, ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr)), exc_info[2])
File "odoo/11.0/odoo/tools/pycompat.py", line 86, in reraise
raise value.with_traceback(tb)
File "odoo/11.0/odoo/tools/safe_eval.py", line 350, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)
File "", line 1, in <module>
File "runbot/runbot_merge/models/pull_requests.py", line 151, in _check_fetch
f.repository._load_pr(f.number)
File "runbot/runbot_merge/models/pull_requests.py", line 203, in _load_pr
'pull_request': pr,
File "runbot/runbot_merge/controllers/__init__.py", line 138, in handle_pr
'message': message,
File "runbot/runbot_merge/models/pull_requests.py", line 698, in create
pr = super().create(vals)
File "odoo/11.0/odoo/models.py", line 3377, in create
record = self.browse(self._create(old_vals))
File "odoo/11.0/odoo/models.py", line 3470, in _create
cr.execute(query, tuple(u[2] for u in updates if len(u) > 2))
File "odoo/11.0/odoo/sql_db.py", line 155, in wrapper
return f(self, *args, **kwargs)
File "odoo/11.0/odoo/sql_db.py", line 232, in execute
res = self._obj.execute(query, params)
ValueError: <class 'psycopg2.IntegrityError'>: "null value in column "label" violates not-null constraint
" while evaluating
'model._check_fetch(True)'