From 1a2954114063a8b994c257a90e5814e0a3a8d924 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 9 Jan 2026 01:10:43 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E6=94=AF=E6=8C=81webhook=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E6=B5=81=E6=B0=B4=E7=BA=BF=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E7=B1=BB=E5=9E=8B=E5=9B=BE=E6=A0=87=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/locales/langs/zh-CN/certd.ts | 1 + .../src/views/certd/pipeline/detail.vue | 2 + .../src/views/certd/pipeline/index.vue | 4 +- .../component/history-timeline-item.vue | 6 ++ .../pipeline/component/trigger-form/api.ts | 11 +++ .../pipeline/component/trigger-form/index.vue | 84 +++++++++------- .../component/trigger-form/timer-form.vue | 34 +++++++ .../component/trigger-form/webhook-form.vue | 59 +++++++++++ .../pipeline/component/trigger-icon.vue | 33 +++++++ .../views/certd/pipeline/pipeline/index.vue | 36 ++++--- .../src/views/certd/pipeline/pipeline/type.ts | 1 + .../db/migration/v10036__ipcheck.sql | 2 + .../controller/basic/webhook-controller.ts | 19 ++++ .../user/pipeline/pipeline-controller.ts | 42 +++++--- .../src/modules/pipeline/entity/pipeline.ts | 6 ++ .../pipeline/service/pipeline-service.ts | 98 +++++++++++++------ pnpm-lock.yaml | 6 +- 17 files changed, 347 insertions(+), 97 deletions(-) create mode 100644 packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/api.ts create mode 100644 packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/timer-form.vue create mode 100644 packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/webhook-form.vue create mode 100644 packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-icon.vue create mode 100644 packages/ui/certd-server/src/controller/basic/webhook-controller.ts diff --git a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts index 501f3f09b..7d41eb38b 100644 --- a/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts +++ b/packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts @@ -352,6 +352,7 @@ export default { editSchedule: "修改定时", timerTrigger: "定时触发", schedule: "定时", + webhook: "Webhook", selectCron: "请选择定时Cron", batchEditSchedule: "批量修改定时", editTrigger: "编辑触发器", diff --git a/packages/ui/certd-client/src/views/certd/pipeline/detail.vue b/packages/ui/certd-client/src/views/certd/pipeline/detail.vue index d713a5603..373ab590a 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/detail.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/detail.vue @@ -38,6 +38,8 @@ const pipelineOptions: PipelineOptions = { from: detail.pipeline.from, }, validTime: detail.pipeline.validTime, + webhookKey: detail.pipeline.webhookKey, + id: detail.pipeline.id, } as PipelineDetail; }, diff --git a/packages/ui/certd-client/src/views/certd/pipeline/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/index.vue index 11365d60f..190a7fc51 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/index.vue @@ -3,11 +3,11 @@ - +
diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue index 7a020d4ea..12546c7df 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/history-timeline-item.vue @@ -4,6 +4,7 @@

+ {{ status.label }} @@ -19,8 +20,12 @@ import { defineComponent, ref, provide, Ref, watch, computed } from "vue"; import { statusUtil } from "/@/views/certd/pipeline/pipeline/utils/util.status"; import * as api from "../../api"; import { Modal, notification } from "ant-design-vue"; +import TriggerIcon from "./trigger-icon.vue"; export default defineComponent({ name: "PiHistoryTimelineItem", + components: { + TriggerIcon, + }, props: { runnable: { type: Object, @@ -69,6 +74,7 @@ export default defineComponent({ }, }); } + return { status, cancel, diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/api.ts b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/api.ts new file mode 100644 index 000000000..84b4573bd --- /dev/null +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/api.ts @@ -0,0 +1,11 @@ +import { request } from "/src/api/service"; + +const apiPrefix = "/pi/pipeline"; + +export async function RefreshWebhookKey(form: any) { + return await request({ + url: apiPrefix + "/refreshWebhookKey", + method: "post", + data: form, + }); +} diff --git a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/index.vue b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/index.vue index 76577174c..6194bbee5 100644 --- a/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/index.vue +++ b/packages/ui/certd-client/src/views/certd/pipeline/pipeline/component/trigger-form/index.vue @@ -13,6 +13,25 @@ @@ -126,8 +137,8 @@