Jenkins Input-Pipeline-Schritt per POST mit CSRF gefüllt - Howto?
Ich habe eine Jenkins-Pipeline mit einem Eingabeschritt und möchte diese Eingabe (Argument mit einer Zeichenfolge) über ein Skript senden. Bisher versuche ich es mit Locken. Idealerweise sende ich es über die Python-Anforderungsbibliothek. Dies sollte eine einfache POST-Anfrage sein, mit CSRF wird es jedoch schwierig. Ich habe Jenkins-Crumb erhalten (in diesem Fall mit curl von demselben Computer und derselben Bash-Sitzung), kann den Inhalt aber immer noch nicht senden ...
Ich sendeJenkins-Crumb:XXX
header, so wie es bei @ erklärt wihttps: //wiki.jenkins-ci.org/display/JENKINS/Remote+access+AP
meine Anfrage sieht so aus:
curl -vvv -X POST --user '${USER}:${API_KEY}' -H "Jenkins-Crumb:${JENKINS_CRUMB}" -d 'json="{"parameter":{"name":"${PARAM_NAME}","value":"asd"},"Jenkins-Crumb":"${JENKINS_CRUMB}"}"' 'http://${JENKINS_URL}/job/${JOB_NAME}/${BUILD_NR}/input/'
Die URL, unter der ich POSTe, ist dieselbe wie die im Build-Protokoll (Konsolenausgabe) verknüpfte.