如何通过SonarQube Web API获取spoon-core项目的完整BUG列表?
解决SonarQube API获取全部BUG的问题
你遇到的这个问题其实是SonarQube Web API的默认分页机制导致的——它默认每页只返回100条结果,所以你只拿到了第一页的BUG,没获取到全部189个。下面给你两种实用的解决办法:
方法一:通过分页参数遍历所有页面
SonarQube API支持p(指定页码)和ps(指定每页条数)两个分页参数,你可以按照以下步骤操作:
- 先发送一次请求获取总BUG数量:
从返回的JSON响应里找到GET https://sonarqube.ow2.org/api/issues/search?componentKeys=fr.inria.gforge.spoon:spoon-core&types=BUG&ps=1total字段,它会告诉你总共有多少个BUG(这里是189)。 - 根据总数量和每页条数(默认最大100)计算需要请求的页数,然后依次请求每一页:
- 第一页请求:
GET https://sonarqube.ow2.org/api/issues/search?componentKeys=fr.inria.gforge.spoon:spoon-core&types=BUG&ps=100&p=1 - 第二页请求:
GET https://sonarqube.ow2.org/api/issues/search?componentKeys=fr.inria.gforge.spoon:spoon-core&types=BUG&ps=100&p=2
issues数组合并起来,就是全部的BUG数据了。 - 第一页请求:
方法二:直接设置足够大的每页条数参数
如果总BUG数量不多(比如这里的189),你可以直接设置一个大于总数量的ps值,一次性获取所有结果:
GET https://sonarqube.ow2.org/api/issues/search?componentKeys=fr.inria.gforge.spoon:spoon-core&types=BUG&ps=200
注意:SonarQube通常对ps参数有最大限制(默认是1000),只要你的总BUG数量不超过这个限制,这种方法就可以直接生效。
如果不确定参数限制,你可以查看响应里的paging字段,里面会详细显示总数量、当前页码、每页条数和总页数等信息,帮你调整请求参数。
内容的提问来源于stack exchange,提问作者Ashutosh Kumar Verma
相关产品推荐
相关产品推荐

