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