diff --git a/src/main/java/es/juaalta/sonar/prometheus/PrometheusWebService.java b/src/main/java/es/juaalta/sonar/prometheus/PrometheusWebService.java index 169eee4..52836ea 100644 --- a/src/main/java/es/juaalta/sonar/prometheus/PrometheusWebService.java +++ b/src/main/java/es/juaalta/sonar/prometheus/PrometheusWebService.java @@ -307,8 +307,20 @@ private Measures.ComponentWsResponse getMeasures(WsClient wsClient, Components.C private List getProjects(WsClient wsClient) { - return wsClient.components() - .search(new SearchRequest().setQualifiers(Collections.singletonList(Qualifiers.PROJECT)).setPs("500")) - .getComponentsList(); + List projects = new ArrayList<>(); + int pageIndex = 1; + boolean hasMore = true; + + while (hasMore) { + SearchResponse searchResponse = wsClient.components().search(new SearchRequest() + .setQualifiers(Collections.singletonList(Qualifiers.PROJECT)) + .setPs(500) + .setP(pageIndex)); + projects.addAll(searchResponse.getComponentsList()); + hasMore = searchResponse.getPaging().getPageIndex() * searchResponse.getPaging().getPageSize() < searchResponse.getPaging().getTotal(); + pageIndex++; + } + + return projects; } }