MCPcopy Create free account
hub / github.com/commonhaus/foundation / runOrgSettingsReport

Method runOrgSettingsReport

templates/panda/PolicyPanda.java:440–472  ·  view source on GitHub ↗
(GHOrganization org)

Source from the content-addressed store, hash-verified

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++) {

Callers 1

runMethod · 0.95

Calls 4

fetchBooleanValueMethod · 0.95
filterFieldsMethod · 0.95
rawRequestMethod · 0.80
writeToYamlFileMethod · 0.80

Tested by

no test coverage detected