You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 02:20:44