Den*_*nno 9 curl yaml code-coverage bitbucket bitbucket-pipelines
我有一个简单的 Bitbucket Pipelines 配置:
image: node:12.16.3
pipelines:
pull-requests:
'**':
- step:
caches:
- node
script:
- yarn install
- yarn test
Run Code Online (Sandbox Code Playgroud)
该test脚本通过 Jest ( ) 生成代码覆盖率jest --coverage。
我尝试通过在后面添加以下行来将此覆盖率数据发送到报告 API - yarn test(请注意,这是从 Bitbuck 文档复制的示例代码,我尚未将其更新为特定于我的数据,因为我想获取配置有效,然后再尝试弄清楚到底需要对数据做什么)
- curl --request PUT 'https://api.bitbucket.org/2.0/repositories/<username>/<reposity-name>/commit/<commit-hash>/reports/mySystem-001' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Security scan report",
"details": "This pull request introduces 10 new dependency vulnerabilities.",
"report_type": "SECURITY",
"reporter": "mySystem",
"link": "http://www.mySystem.com/reports/001",
"result": "FAILED",
"data": [
{
"title": "Duration (seconds)",
"type": "DURATION",
"value": 14
},
{
"title": "Safe to merge?",
"type": "BOOLEAN",
"value": false
}
]
}'
Run Code Online (Sandbox Code Playgroud)
Bitbucket 不断告诉我我的配置文件无效 - 即使我直接从他们的文档页面复制了此代码。
是否可以将此代码覆盖率数据发送到 Bitbucket Reports API 以获取关联的拉取请求?如果是这样,我该如何制作 Pipelines yaml 条目?
小智 1
Jest 代码覆盖率报告有不同的格式,您需要将它们转换为以下格式:
{
"files": [
{
"path": "backend/src/app.ts",
"coverage": "C:51,52;P:53;U:54,55"
}
]
}
Run Code Online (Sandbox Code Playgroud)
您使用的 API 端点似乎也不正确。它应该是插件文档中提到的 POST 请求:
https://bitbucket.org/atlassian/bitbucket-code-coverage/src/master/code-coverage-plugin/README.md