如何通过Git notifyCommit钩子注入环境变量?

时间:2019-07-27 07:33:31

标签: git jenkins

通过将以下行放入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&param2=val2'

不幸的是,参数在构建中没有作为环境变量出现。为构建提供参数的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

这似乎是在2015年用JENKINS-27902请求并修复的。

但是...

  

此功能已在git插件2.4.0中添加,然后在 git插件2.5.0中被删除,因为它引入了SECURITY-275 中记录的安全漏洞。

     

提交f0b2d0d允许git/notifyCommit?url=<repo>通过其他   参数作为名称值对。然后将这些参数放入   工作的环境。

     

这允许未经身份验证的用户使用环境调用作业   它们包含在notifyCommit URL中的变量名称和值。

     

他们可以修改PATHLD_LIBRARY_PATH或其他重要环境   未经身份验证的作业的变量,无论该作业是否   需要任何参数。

JENKINS-51999表明,传递参数是常态。

  

我建议寻求一种更好的方法来传递这些参数(经过身份验证的webhook,...)