From 10799ba9d65547a95482452f30372c521fd9da2d Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Tue, 5 Nov 2019 13:15:05 +0100 Subject: [PATCH] [FIX] runbot: allow to manually hook by calling route --- runbot/controllers/hook.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runbot/controllers/hook.py b/runbot/controllers/hook.py index 2b14a301..b6eedd27 100644 --- a/runbot/controllers/hook.py +++ b/runbot/controllers/hook.py @@ -14,7 +14,7 @@ class RunbotHook(http.Controller): @http.route(['/runbot/hook/', '/runbot/hook/org'], type='http', auth="public", website=True, csrf=False) def hook(self, repo_id=None, **post): event = request.httprequest.headers.get("X-Github-Event") - payload = json.loads(request.params['payload']) + payload = json.loads(request.params.get('payload', '{}')) if repo_id is None: repo_data = payload.get('repository') if repo_data and event in ['push', 'pull_request']: @@ -30,7 +30,7 @@ class RunbotHook(http.Controller): repo = request.env['runbot.repo'].sudo().browse([repo_id]) # force update of dependencies to in case a hook is lost - if event == 'push' or (event == 'pull_request' and payload.get('action') in ('synchronize', 'opened', 'reopened')): + if not payload or event == 'push' or (event == 'pull_request' and payload.get('action') in ('synchronize', 'opened', 'reopened')): (repo | repo.dependency_ids).write({'hook_time': time.time()}) else: _logger.debug('Ignoring unsupported hook %s %s', event, payload.get('action', ''))