From 9be5541db52ae48e97f1983e13137de8b2165b75 Mon Sep 17 00:00:00 2001 From: liangjunhao <3220663807@qq.com> Date: Thu, 13 Jun 2024 14:30:14 +0800 Subject: [PATCH] fix: support harbor webhook Signed-off-by: liangjunhao <3220663807@qq.com> --- console/views/webhook.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/console/views/webhook.py b/console/views/webhook.py index d4a81e34c..9d9b4f5b2 100644 --- a/console/views/webhook.py +++ b/console/views/webhook.py @@ -577,13 +577,22 @@ def post(self, request, service_id, *args, **kwargs): # 校验 repository = request.data.get("repository") if not repository: - logger.debug("缺少repository信息") + event_data = request.data.get("event_data") + repository = event_data.get("repository") + + if not repository: result = general_message(400, "failed", "缺少repository信息") return Response(result, status=400) push_data = request.data.get("push_data") - pusher = push_data.get("pusher") - tag = push_data.get("tag") + if not push_data: + pusher = request.data.get("operator") + for resource in event_data.get('resources', []): + tag = resource.get('tag') + else: + pusher = push_data.get("pusher") + tag = push_data.get("tag") + repo_name = repository.get("repo_name") if not repo_name: repository_namespace = repository.get("namespace") @@ -593,6 +602,8 @@ def post(self, request, service_id, *args, **kwargs): repo_name = "fake.repo.aliyun.com/" + repository_namespace + "/" + repository_name else: repo_name = repository.get("repo_full_name") + if event_data: + repo_name = repository.get("repo_full_name") if not repo_name: result = general_message(400, "failed", "缺少repository名称信息") return Response(result, status=400)