簡體   English   中英

如何僅在合並時觸發 gitlab webhook

[英]how to trigger gitlab webhook on merge only

提前感謝您的幫助,

我目前有一個 Gitlab Webhook 在“合並請求事件”選項上成功觸發了 Jenkins 作業:在此處輸入圖像描述

但是,這會為合並請求的每個階段觸發 Jenkins 作業,因此每當創建、更新、合並和關閉請求時,都會觸發 URL 並為每個階段運行作業。

是否可以將 Webhook 限制為**僅**觸發合並批准(因此僅在按下合並按鈕時)。 在此處輸入圖像描述

Webhook 有效負載在“action”標簽下的每個階段傳遞,但只關心“合並”操作。 至於請求的創建、更新或關閉,我不需要作業在這些階段運行。

.. 我試圖在 Jenkins 端解決這個問題 - 我正在使用通用 Webhook 觸發器插件,我正在為觸發器傳遞 JSON 有效負載 - 所以我可以根據發送的“動作”值來操縱作業。

然而,這還不夠,因為 Gitlab Webhook 始終會在每次“合並事件”時從 Gitlab 端觸發,從而導致多次調用 Jenkins 作業。

我找到了答案,這是通用 Webhook 觸發器插件的方式。

因為我從 Gitlab Webhook 負載中提取了“action”變量:

添加 Json 有效負載變量

我現在可以將此變量添加到同一個 Jenkins 插件中的“可選過濾器”:

使用變量作為相關表達式的過濾器

在這里我可以重新使用合並操作變量並查找傳入的“合並”值。

現在我的工作只有在我正在拉的變量中找到這個表達式時才會運行。

另外..我可以將多個變量添加到“可選過濾器”中,並使它們依賴於傳入的表達式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM