Jenkins REST API创建工作 [英] Jenkins REST API Create job
问题描述
我正在使用REST API在Jenkins中创建新工作.我尝试了下面的curl命令行,但是它们抛出了错误
I'm creating a new job in Jenkins using the REST API. I tried the below curl command lines, but they are throwing an error
curl -i -X POST --user "admin:<API token>" --data-binary "@C:\mylocalconfig.xml" -H "Content-Type: text/xml" http://localhost:8080/createItem?name=NewJob
curl -X POST -u <username>:<pass> -H "Content-Type:application/xml" -d "@C:\mylocalconfig.xml" "http://localhost:8080/createItem?name=AA_TEST_JOB3"
错误:
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)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Error 403 No valid crumb was included in the request</title>
</head>
<body><h2>HTTP ERROR 403</h2>
<p>Problem accessing /createItem. Reason:
<pre> No valid crumb was included in the request</pre></p><hr><i><small>Power
ed by Jetty://</small></i><hr/>
</body>
</html>
推荐答案
Jenkins默认具有一键式攻击一个>.要调用该请求,您需要使用凭据从/crumbIssuer/api/xml
获取面包屑并将其包含在您的请求中.
Jenkins by default has CSRF Protection enabled which prevents one-click attacks. To invoke the request, you need to obtain the crumb from /crumbIssuer/api/xml
using your credentials and include it into your request.
例如:
CRUMB=$(curl -s 'http://USER:TOKEN@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)')
然后,您可以创建工作(通过将碎屑放入标头中):
Then you can create a job (by including the crumb into your header):
curl -X POST -H "$CRUMB" "http://USER:TOKEN@localhost:8080/createItem?name=NewJob"
如果上述方法不起作用,请检查面包屑(echo $CRUMB
)或使用-u USER:TOKEN
运行curl
.
If the above won't work, check your crumb (echo $CRUMB
) or run curl
with -u USER:TOKEN
.
有关详细说明,请参见: 通过命令行运行jenkins作业 .
For a more detailed explanation, see: Running jenkins jobs via command line.
这篇关于Jenkins REST API创建工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!