Hudson

如何在不重新啟動的情況下以程式方式修改詹金斯作業配置?

  • December 16, 2015

Jenkins 作業具有儲存該作業配置的 config.xml 文件。

我有一個“作業管理器”作業可以修改其他作業的配置,但如果不重新啟動 Jenkins,我似乎無法讓它確認新配置。

奇怪的是,jenkins-cli.jar 命令行工具似乎沒有此操作的選項。

可以通過Web 界面編輯配置,並在不重新啟動的情況下保存/確認,因此這似乎不是技術上的不可能。

我最好的嘗試是嘗試發佈到與 Web 界面相同的地址

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

…但是儘管使用了有效的憑據,但我還是得到了 403(複製粘貼以確保沒有拼寫錯誤)

任何人有任何想法或知道我缺少的一些簡單的東西嗎?

事實證明,關鍵資訊似乎是 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

我更喜歡捲曲……

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

引用自:https://serverfault.com/questions/309218