Como posso modificar uma configuração de trabalho de jenkins programaticamente sem reiniciar?

10

Os trabalhos Jenkins têm arquivos config.xml que armazenam a configuração desse trabalho.

Tenho um trabalho de "gerenciador de trabalhos" que modifica a configuração de outros trabalhos, mas não consigo reconhecê-los sem reiniciar o Jenkins.

A ferramenta de linha de comando jenkins-cli.jar estranhamente não parece ter uma opção para esta ação.

Ele é possível editar a configuração através da interface web, e tem que salvar / reconhecida sem um reinício, por isso não parece que seria uma impossibilidade técnica.

Minha melhor tentativa foi tentar postar no mesmo endereço que a interface da web

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

... mas recebo um 403, apesar de usar credenciais válidas (cópia colada para garantir que não haja erros de digitação)

Alguém tem alguma idéia ou sabe algo simples que estou sentindo falta?

Catskul
fonte
caralho. QUE REALMENTE FUNCIONA !!! (com a autenticação fixa como Catskul sugere abaixo, ou no meu caso sem auth) Eu estive procurando por essa técnica por horas agora ...
Dave Dopson

Respostas:

8

Acontece que as informações cruciais parecem ser a opção "--auth-no-challenge" do wget, que aparentemente é para configurações obscuras de servidores da web, como Jenkins, que não seguem o protocolo esperado:

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

Eu prefiro enrolar ....

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