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"