如何在Jenkinsfile中获取Gitea Webhook payload以识别新增标签事件
解决方案:通过Jenkinsfile获取Gitea Webhook Payload判断标签创建
核心结论
可以在Jenkinsfile中获取Gitea Webhook的payload,以此判断是否有新标签被创建,具体实现如下:
步骤1:在Gitea中补充标签事件Webhook
默认多分支流水线自动创建的Webhook通常只监听分支相关事件,需要手动在Gitea仓库的Webhook设置中新增一条:
- 触发事件选择「标签」(或包含分支、标签创建的「创建」事件)
- 回调URL填写Jenkins的Gitea Webhook端点,格式为
http://<Jenkins地址>/gitea-webhook/post - 确保Webhook密钥与Jenkins中配置的一致
步骤2:在Jenkinsfile中解析Payload并判断事件
Jenkins会将Gitea Webhook的payload注入到环境变量$GITTEA_PAYLOAD中,可直接解析该变量判断事件类型:
pipeline { agent any stages { stage('Check Tag Creation') { steps { script { // 解析Gitea Webhook payload def payload = readJSON text: env.GITTEA_PAYLOAD // 判断是否为标签创建事件 if (payload.ref_type == 'tag' && payload.action == 'created') { echo "检测到新标签:${payload.ref}" // 这里添加标签创建时需要执行的构建逻辑 } else { echo "非标签创建事件,执行原有分支构建逻辑" // 原有分支构建步骤放在此处 } } } } // 其他构建阶段... } }
关键说明
- 确保Jenkins的Gitea插件版本足够新,支持
$GITTEA_PAYLOAD环境变量注入 - 声明式Jenkinsfile需用
script块执行Groovy脚本逻辑 - 可利用payload内的
ref(标签名)、repository(仓库信息)等字段实现更精细的逻辑控制
内容的提问来源于stack exchange,提问作者Apollo
相关产品推荐
相关产品推荐

