使用 GitLab Event Triggers
目录
概述核心功能支持的事件类型基本事件信息基本变量(适用于所有事件)1. Push 事件Push 事件变量2. Merge Request 事件Merge Request 事件变量3. 评论事件基本评论事件变量(适用于所有评论事件)3.1 Merge Request 评论变量3.2 Commit 评论变量配置指南前提条件通过 GitLab UI 配置 WebhookPipeline Trigger 配置示例概述
GitLab Event Triggers 允许你通过 GitLab 的 Webhook 事件自动触发 Tekton pipelines。它支持多种事件类型,包括代码推送、合并请求、评论等,帮助你构建完整的 CI/CD 自动化工作流。
核心功能
- 多事件类型支持:支持多种 GitLab 事件,例如 Push、Merge Request、评论等。
- 标准化 Trigger 绑定:提供标准化的 ClusterTriggerBindings,确保跨平台一致性。
- 灵活的参数映射:自动从 GitLab 事件中提取关键信息用于 pipeline 参数。
- 安全的 Webhook 集成:支持 Webhook 安全性验证。
支持的事件类型
基本事件信息
所有输出变量都可用于 pipeline 参数映射。你可以使用 $(tt.params.<param name>) 访问参数值。
基本变量(适用于所有事件)
1. Push 事件
当开发人员向 GitLab 仓库推送代码时触发。适用于:
- 持续集成构建
- 自动化部署
- 代码质量检查
Push 事件变量
2. Merge Request 事件
当合并请求被创建、更新或关闭时触发。适用于:
- 自动化代码审查
- 预发布环境部署
- 自动化测试
Merge Request 事件变量
TIP
请参考你的 GitLab 实例的 webhook 文档,或 GitLab's official merge request event documentation
3. 评论事件
支持以下类型的评论:
- Merge Request 评论
- Commit 评论
适用于:
- ChatOps 评论自动化
基本评论事件变量(适用于所有评论事件)
3.1 Merge Request 评论变量
3.2 Commit 评论变量
配置指南
前提条件
- 环境中已创建一个
EventListener,并且能够处理目标命名空间中的Trigger。更多信息请联系你的平台管理员。 - GitLab 可以访问上述
EventListener。 - 所需的
Pipeline以及必要的运行配置已创建完成。 - 你拥有修改 GitLab 项目 Webhook 设置的权限。
通过 GitLab UI 配置 Webhook
- 访问你的 GitLab 项目设置。
- 导航到 Settings > Webhooks。
- 根据
EventListener的部署模式添加 Webhook URL,例如使用https模式: - 按需选择事件类型:
- Push events
- Merge request events
- Comments
- (可选)配置 Secret Token。
- 点击 "Add webhook"。
Pipeline Trigger 配置示例
如果目标是通过 trigger 实现持续集成,并满足以下需求:
- 在提交代码后自动触发 CI 功能。
- 当合并请求被打开时自动触发 CI pipeline。
为简化本文档,我们假设 pipeline 已准备好,并提供以下参数:
TIP
请替换为你的实际 pipeline 信息。
接下来,我们只需要配置下面两个 trigger:
创建 Push Trigger
将以下 YAML 保存为 gitlab-push-trigger.yaml:
在环境中创建该资源:
创建 Merge Request Trigger
将以下 YAML 保存为 gitlab-merge-request-trigger.yaml:
TIP
请根据需要调整 Interceptor 配置。
在环境中创建该资源:
验证 Triggers
通过提交代码并创建 Merge Request 来验证。
CLI:
你可以使用 kubectl -n <namespace> get pipelinerun 获取 pipeline 执行状态。
Console:
访问 Pipelines > PipelineRuns 查看已触发的 pipelines。