(GHOrganization org)
| 438 | } |
| 439 | |
| 440 | private void runOrgSettingsReport(GHOrganization org) throws IOException { |
| 441 | log.info("🌳 Creating a listing of organization and repository settings"); |
| 442 | |
| 443 | ObjectNode orgSettings = (ObjectNode) rawRequest("/orgs/" + organization); |
| 444 | if (orgSettings == null) { |
| 445 | log.severe("Error fetching organization settings"); |
| 446 | return; |
| 447 | } |
| 448 | |
| 449 | ArrayNode repositories = (ArrayNode) rawRequest("/orgs/" + organization + "/repos"); |
| 450 | if (repositories == null) { |
| 451 | log.warning("Error fetching repository settings for organization"); |
| 452 | return; |
| 453 | } |
| 454 | repositories.forEach(repoNode -> { |
| 455 | fetchBooleanValue("automated-security-fixes", repoNode); |
| 456 | fetchBooleanValue("private_vulnerability_reporting", repoNode); |
| 457 | fetchBooleanValue("vulnerability-alerts", repoNode); |
| 458 | }); |
| 459 | orgSettings.set("repositories", filterFields(repositories)); |
| 460 | |
| 461 | ObjectNode rootNode = yamlMapper.createObjectNode() |
| 462 | .put("id", projectId) |
| 463 | .set("source_control", yamlMapper.createObjectNode() |
| 464 | .set("settings", yamlMapper.createArrayNode() |
| 465 | .add(filterFields(orgSettings)))); |
| 466 | |
| 467 | // Write asset data to YAML file |
| 468 | String settingsFile = outputDir + "/scm-settings-" + organization + ".yaml"; |
| 469 | writeToYamlFile(rootNode, settingsFile); |
| 470 | |
| 471 | log.info("✔️ Organization information written to " + settingsFile); |
| 472 | } |
| 473 | |
| 474 | public ArrayNode filterFields(ArrayNode nodes) { |
| 475 | for (int i = 0; i < nodes.size(); i++) { |
no test coverage detected