Ich habe auf SO ähnlich wie diese Beiträge gesehen, aber nicht ganz genau, was ich versuche zu tun (oder zumindest keine vollständigen Beispiele für einen Befehl auszuführen).Trigger-parametrisierte Build mit curl und Krume
Ich versuche, mit curl eine parametrisierte Build auf Jenkins aus der Ferne auslösen. Ich habe 'Verhindern Cross Site Request Forgery' aktiviert, also muss ich auch eine gültige Krume übergeben.
Das Skript I ist unten haben:
#!/bin/bash
json="{\"parameter\": [{ \"P1\": \"param1\", \"P2\": \"param2\", \"P3\": \"param3\" }]}"
crumb=`curl "http://SERVER/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)"`
curl -v -H $crumb -X POST http://SERVER/job/JOB_NAME/buildWithParameters -d token=runme --data-urlencode json="$json"
Ich habe auch versucht, die URL zu modifizieren ich entweder zu kräuseln bin vorbei:
USERNAME:[email protected]
und
USERNAME:[email protected]
Die Ausgabe von curl ist:
* About to connect() to SERVER port 8080 (#0)
* Trying SERVER... connected
* Connected to SERVER (SERVER) port 8080 (#0)
* Server auth using Basic with user 'USERNAME'
> POST /job/JOB_NAME/buildWithParameters HTTP/1.1
> Authorization: Basic bjAwNjY5MjI6YWxLaW5kaTg=
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
> Host: SERVER:8080
> Accept: */*
> .crumb:776eb589e8b930d9f06cfc2df885314c
> Content-Length: 168
> Content-Type: application/x-www-form-urlencoded
>
< HTTP/1.1 403 No valid crumb was included in the request
< Content-Type: text/html;charset=ISO-8859-1
< Cache-Control: must-revalidate,no-cache,no-store
< Content-Length: 1469
< Server: Jetty(8.y.z-SNAPSHOT)
<
So sieht es aus, wie ich bin nicht den Krümel richtig vorbei, aber ich bin mir nicht sicher, was das richtige Format des Befehls sein sollte.
Mögliches Duplikat von [Jenkins REST-API-Job erstellen] (https://StackOverflow.com/questions/38137760/jenkins-rest-api-create-job) – kenorb