private File toFile(Issues.Component component, String branch) { ShowRequest showRequest = new ShowRequest().setComponent(component.getKey()); if (isNotBlankAndNotEmpty(branch)) { showRequest.setBranch(branch); } Components.ShowWsResponse showWsResponse = wsClient.components().show(showRequest); StringBuilder sb = new StringBuilder(component.getPath()); for (Components.Component a : showWsResponse.getAncestorsList()) { if (Qualifiers.MODULE.equals(a.getQualifier()) && a.getPath() != null) { sb.insert(0, a.getPath() + File.separator); } } return new File(sb.toString()); }
public List<Component> getAllModules(WsClient sonarClient, String projectResourceId) { TreeWsRequest query = new TreeWsRequest() .setQualifiers(singletonList(SonarQualifier.MODULE.getQualifier())) .setBaseComponentId(projectResourceId); return sonarClient.components().tree(query).getComponentsList(); }
public List<Component> getAllProjects(WsClient sonarClient) { org.sonarqube.ws.client.component.SearchWsRequest query = new org.sonarqube.ws.client.component.SearchWsRequest() .setQualifiers(singletonList(SonarQualifier.PROJECT.getQualifier())) .setPageSize(500); //-1 is not allowed, neither int max. The limit is 500. List<WsComponents.Component> components = new ArrayList<>(); WsComponents.SearchWsResponse response = sonarClient.components().search(query); Common.Paging paging = response.getPaging(); int total = paging.getTotal(); int pageSize = paging.getPageSize(); int pages = total / pageSize + (total % pageSize > 0 ? 1 : 0); if (total > 0) { components.addAll(response.getComponentsList()); for (int pageIndex = 2; pageIndex <= pages; pageIndex++) { query.setPage(pageIndex); response = sonarClient.components().search(query); components.addAll(response.getComponentsList()); } } return Collections.unmodifiableList(components); }