Jenkins pipeline 中使用token访问JIRA API 400 bad request 错误

160 阅读1分钟

brett-jordan-XWar9MbNGUY-unsplash.jpg

通过jenkins 管道 pipeline来到JIRA API中创建发布版本信息

开始的pipeline 中使用的代码块:

AUTH_TOKEN=$(echo -n 'username:password' | base64) 

curl -X POST \ -H 'Content-Type: application/json' \ -H "Authorization: Basic $AUTH_TOKEN" \ --data '<your-request-body>' \ '<your-request-url>'

运行时通过已有的用户名和密码来生成token,运行结果一直是bad request 400.

通过postman比对,还有json信息的验证,一切都很正确的样子。

在curl命令行中加入了 -v 参数来进行debug分析,结果还是一样,有错误就是不告诉你在哪里。

一般来说400错误往往是json body数据格式不对, 这里使用了python工具对数据进行了验证分析

echo '{"name": "Test-123.33.33", "archived": false, "released": false, "releaseDate": "2023-04-11", "project": "Test"}' | python -m json.tool

返回结果完全🈚️任何问题,也就是json body 完全正确。

继续通过查看详细的curl执行日志,发现新生成的token中居然有换行符,这个是不应该有的,因为echo命令中使用了-n选项来删除所有换行符。

抱着试一试的心态,再一次杀一次换行符:

echo -n "username:password" | base64 | tr -d '\n'

再一次运行bash,结果201 就这么解决了。

搞bash编程真的不容易啊。。。。。