From 783ae4dd26b562c699e0d6a6de7dcdeedf09c23b Mon Sep 17 00:00:00 2001 From: xzour Date: Fri, 16 May 2025 09:57:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20GitLab=20=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=A4=84=E7=90=86=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E4=BA=8B=E4=BB=B6=E7=B1=BB=E5=9E=8B=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=B9=B6=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/home.js | 2 +- app/imports/const.js | 6 ++++++ app/service/webhook.js | 9 +++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/controller/home.js b/app/controller/home.js index d042269..f7b74bd 100644 --- a/app/controller/home.js +++ b/app/controller/home.js @@ -44,7 +44,7 @@ class HomeController extends Controller { if (ctx.request.headers['x-gitlab-event']) { gitlabEvent = ctx.request.headers['x-gitlab-event']; if (Object.values(X_GITLAB_EVENT).indexOf(gitlabEvent) === -1) { - const errMsg = `====> x-gitlab-event "${gitlabEvent}" is not supported}`; + const errMsg = `====> x-gitlab-event "${gitlabEvent}" is not supported`; this.logger.error(errMsg); ctx.body = { error: errMsg, diff --git a/app/imports/const.js b/app/imports/const.js index 758bd3a..fa197cb 100644 --- a/app/imports/const.js +++ b/app/imports/const.js @@ -36,6 +36,12 @@ const EVENT_TYPE = { const X_GITLAB_EVENT = { push: 'Push Hook', system: 'System Hook', + merge_request: 'Merge Request Hook', + tag_push: 'Tag Push Hook', + issue: 'Issue Hook', + note: 'Note Hook', + pipeline: 'Pipeline Hook', + wiki_page: 'Wiki Page Hook' }; module.exports = { OBJECT_KIND, EVENT_TYPE, X_GITLAB_EVENT }; diff --git a/app/service/webhook.js b/app/service/webhook.js index ad590ed..b688aa3 100644 --- a/app/service/webhook.js +++ b/app/service/webhook.js @@ -55,6 +55,15 @@ class WebhookService extends Service { ? this.pushHookHandler(content, data) : this.systemHookHandler(content, data); break; + case X_GITLAB_EVENT.merge_request: + case X_GITLAB_EVENT.tag_push: + case X_GITLAB_EVENT.issue: + case X_GITLAB_EVENT.note: + case X_GITLAB_EVENT.pipeline: + case X_GITLAB_EVENT.wiki_page: + // 所有通过object_kind处理的事件都使用pushHookHandler + this.pushHookHandler(content, data); + break; default: // controller make sure not to here break;