通过将以下行放入Git存储库的hooks/post-receive
脚本中,我触发了多分支管道项目的Jenkins构建:
curl --fail 'http://localhost:8080/git/notifyCommit?url=/home/john/git-repos/my-code.git'
如Git plugin's documentation中所述,它通知Jenkins存储库已更改,现在该进行构建了。但是,我现在希望通过向URL添加参数来将环境变量注入到构建中。例如,像这样:
curl --fail 'http://localhost:8080/git/notifyCommit?url=/home/john/git-repos/my-code.git?param1=val1¶m2=val2'
不幸的是,参数在构建中没有作为环境变量出现。为构建提供参数的正确方法是什么?
答案 0 :(得分:1)
这似乎是在2015年用JENKINS-27902
请求并修复的。
但是...
此功能已在git插件2.4.0中添加,然后在 git插件2.5.0中被删除,因为它引入了SECURITY-275 中记录的安全漏洞。
提交f0b2d0d允许
git/notifyCommit?url=<repo>
通过其他 参数作为名称值对。然后将这些参数放入 工作的环境。这允许未经身份验证的用户使用环境调用作业 它们包含在notifyCommit URL中的变量名称和值。
他们可以修改
PATH
或LD_LIBRARY_PATH
或其他重要环境 未经身份验证的作业的变量,无论该作业是否 需要任何参数。
JENKINS-51999表明,不传递参数是常态。
我建议寻求一种更好的方法来传递这些参数(经过身份验证的webhook,...)