我有一个在 Klocwork 中运行的项目,构建完成后将生成 Klocwork 结果。每次我需要去 Klocwork 门户获取结果并查找新问题或总问题时。相反,我需要一个 API 或脚本来在构建成功时自动从 Klocwork 结果中获取问题总数。
有什么办法可以做到这一点?一种方法是查看门户页面源为 html 并获得我需要的结果。但是,我认为可能有更好的解决方案。
有人可以帮助我实现这一目标吗?
提前致谢。
我有一个在 Klocwork 中运行的项目,构建完成后将生成 Klocwork 结果。每次我需要去 Klocwork 门户获取结果并查找新问题或总问题时。相反,我需要一个 API 或脚本来在构建成功时自动从 Klocwork 结果中获取问题总数。
有什么办法可以做到这一点?一种方法是查看门户页面源为 html 并获得我需要的结果。但是,我认为可能有更好的解决方案。
有人可以帮助我实现这一目标吗?
提前致谢。
我在这里回答了一个类似的问题。以下是最新版本 Klocwork 11 的文档链接的更新答案。
Klocwork 有一个WebAPI,您可以使用它从您最喜欢的脚本语言或例如使用curl
. 您的 Klocwork 服务器上还提供了 API 文档,地址为 http:// klocwork_server_host:端口/review/api,例如http://localhost:8080/review/api。
查询:
curl --data "action=search&user=my_account&project=my_project&query=build:build_1 status:Analyze state:New,Existing<oken=xxxx" http://localhost:8080/review/api
将返回在名为build_1的项目my_project的构建中发现的所有打开(状态New和Existing)、未引用(状态分析)问题的列表。
有关可在查询字符串中与搜索操作一起使用的关键字列表,请参阅在 Klocwork Review 中搜索。
如果您只想要缺陷数量的摘要而不是获取整个列表,则可以使用报告操作:
curl --data "action=report&user=my_account&project=my_project&build:build_1&x=Category&y=Component&filterQuery=status:Analyze state:New,Existing<oken=xxxx" http://localhost:8080/review/api
它按检查器类别(分类)和组件返回缺陷数量的摘要。示例输出如下:
{"rows":[{"id":1,"name":"C and C++"},{"id":3,"name":"MISRA C"},{"id":4,"name":"MISRA C++"}],"columns":[{"id":5,"name":"System Model"}],"data":[[122],[354],[890]],"warnings":[]}
您可以修改 x 和 y 轴参数以生成不同的问题细分,例如通过 Severity 和 State 代替:
curl --data "action=report&user=my_account&project=my_project&build:build_3&x=Severity&y=State&filterQuery=state:New,Existing,Fixed<oken=xxxx" http://localhost:8080/review/api
输出:
{"rows":[{"id":1,"name":"Critical"},{"id":2,"name":"Error"},{"id":3,"name":"Warning"},{"id":4,"name":"Review"}],"columns":[{"id":-1,"name":"Existing"},{"id":-1,"name":"Fixed"},{"id":-1,"name":"New"}],"data":[[10,5,2],[20,6,1],[45,11,3],[1112,78,23]],"warnings":[]}
WebAPI 食谱文档有一个使用 python 和报告操作以及处理和格式化响应的示例。