我正在尝试使用詹金斯Rest API。在说明中说我需要api密钥。我在所有的配置页面中查找了它。我如何获取詹金斯的API密钥?
Answers:
自Jenkins 2.129起,API令牌配置已更改:
您现在可以拥有多个令牌并为其命名。它们可以单独撤销。
在Jenkins 2.129之前:显示API令牌,如下所示:
API令牌已显示。
您可以通过单击“更改API令牌”按钮来更改令牌。
Show API Token
似乎不再有效。
进行Jenkins 2.129发布的非UI方法是:
curl 'https://<jenkinsURL>/me/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken' \
--data 'newTokenName=foo' \
--user username:Password
返回:
{
"status": "ok",
"data": {
"tokenName": "foo",
"tokenUuid": "<uuid>",
"tokenValue": "<redacted>"
}
}
前詹金斯2.129
curl http://<username>:<password>@<jenkins-url>/me/configure
在Jenkins 2.225中测试
经过几个小时的研究,我可以找到答案:
使用Api令牌代替CSFR令牌。但是,如果要从任何其他客户端(POSTMAN,CLI。curl等)进行身份验证,会发生什么情况。
首先,您需要获取CSFR令牌,并将信息保存在Cookie中, --cookie-jar
curl -s --cookie-jar / tmp / cookies -u用户名:密码http:// localhost:8080 / crumbIssuer / api / json
{“ _class”:“ hudson.security.csrf.DefaultCrumbIssuer”,“ crumb”:“ bc92944100d12780cfc251c9255f3f323a475562b4ee0d8b9cc6e4121f50a450”,“ crumbRequestField”:“ Jenkins-Crumb”}
然后我们可以读取cookie--cookie
并生成新令牌:
curl -X POST -H'Jenkins-Crumb:your_crumb_token_genic_above'--cookie / tmp / cookies http:// localhost:8080 / me / descriptorByName / jenkins.security.ApiTokenProperty / generateNewToken?newTokenName = \ your_token_name -u用户名:密码
{“ status”:“ ok”,“ data”:{“ tokenName”:“我的Android令牌”,“ tokenUuid”:“ c510e26c-b2e8-4021-bf79-81d1e4c112af”,“ tokenValue”:“ 11a2a0c91913d1391d8e8cb155ca714581”}}