Jenkins REST API Crear trabajo

Estoy creando un nuevo trabajo en Jenkins usando la API REST. Probé las líneas de comando debajo del curl, pero están arrojando un error

curl -i -X POST --user "admin:" --data-binary "@C:\mylocalconfig.xml" -H "Content-Type: text/xml" http://localhost:8080/createItem?name=NewJob curl -X POST -u : -H "Content-Type:application/xml" -d "@C:\mylocalconfig.xml" "http://localhost:8080/createItem?name=AA_TEST_JOB3" 

Error:


 HTTP/1.1 403 No valid crumb was included in the request Date: Fri, 01 Jul 2016 05:25:59 GMT X-Content-Type-Options: nosniff Content-Type: text/html; charset=ISO-8859-1 Cache-Control: must-revalidate,no-cache,no-store Content-Length: 360 Server: Jetty(9.2.z-SNAPSHOT)    Error 403 No valid crumb was included in the request  

HTTP ERROR 403

Problem accessing /createItem. Reason:

 No valid crumb was included in the request


Power ed by Jetty://



Jenkins tiene habilitada la protección CSRF por defecto, lo que previene los ataques con un clic . Para invocar la solicitud, debe obtener la migaja de /crumbIssuer/api/xml utilizando sus credenciales e incluirla en su solicitud.

Por ejemplo:

 CRUMB=$(curl -s 'http://USER:TOKEN@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') 

Luego puedes crear un trabajo (incluyendo la miga en tu encabezado):

 curl -X POST -H "$CRUMB" "http://USER:TOKEN@localhost:8080/createItem?name=NewJob" 

Si lo anterior no funciona, revisa tu migaja ( echo $CRUMB ) o ejecuta curl con -u USER:TOKEN .

Para obtener una explicación más detallada, consulte: Ejecución de trabajos de jenkins a través de la línea de comandos .