本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GitLab webhook 事件
您可以使用 webhook 筛选器组来指定哪些 GitLab Webhook 事件会触发构建。例如,您可以指定仅在对特定分支做出更改时触发构建。
您可以创建一个或多个 Webhook 筛选条件组,来指定哪些 Webhook 事件触发构建。如果任何筛选条件组评估为 true(即组中的所有筛选条件都评估为 true),则会触发构建。创建筛选条件组时,应指定:
- 事件
- 
                对于 GitLab,您可以选择以下一个或多个事件: PUSH、PULL_REQUEST_CREATED、PULL_REQUEST_UPDATED、PULL_REQUEST_MERGED、PULL_REQUEST_REOPENEDPULL_REQUEST_CLOSED、RELEASED、和WORKFLOW_JOB_QUEUED。webhook 的事件类型位于其在 X-GitLab-Event字段中的标头中。下表显示了X-GitLab-Event标头值如何映射到事件类型。对于Merge Request Hookwebhook 事件,有效载荷的object_atttributes.action将包含有关合并请求类型的更多信息。X-GitLab-Event标头值object_atttributes.action事件类型 Push Hook不适用 PUSHMerge Request Hook打开 PULL_REQUEST_CREATEDMerge Request Hook更新 PULL_REQUEST_UPDATEDMerge Request Hookmerge PULL_REQUEST_MERGEDMerge Request Hook重新打开 PULL_REQUEST_REOPENEDMerge Request Hook关闭 PULL_REQUEST_CLOSEDRelease Hook创建、更新 RELEASEDJob Hook不适用 WORKFLOW_JOB_QUEUED对于 PULL_REQUEST_MERGED,如果拉取请求与压缩策略合并且拉取请求分支已关闭,则原始的拉取请求提交将不再存在。在这种情况下,CODEBUILD_WEBHOOK_MERGE_COMMIT环境变量包含压缩后的合并提交的标识符。
- 一个或多个可选筛选条件
- 
                使用正则表达式来指定筛选条件。对于触发构建的事件,组内与其关联的每个筛选条件都必须评估为 True。 - ACTOR_ACCOUNT_ID(控制台中的- ACTOR_ID)
- 
                            当 GitLab 账户 ID 与正则表达式模式匹配时,Webhook 事件会触发构建。此值显示在 Webhook 筛选条件负载中的 actor对象的account_id属性中。
- HEAD_REF
- 
                            当头部引用与正则表达式模式(例如 refs/heads/branch-name和refs/tags/tag-name)匹配时,Webhook 事件会触发构建。HEAD_REF筛选条件将评估分支或标签的 Git 引用名称。分支或标签名称显示在 Webhook 负载的push对象中的new对象的name字段中。对于拉取请求事件,分支名称显示在 Webhook 负载中的source对象的branch中的name字段中。
- BASE_REF
- 
                            当基础引用与正则表达式模式匹配时,Webhook 事件会触发构建。 BASE_REF筛选条件仅处理拉取请求事件(例如,refs/heads/branch-name)。BASE_REF筛选条件评估分支的 Git 引用名称。分支名称显示在branch对象的name字段中,该对象位于 Webhook 负载的destination对象中。
- FILE_PATH
- 
                            当更改的文件的路径与正则表达式模式匹配时,Webhook 会触发构建。 
- COMMIT_MESSAGE
- 
                            当 HEAD 提交消息与正则表达式模式匹配时,Webhook 会触发构建操作。 
- WORKFLOW_NAME
- 
                            当工作流名称与正则表达式模式匹配时,Webhook 会触发构建操作。 
 
注意
你可以在仓库的 webhook 设置中找到 webhook 有效负载。 GitLab