如何在不重新启动的情况下以编程方式修改詹金斯作业配置?

如何在不重新启动的情况下以编程方式修改詹金斯作业配置?

Jenkins 作业有 config.xml 文件,用于存储该作业的配置。

我有一个“作业管理器”作业,可以修改其他作业的配置,但如果不重新启动詹金斯,我似乎无法让它确认新的配置。

奇怪的是,jenkins-cli.jar 命令行工具似乎没有此操作的选项。

可以通过 Web 界面编辑配置,并且无需重新启动即可保存/确认,因此这似乎并不是技术上的不可能。

我最好的尝试是尝试发布到与网页界面相同的地址

wget --post-file=config.xml --user=joe.shmoe --password=secret01 \
     --no-check-certificate                                      \
     https://jenkins.company.com/job/myProject/config.xml

...但尽管使用了有效的凭证(复制粘贴以确保没有拼写错误),我还是得到了 403

有人有任何想法或知道我所忽略的一些简单的事情吗?

答案1

事实证明,关键信息似乎是 wget 的“--auth-no-challenge”选项,该选项显然适用于不遵循预期协议的模糊网络服务器配置,例如 Jenkins:

wget --auth-no-challenge --user=joe.shmoe --password=secret  \
     --post-file=config.xml --no-check-certificate           \
     https://jenkins.company.com/job/myProject/config.xml

答案2

我更喜欢卷曲....

curl "http://localhost:18080/jenkins/job/npm-package-aaa/config.xml" -si --data-binary "$XML" -H "Content-Type: text/xml" 

相关内容