gitgalaxy 2.3.43__tar.gz → 2.4.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gitgalaxy-2.4.5/.github/workflows/dead-key-audit.yml +29 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/workflows/deploy-docs.yml +1 -1
- gitgalaxy-2.4.5/.github/workflows/gitgalaxy.yml +124 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/workflows/muninn.yml +1 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/workflows/smoke-test.yml +1 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.gitignore +3 -0
- gitgalaxy-2.4.5/PKG-INFO +265 -0
- gitgalaxy-2.4.5/README.md +241 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/action.yml +2 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/README.md +17 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/cobol_refractor_controller.py +10 -5
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/aperture.py +138 -93
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/detector.py +117 -145
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/guidestar_lens.py +16 -9
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/network_risk_sensor.py +102 -44
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/prism.py +52 -19
- gitgalaxy-2.4.5/gitgalaxy/core/spatial_correlation.py +287 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/state_rehydrator.py +4 -4
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/galaxyscope.py +353 -85
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/metrics/chronometer.py +23 -7
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/metrics/signal_processor.py +43 -69
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/metrics/statistical_auditor.py +1 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/metrics/tensor_scanner.py +2 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/audit_recorder.py +8 -5
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/gpu_recorder.py +17 -5
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/llm_recorder.py +28 -25
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/record_keeper.py +34 -8
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/sarif_recorder.py +7 -3
- gitgalaxy-2.4.5/gitgalaxy/recorders/sbom_recorder.py +359 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/requirements.txt +1 -1
- gitgalaxy-2.4.5/gitgalaxy/security/dependency_audit_cache.py +138 -0
- gitgalaxy-2.4.5/gitgalaxy/security/manifest_parser.py +390 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/security/security_auditor.py +8 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/security/security_lens.py +13 -78
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/analysis_lens.py +11 -7
- gitgalaxy-2.4.5/gitgalaxy/standards/config_resolver.py +315 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/gitgalaxy_config.py +25 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/language_lens.py +15 -9
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/language_standards.py +56 -12
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/ai_guardrails/ai_appsec_sensor.py +35 -12
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/ai_guardrails/dev_agent_firewall.py +35 -13
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_dag_architect.py +2 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_jcl_auditor.py +2 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_jcl_forge.py +2 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_microservice_slicer.py +2 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_schema_forge.py +2 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_agent_forge.py +3 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/network_auditing/full_api_network_map.py +2 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/supply_chain_security/binary_anomaly_detector.py +51 -30
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/supply_chain_security/supply_chain_firewall.py +97 -59
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/supply_chain_security/vault_sentinel.py +22 -19
- gitgalaxy-2.4.5/gitgalaxy.egg-info/PKG-INFO +265 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy.egg-info/SOURCES.txt +12 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy.egg-info/scm_file_list.json +528 -517
- gitgalaxy-2.4.5/gitgalaxy.egg-info/scm_version.json +8 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/github-action-readme.md +26 -56
- gitgalaxy-2.4.5/json +102785 -0
- gitgalaxy-2.4.5/templates/azure/azure-pipelines.yml +101 -0
- gitgalaxy-2.4.5/templates/bitbucket/bitbucket-pipelines.yml +61 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/templates/bitbucket/bitbucket_insights.py +3 -2
- gitgalaxy-2.4.5/templates/github/gitgalaxy-pipeline.yml +69 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/templates/gitlab/scan.yml +18 -9
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_refractor_controller.py +22 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_aperture.py +97 -4
- gitgalaxy-2.4.5/tests/core_engine/test_config_resolver.py +294 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_detector.py +265 -21
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_galaxyscope.py +686 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_guidestar_lens.py +54 -13
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_language_lens.py +95 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_manifest_parser.py +92 -1
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_prism.py +112 -15
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_signal_processor.py +125 -26
- gitgalaxy-2.4.5/tests/core_engine/test_spatial_correlation.py +258 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_state_rehydrator.py +1 -1
- gitgalaxy-2.4.5/tests/dead_key_audit.py +375 -0
- gitgalaxy-2.4.5/tests/dead_key_audit_baseline.json +1 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/golden_master_audit.json +2 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/golden_master_zero_dep_audit.json +2 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_ai_appsec_sensor.py +58 -17
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_binary_anomaly_detector.py +92 -39
- gitgalaxy-2.4.5/tests/security_auditing/test_dependency_audit_cache.py +305 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_dev_agent_firewall.py +124 -11
- gitgalaxy-2.4.5/tests/security_auditing/test_network_risk_sensor.py +376 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_security_auditor.py +44 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_security_lens.py +9 -86
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_supply_chain_firewall.py +285 -83
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_vault_sentinel.py +90 -28
- gitgalaxy-2.4.5/tests/test_dead_key_audit.py +167 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_audit_recorder.py +11 -2
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_llm_recorder.py +25 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_record_keeper.py +17 -2
- gitgalaxy-2.4.5/tests/tools_recorders/test_sarif_recorder.py +43 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_sbom_generator.py +56 -1
- gitgalaxy-2.3.43/.github/workflows/gitgalaxy-artifacts.yml +0 -72
- gitgalaxy-2.3.43/.github/workflows/gitgalaxy-audit.yml +0 -50
- gitgalaxy-2.3.43/.github/workflows/gitgalaxy.yml +0 -53
- gitgalaxy-2.3.43/PKG-INFO +0 -225
- gitgalaxy-2.3.43/README.md +0 -201
- gitgalaxy-2.3.43/gitgalaxy/recorders/sbom_recorder.py +0 -342
- gitgalaxy-2.3.43/gitgalaxy/security/manifest_parser.py +0 -176
- gitgalaxy-2.3.43/gitgalaxy.egg-info/PKG-INFO +0 -225
- gitgalaxy-2.3.43/gitgalaxy.egg-info/scm_version.json +0 -8
- gitgalaxy-2.3.43/templates/azure/azure-pipelines.yml +0 -60
- gitgalaxy-2.3.43/templates/bitbucket/bitbucket-pipelines.yml +0 -48
- gitgalaxy-2.3.43/templates/github/gitgalaxy-pipeline.yml +0 -37
- gitgalaxy-2.3.43/tests/security_auditing/test_network_risk_sensor.py +0 -188
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.flake8 +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.galaxyscope.yaml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/CODEOWNERS +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/ISSUE_TEMPLATE/parsing_discrepancy.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/dependabot.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/pull_request_template.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/workflows/codeql.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/workflows/golden-crucible.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.github/workflows/publish.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/.gitlab-ci.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/CONTRIBUTING.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/LICENSE +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/MANIFEST.in +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/SECURITY.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/azure-pipelines.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/bitbucket-pipelines.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/cobol_to_java_controller.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/core/spatial_mapper.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/licensing.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/metrics/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/metrics/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/recorders/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/security/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/security/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/standards/how_to_add_a_language.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/__init__.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/ai_guardrails/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_agent_task_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_compiler_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_etl_unpacker.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_graveyard_finder.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_lexical_patcher.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_cobol/cobol_system_limits_reporter.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/batch_test_harness.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_api_contract_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_build_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_decoder_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_service_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_spring_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/cobol_to_java/cobol_to_java_test_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/network_auditing/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/supply_chain_security/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/terabyte_log_scanning/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/terabyte_log_scanning/pii_leak_hunter.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy/tools/terabyte_log_scanning/terabyte_log_scanner.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy.egg-info/dependency_links.txt +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy.egg-info/entry_points.txt +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy.egg-info/requires.txt +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/gitgalaxy.egg-info/top_level.txt +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/mkdocs.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/muninn.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/pyproject.toml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/setup.cfg +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/templates/scan.yml +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/README.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/readme.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_agent_task_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_compiler_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_dag_architect.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_etl_unpacker.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_graveyard_finder.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_jcl_auditor.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_jcl_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_lexical_patcher.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_microservice_slicer.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_schema_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/cobol_mainframe/test_cobol_system_limits_reporter.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/readme.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_chronometer.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_chronometer_timeout.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_delta_scanner.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_language_standards_strict.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_licensing.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/core_engine/test_zero_dependency.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/extraction/readme.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/extraction/test_args_extraction_strict.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/extraction/test_class_extraction_strict.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/extraction/test_dependency_extraction_strict.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/extraction/test_function_extraction_strict.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/golden_diff.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/readme.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_api_network_map.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_pii_leak_hunter.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_redos_poison.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_statistical_auditor.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_tensor_auditor.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/security_auditing/test_terabyte_log_scanner.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/readme.md +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_agent_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_batch_test_harness.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_decoder_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_golden_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_gpu_recorder.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/tests/tools_recorders/test_service_forge.py +0 -0
- {gitgalaxy-2.3.43 → gitgalaxy-2.4.5}/zizmor.yml +0 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Dead Key Audit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
dead-key-audit:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
|
|
15
|
+
steps:
|
|
16
|
+
- name: Check out repository code
|
|
17
|
+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
18
|
+
with:
|
|
19
|
+
persist-credentials: false
|
|
20
|
+
|
|
21
|
+
- name: Set up Python
|
|
22
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.12"
|
|
25
|
+
|
|
26
|
+
# No pip install: dead_key_audit.py is stdlib-only (ast/json/argparse)
|
|
27
|
+
# by design, so this check stays fast and dependency-free.
|
|
28
|
+
- name: Run baseline-gated regression check (#325)
|
|
29
|
+
run: python tests/dead_key_audit.py --ci
|
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
28
28
|
|
|
29
29
|
- name: Set up Python
|
|
30
|
-
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 #
|
|
30
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 #
|
|
31
31
|
with:
|
|
32
32
|
python-version: "3.x"
|
|
33
33
|
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
name: GitGalaxy Zero-Trust Pipeline
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
branches: [main]
|
|
6
|
+
push:
|
|
7
|
+
branches: [main]
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
# ============================================================
|
|
14
|
+
# PRE-GATE — runs on every PR, blocks the merge on failure.
|
|
15
|
+
# Fast; no heavy ML/graph dependencies installed.
|
|
16
|
+
# ============================================================
|
|
17
|
+
vault-sentinel:
|
|
18
|
+
if: github.event_name == 'pull_request'
|
|
19
|
+
name: Vault Sentinel
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
23
|
+
with:
|
|
24
|
+
persist-credentials: false
|
|
25
|
+
- uses: ./
|
|
26
|
+
with:
|
|
27
|
+
tool: vault-sentinel
|
|
28
|
+
target: .
|
|
29
|
+
version: local
|
|
30
|
+
|
|
31
|
+
xray-inspector:
|
|
32
|
+
if: github.event_name == 'pull_request'
|
|
33
|
+
name: X-Ray Inspector
|
|
34
|
+
runs-on: ubuntu-latest
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
37
|
+
with:
|
|
38
|
+
persist-credentials: false
|
|
39
|
+
- uses: ./
|
|
40
|
+
with:
|
|
41
|
+
tool: xray-inspector
|
|
42
|
+
target: .
|
|
43
|
+
version: local
|
|
44
|
+
|
|
45
|
+
supply-chain-firewall:
|
|
46
|
+
if: github.event_name == 'pull_request'
|
|
47
|
+
name: Supply Chain Firewall
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
51
|
+
with:
|
|
52
|
+
persist-credentials: false
|
|
53
|
+
- uses: ./
|
|
54
|
+
with:
|
|
55
|
+
tool: supply-chain-firewall
|
|
56
|
+
target: .
|
|
57
|
+
version: local
|
|
58
|
+
|
|
59
|
+
# ============================================================
|
|
60
|
+
# POST-GATE — runs only once code is on main (merge or direct
|
|
61
|
+
# push). One galaxyscope pass produces all 6 outputs; we route
|
|
62
|
+
# 3 of them and let the rest live only in the ephemeral runner.
|
|
63
|
+
# --fail-on-malware stays on here too, as a safety net in case
|
|
64
|
+
# branch protection is ever bypassed.
|
|
65
|
+
# ============================================================
|
|
66
|
+
full-report:
|
|
67
|
+
if: github.event_name == 'push'
|
|
68
|
+
name: Full Report (SARIF, SBOM, LLM Brief)
|
|
69
|
+
runs-on: ubuntu-latest
|
|
70
|
+
permissions:
|
|
71
|
+
contents: write
|
|
72
|
+
pull-requests: write # NEW — required for create-pull-request to open the PR
|
|
73
|
+
security-events: write
|
|
74
|
+
steps:
|
|
75
|
+
- name: Checkout Repository # unchanged
|
|
76
|
+
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
77
|
+
with:
|
|
78
|
+
fetch-depth: 0
|
|
79
|
+
persist-credentials: true
|
|
80
|
+
|
|
81
|
+
- name: Setup Python # unchanged
|
|
82
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
83
|
+
with:
|
|
84
|
+
python-version: "3.12"
|
|
85
|
+
cache: "pip"
|
|
86
|
+
|
|
87
|
+
- name: Install GitGalaxy & Full Precision Engines # unchanged
|
|
88
|
+
run: |
|
|
89
|
+
python -m pip install --upgrade pip
|
|
90
|
+
pip install gitgalaxy networkx tiktoken xgboost pandas numpy
|
|
91
|
+
|
|
92
|
+
- name: Run GalaxyScope (single pass — all 6 outputs) # unchanged
|
|
93
|
+
env:
|
|
94
|
+
GITGALAXY_LICENSE_KEY: "COMMUNITY_FREE_TIER"
|
|
95
|
+
run: |
|
|
96
|
+
galaxyscope . --config .galaxyscope.yaml --fail-on-malware --output gitgalaxy-results.json
|
|
97
|
+
|
|
98
|
+
- name: Upload SARIF to GitHub Security Tab # unchanged
|
|
99
|
+
uses: github/codeql-action/upload-sarif@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4
|
|
100
|
+
with:
|
|
101
|
+
sarif_file: gitgalaxy-results_sarif.json
|
|
102
|
+
|
|
103
|
+
- name: Upload SBOM as Build Artifact # unchanged
|
|
104
|
+
uses: actions/upload-artifact@v7
|
|
105
|
+
with:
|
|
106
|
+
name: gitgalaxy-sbom
|
|
107
|
+
path: gitgalaxy-results_sbom.json
|
|
108
|
+
|
|
109
|
+
# --- everything below here REPLACES the old "Commit LLM Brief to Docs" step ---
|
|
110
|
+
- name: Prepare LLM Brief
|
|
111
|
+
run: |
|
|
112
|
+
mkdir -p docs
|
|
113
|
+
mv *_galaxy_llm.md docs/gitgalaxy_architecture_brief.md
|
|
114
|
+
|
|
115
|
+
- name: Open PR with Updated LLM Brief
|
|
116
|
+
uses: squid-protocol/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 # forked from peter-evans/create-pull-request v8.0.0
|
|
117
|
+
with:
|
|
118
|
+
token: ${{ secrets.AUTOMATION_PAT }}
|
|
119
|
+
commit-message: "docs: auto-update LLM architectural brief"
|
|
120
|
+
title: "docs: auto-update LLM architectural brief"
|
|
121
|
+
body: "Automated update from the latest GalaxyScope scan on `main`."
|
|
122
|
+
branch: auto/llm-architecture-brief
|
|
123
|
+
delete-branch: true
|
|
124
|
+
add-paths: docs/gitgalaxy_architecture_brief.md
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
|
|
24
24
|
- name: Run Muninn
|
|
25
25
|
# zizmor: ignore[github_action_from_unverified_creator_used]
|
|
26
|
-
uses: skaldlab/muninn@
|
|
26
|
+
uses: skaldlab/muninn@daf98872b5748d015ed5bd828296175f6bc0115d # v0.3.6
|
|
27
27
|
with:
|
|
28
28
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
29
29
|
fail-on: info
|
|
@@ -26,7 +26,7 @@ jobs:
|
|
|
26
26
|
persist-credentials: false
|
|
27
27
|
|
|
28
28
|
- name: Set up Python ${{ matrix.python-version }}
|
|
29
|
-
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 #
|
|
29
|
+
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 #
|
|
30
30
|
with:
|
|
31
31
|
python-version: ${{ matrix.python-version }}
|
|
32
32
|
|
|
@@ -102,3 +102,6 @@ tests/telemetry_out/
|
|
|
102
102
|
|
|
103
103
|
# Force tracking of the Golden Master despite global *.json ignore
|
|
104
104
|
!tests/golden_master_audit.json*.vsix
|
|
105
|
+
|
|
106
|
+
# Force tracking of the Dead Key Auditor baseline (#325) despite global *.json ignore
|
|
107
|
+
!tests/dead_key_audit_baseline.json
|
gitgalaxy-2.4.5/PKG-INFO
ADDED
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gitgalaxy
|
|
3
|
+
Version: 2.4.5
|
|
4
|
+
Summary: An AST-free, LLM-free zero-trust static analysis engine for mapping architectural risk, securing CI/CD pipelines, and modernizing legacy monoliths.
|
|
5
|
+
Author: Joe Esquibel
|
|
6
|
+
Project-URL: Homepage, https://gitgalaxy.io
|
|
7
|
+
Project-URL: Documentation, https://squid-protocol.github.io/gitgalaxy/
|
|
8
|
+
Project-URL: Source, https://github.com/squid-protocol/gitgalaxy
|
|
9
|
+
Project-URL: Tracker, https://github.com/squid-protocol/gitgalaxy/issues
|
|
10
|
+
Keywords: static-analysis,security,devsecops,visualization,ast,zero-trust,sbom,legacy-migration
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Topic :: Security
|
|
15
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
17
|
+
Classifier: Intended Audience :: Developers
|
|
18
|
+
Classifier: Intended Audience :: Information Technology
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: PyYAML>=6.0
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
<div align="center">
|
|
26
|
+
|
|
27
|
+
# GitGalaxy
|
|
28
|
+
|
|
29
|
+
[Docs](https://squid-protocol.github.io/gitgalaxy/) · [Visualizer](https://gitgalaxy.io/)
|
|
30
|
+
|
|
31
|
+
[](https://badge.fury.io/py/gitgalaxy)
|
|
32
|
+
[](https://www.python.org/downloads/)
|
|
33
|
+
[](https://polyformproject.org/licenses/noncommercial/1.0.0/)
|
|
34
|
+
[](#)
|
|
35
|
+
[](#)
|
|
36
|
+
[](#)
|
|
37
|
+
|
|
38
|
+
[](https://pypi.org/project/gitgalaxy/)
|
|
39
|
+
[](#)
|
|
40
|
+
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div align="center">
|
|
44
|
+
|
|
45
|
+
**1 scan** · **97 structural signals** · **50+ languages** · **0 need for compilation**<br>
|
|
46
|
+
**19 risk exposure scores** · **6 final reports** · **0 dependencies** · `pip install gitgalaxy`
|
|
47
|
+
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div align="center">
|
|
51
|
+
|
|
52
|
+
Gitgalaxy can assess full repos, comprised of mixes of 50+ different languages and map out the architecture, provide risk exposures and actionable fixes to lower those exposures. The graph below is a workflow from one gitgalaxy scan from on our golden test repo, which contains sample code files from the Apollo-11 1969 flight software through the modern tech stacks. [Benchmark](https://github.com/squid-protocol/language-crucible)
|
|
53
|
+
<img src="docs/wiki/assets/sankey_v4.3.1.png" alt="GitGalaxy Architecture Pipeline" width="100%">
|
|
54
|
+
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<div>
|
|
58
|
+
|
|
59
|
+
### **Whole-Repository Intelligence with a Unique Security Layer **
|
|
60
|
+
|
|
61
|
+
Gitgalaxy is a tool to determistically audit code, fast enough for the CI pipeline. Most code intelligence engines use an AST, like tree-sitter, which is offers an overly granular view of a repos (like asking to understand a house and getting a list of every brick and glass pane) and it limits the languages and files that can be scanned. Modern repos are poly-lingual. Many repos have old code without a good AST. To bypass this, Gitgalaxy uses a custom regex/lexical structural-analysis engine with a statistics layer on top — it builds a feature vector per file (from ~97 regex "signal" categories - that mark the boundaries of functions, control flow, I/O, state mutation, and dozens of other structural and security-relevant behaviors) and per repo (dependency graph via import resolution + PageRank/centrality), then transforms those raw counts into normalized 0–100 risk scores via sigmoid functions, and exports the result to six formats.
|
|
62
|
+
|
|
63
|
+
Gitgalaxy trades AST-level precision for orders-of-magnitude speed and universal language coverage, in the same spirit that [BLAST traded Smith-Waterman's](https://squid-protocol.github.io/gitgalaxy/03-01-claim-1-search-strategies/) exhaustive alignment for heuristic speed in genomics. Output includes SARIF, CycloneDX SBOM, a queryable SQLite knowledge graph, an LLM-optimized architecture brief, and 3D visualization data from a single scan pass that takes seconds.
|
|
64
|
+
|
|
65
|
+
The result is a deterministic knowledge graph of the repository, built without ever requiring the code to compile. It calculates the ratio of test code to core logic, maps each file's downstream "blast radius" through the dependency graph, and surfaces project-structure signal that line-by-line linters miss entirely. Per-file signal extraction runs in time linear to codebase size; repository-level graph metrics (centrality, community detection) use standard network-analysis algorithms with explicit sampling bounds on very large graphs.
|
|
66
|
+
|
|
67
|
+
Our unique engine allows for the unique ways to scan for several CWEs families without the need for CVE lists, which is a unique edge for our code intelligence engine.
|
|
68
|
+
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div>
|
|
72
|
+
|
|
73
|
+
### Scanning Apollo-11 with the blAST Engine
|
|
74
|
+
|
|
75
|
+

|
|
76
|
+
|
|
77
|
+
</div>
|
|
78
|
+
|
|
79
|
+
<div>
|
|
80
|
+
|
|
81
|
+
## What GitGalaxy Finds — and What It Doesn't Claim
|
|
82
|
+
|
|
83
|
+
GitGalaxy produces two different kinds of output, and they should be read differently.
|
|
84
|
+
|
|
85
|
+
**Risk Exposure scores** are a 0–100, density-normalized signal across 19 categories
|
|
86
|
+
(secrets, injection surface, memory corruption, and more), rolled up from function to
|
|
87
|
+
file to folder to repository. A high score means *this deserves attention first* — it
|
|
88
|
+
is a prioritization signal, not a verdict. Two files can carry the same score for
|
|
89
|
+
completely different reasons: a real problem, or a legitimate pattern that looks
|
|
90
|
+
identical on the surface. Encrypted malware and a well-tested cryptography routine
|
|
91
|
+
both produce high entropy. GitGalaxy can't tell you which one it found — only that
|
|
92
|
+
something worth a second look is there.
|
|
93
|
+
|
|
94
|
+
**Findings** are individual, line-level flags: a specific Structural Signature that
|
|
95
|
+
crossed a risk threshold. These are evidence to review, not confirmed vulnerabilities.
|
|
96
|
+
GitGalaxy never executes code, traces runtime dataflow, or verifies exploitability —
|
|
97
|
+
it tells you a pattern exists in the text, at this exact line, and hands you the
|
|
98
|
+
context to judge it yourself.
|
|
99
|
+
|
|
100
|
+
**This is intentional, not a limitation we're hiding.** GitGalaxy is built to err
|
|
101
|
+
toward recall over precision: flag more, and let a human or a deeper tool narrow the
|
|
102
|
+
list, rather than risk staying silent on something real. False positives are the
|
|
103
|
+
expected cost of that trade-off, the same way they are for every static analyzer that
|
|
104
|
+
doesn't execute the code it reads.
|
|
105
|
+
|
|
106
|
+
That also means GitGalaxy is strongest against a specific class of problem —
|
|
107
|
+
**negligence, not adversarial evasion.** A hardcoded key someone forgot to remove, an
|
|
108
|
+
insecure registry, an obviously dangerous `eval()` call — nobody on the other end of
|
|
109
|
+
those is trying to hide from a scanner. A specifically motivated attacker who knows
|
|
110
|
+
how static, signature-based detection works can evade individual signals like entropy
|
|
111
|
+
thresholds without much effort. Treat GitGalaxy as the fast first pass across a
|
|
112
|
+
codebase too large to read by hand — not the last word on whether something is safe.
|
|
113
|
+
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
### Weakness Classes, Not Just Known CVEs
|
|
117
|
+
|
|
118
|
+
Most dependency scanners work from a lookup table: they know a vulnerability exists
|
|
119
|
+
because someone found it, filed it, and it now has a CVE number in a feed. That's
|
|
120
|
+
useful, but it's necessarily reactive — a scanner built this way is blind to anything
|
|
121
|
+
that hasn't been discovered and disclosed yet, including straightforward variants of
|
|
122
|
+
known-bad patterns that just look slightly different from the filed instance.
|
|
123
|
+
|
|
124
|
+
GitGalaxy takes a different approach: instead of matching known instances, it matches
|
|
125
|
+
weakness *classes*. Its findings are tagged by CWE (Common Weakness Enumeration) —
|
|
126
|
+
hardcoded credentials, dynamic code execution, unsafe deserialization — not by CVE ID.
|
|
127
|
+
A structural signature for "dynamic execution of tainted input" catches that pattern
|
|
128
|
+
wherever it appears, with whatever variable names, in whatever specific arrangement —
|
|
129
|
+
not just the one instance someone already filed a report about.
|
|
130
|
+
|
|
131
|
+
The same philosophy extends to the SBOM layer. Rather than asking "does this package
|
|
132
|
+
version appear in a vulnerability database," GitGalaxy's zero-trust physical audit
|
|
133
|
+
asks "does this package's actual content on disk structurally match what a legitimate
|
|
134
|
+
version should look like" — entropy, structural fingerprint, behavioral anomaly flags.
|
|
135
|
+
That's how a tampered dependency gets caught on day one, before anyone has discovered
|
|
136
|
+
or disclosed anything, because there's no CVE to wait for.
|
|
137
|
+
|
|
138
|
+
This is a complement to CVE-feed tools (Snyk, Dependabot, OSV-Scanner), not a
|
|
139
|
+
replacement for them — those tools are the right answer for "is this exact known bug
|
|
140
|
+
present." GitGalaxy is the right answer for the wider net: weakness classes and
|
|
141
|
+
physical anomalies that don't require anyone to have found and filed the specific
|
|
142
|
+
instance first.
|
|
143
|
+
|
|
144
|
+
### Real-World Adoption
|
|
145
|
+
|
|
146
|
+
<div align="center">
|
|
147
|
+
|
|
148
|
+
Tracking the total, deduplicated volume of fetches across PyPI, GitHub, and GitLab against our baseline control repositories.
|
|
149
|
+
|
|
150
|
+
<img src="https://raw.githubusercontent.com/squid-protocol/squid-telemetry/main/cumulative_downloads.png" alt="GitGalaxy Cumulative Downloads" width="500">
|
|
151
|
+
|
|
152
|
+
Measured without mirrors. The GitHub/PyPI breakdown lines begin partway through the window because per-source tracking was added after total-fetch tracking; the total line before that point is aggregate across all sources.
|
|
153
|
+
</div>
|
|
154
|
+
|
|
155
|
+
<div>
|
|
156
|
+
|
|
157
|
+
## Benchmarks
|
|
158
|
+
* **[50+ Language Test Repo](https://github.com/squid-protocol/language-crucible)** and [artifacts](https://github.com/squid-protocol/language-crucible/tree/main/raw_output)
|
|
159
|
+
* **[Speed Results from 104 Repos](https://squid-protocol.github.io/gitgalaxy/03-01-claim-1-search-strategies/)**
|
|
160
|
+
* **[Cross-Language Comparisons of over 1000 repos](https://squid-protocol.github.io/gitgalaxy/03-04-claim-4-comparing-languages/):** Deterministic 1:1 benchmarking of distinct syntax architectures.
|
|
161
|
+
* **[Universal File Archetypes by k-means clustering](https://squid-protocol.github.io/gitgalaxy/03-05-claim-5-file-archetypes/):** ML isolation of files into K-means clusters.
|
|
162
|
+
* **[Mainframe Proven: 100% CI/CD Translation Success Rate](https://github.com/squid-protocol/gitgalaxy/tree/main/examples/ibm_cics_translation):** 27 out of 27 successful architectural translation of 27 distinct legacy COBOL repositories (including IBM CICS benchmark apps) into compiling Java Spring Boot environments.
|
|
163
|
+
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<div>
|
|
167
|
+
|
|
168
|
+
## Data Privacy & On-Premise Deployment
|
|
169
|
+
* 100% air-gapped execution
|
|
170
|
+
* On-premise deployment
|
|
171
|
+
* Zero-trust processing model
|
|
172
|
+
</div>
|
|
173
|
+
|
|
174
|
+
<div>
|
|
175
|
+
|
|
176
|
+
## Installation & Usage
|
|
177
|
+
* Python-based: `pip install gitgalaxy`
|
|
178
|
+
* CLI execution
|
|
179
|
+
* **[How to add a new programming language in 1 prompt](https://github.com/squid-protocol/gitgalaxy/blob/main/gitgalaxy/standards/how_to_add_a_language.md)**
|
|
180
|
+
* Outputs forensic JSONs (optimized for AI-agent summary reports) and a native SQLite3 database for robust querying and storage.
|
|
181
|
+
|
|
182
|
+
### CI/CD Integration
|
|
183
|
+
|
|
184
|
+
Drop the template for your platform straight into your pipeline — each one runs a GitGalaxy scan and can fail the build on risk-threshold or malware-signature breaches.
|
|
185
|
+
|
|
186
|
+
| Platform | Template |
|
|
187
|
+
|---|---|
|
|
188
|
+
| **GitHub Actions** | [`gitgalaxy-pipeline.yml`](https://github.com/squid-protocol/gitgalaxy/blob/main/templates/github/gitgalaxy-pipeline.yml) — see the [full integration guide](https://github.com/squid-protocol/gitgalaxy/blob/main/github-action-readme.md) |
|
|
189
|
+
| **GitLab CI** | [`scan.yml`](https://github.com/squid-protocol/gitgalaxy/blob/main/templates/gitlab/scan.yml) |
|
|
190
|
+
| **Bitbucket Pipelines** | [`bitbucket-pipelines.yml`](https://github.com/squid-protocol/gitgalaxy/blob/main/templates/bitbucket/bitbucket-pipelines.yml) + [`bitbucket_insights.py`](https://github.com/squid-protocol/gitgalaxy/blob/main/templates/bitbucket/bitbucket_insights.py) (posts findings as Bitbucket Code Insights annotations) |
|
|
191
|
+
| **Azure Pipelines** | [`azure-pipelines.yml`](https://github.com/squid-protocol/gitgalaxy/blob/main/templates/azure/azure-pipelines.yml) |
|
|
192
|
+
| **Anything else** (Jenkins, CircleCI, etc.) | [`scan.yml`](https://github.com/squid-protocol/gitgalaxy/blob/main/templates/scan.yml) — generic, shell-invocable template |
|
|
193
|
+
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
## Enterprise Codebase Tools & Use Cases
|
|
199
|
+
|
|
200
|
+
GitGalaxy operates on a Decoupled Architecture. While the core engine provides the overarching structural mechanics and topological mapping, our specialized Decoupled Execution Controllers leverage that deterministic graph to execute enterprise-grade operations.
|
|
201
|
+
|
|
202
|
+
### [Automated Legacy Migration: COBOL to Java Spring Boot](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/cobol_to_java/)
|
|
203
|
+
A deterministic, high-fidelity translation pipeline. It converts legacy COBOL into fully compiling, modern Spring Boot architectures, mapping memory exactly and scaffolding JPA entities, REST controllers, and Maven builds before utilizing AI to translate isolated business logic.
|
|
204
|
+
* **Proven Metric:** Achieved a perfect 27/27 Maven compile success rate across a batch test of distinct legacy repos.
|
|
205
|
+
* **Verify for Yourself:** [Inspect the raw outputs of the IBM CICS Application Translation here.](https://github.com/squid-protocol/gitgalaxy/tree/main/examples/ibm_cics_translation/)
|
|
206
|
+
|
|
207
|
+
### [Mainframe Refactoring: COBOL & JCL Optimization](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/cobol_to_cobol/)
|
|
208
|
+
An analytical suite for sanitizing mainframe monoliths. It safely neutralizes legacy lexical traps, extracts dead execution memory, maps topological DAG execution orders, and generates Zero-Trust JCL configurations for modern cloud deployments.
|
|
209
|
+
* **Proven Metric:** The dead-code extraction engine removed over 6,700 lines of dead execution blocks and orphaned variables from the standard IBM CICS benchmark app in seconds.
|
|
210
|
+
|
|
211
|
+
### [Software Supply Chain Security & Pre-Commit Firewalls](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/supply_chain_security/)
|
|
212
|
+
Extreme-velocity pre-commit firewalls. Instead of trusting manifest files, it scans physical internals to block steganography, byte-level XOR decryption loops, homoglyph typosquatting, and exposed cryptographic vaults before they ever enter your CI/CD pipeline. **[Deploy directly via our GitHub Action](https://github.com/squid-protocol/gitgalaxy/blob/main/github-action-readme.md).**
|
|
213
|
+
|
|
214
|
+
### [Zero-Trust SBOM Generation & Dependency Auditing](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/compliance/)
|
|
215
|
+
A Zero-Trust Software Bill of Materials (SBOM) generator. It refuses to blindly trust `package.json` or `requirements.txt` files, instead locating the physical dependencies on disk, mathematically verifying their entropy and linguistic identity, and generating strict CycloneDX 1.4 JSON reports.
|
|
216
|
+
* **Proven Metric:** Successfully mapped and mathematically verified the physical internals of 170 unique Go modules inside the local Kubernetes repository.
|
|
217
|
+
|
|
218
|
+
### [API Security & Shadow API Detection](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/network_auditing/)
|
|
219
|
+
A deterministic mapping tool that hunts undocumented vulnerabilities. It uses structural regex to find active physical routing logic (Express, Spring Boot, FastAPI) and applies set theory against official OpenAPI/Swagger documentation to isolate critical Shadow APIs and outdated Ghost APIs.
|
|
220
|
+
|
|
221
|
+
### [High-Speed PII Detection & Log Analysis](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/terabyte_log_scanning/)
|
|
222
|
+
Unindexed, tactical log analysis operating at 0.07 GB/sec. It streams massive database dumps to deterministically hunt and mask PII (Credit Cards, SSNs, AWS Keys) and uses static architecture maps to prove exact runtime execution frequencies with ASCII time-series histograms.
|
|
223
|
+
|
|
224
|
+
### [AI Agent Guardrails & Codebase Protection](https://github.com/squid-protocol/gitgalaxy/tree/main/gitgalaxy/tools/ai_guardrails/)
|
|
225
|
+
Specialized keyword sensors protecting both your application and your codebase. The AppSec Sensor detects weaponized LLM features (RCE funnels, exfiltration risks), while the Dev Agent Firewall evaluates token mass and blast radius to restrict autonomous coding agents from modifying dangerous or context-token-draining files. Helps identify which files need to be chunked to reduce context overload.
|
|
226
|
+
|
|
227
|
+
## Local Browser-Based 3D Codebase Visualization
|
|
228
|
+
|
|
229
|
+
If you prefer visual analytics, we've built a topological dashboard where each file represents a node, sized and colored according to specific risk metrics.
|
|
230
|
+
|
|
231
|
+
Simply drag and drop your generated `your_repo_GPU_galaxy.json` file (or a `.zip` of your raw repository) directly into [GitGalaxy.io](https://gitgalaxy.io/). All rendering and scanning happens entirely in your browser's local memory.
|
|
232
|
+
|
|
233
|
+
### 🔭 Watch GitGalaxy in Action
|
|
234
|
+
|
|
235
|
+
**Mapping 3.2 Million Lines of C++ in 11 Seconds | OpenCV** [](https://youtu.be/3ScQCSUBdZw)
|
|
236
|
+
|
|
237
|
+

|
|
238
|
+
|
|
239
|
+
## Zero-Trust Data Security
|
|
240
|
+
|
|
241
|
+
Your code never leaves your machine. GitGalaxy performs 100% of its scanning and vectorization locally.
|
|
242
|
+
|
|
243
|
+
* **No Data Transmission:** Source code is never transmitted to any API, cloud database, or third-party service.
|
|
244
|
+
* **Ephemeral Memory Processing:** Repositories are unpacked into a volatile memory buffer (RAM) and are automatically purged when the browser tab is closed.
|
|
245
|
+
* **Privacy-by-Design:** Even when using the web-based viewer, the data remains behind the user's firewall at all times.
|
|
246
|
+
|
|
247
|
+
## ⚖️ Licensing & Usage
|
|
248
|
+
|
|
249
|
+
Copyright (c) 2026 Joe Esquibel
|
|
250
|
+
|
|
251
|
+
GitGalaxy is distributed under the **PolyForm Noncommercial License 1.0.0**.
|
|
252
|
+
|
|
253
|
+
### 🎓 Community Free Tier (Academic, Research, & Hobbyist)
|
|
254
|
+
We are deeply committed to the open-source and academic communities. If you are using GitGalaxy for personal projects, academic research, or non-commercial development, the engine is 100% free to use.
|
|
255
|
+
|
|
256
|
+
To suppress the commercial licensing delays in your terminal or personal CI/CD pipelines, simply set the following environment variable:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
export GITGALAXY_LICENSE_KEY="COMMUNITY_FREE_TIER"
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
### 🏢 Commercial & Enterprise Use
|
|
263
|
+
Running GitGalaxy in corporate environments, proprietary codebases, or commercial CI/CD pipelines requires an enterprise license. Unlicensed corporate pipelines will experience intentional execution friction, and attempting to use the Community Free Tier key in a corporate environment will trigger explicit non-compliance warnings in your audit logs.
|
|
264
|
+
|
|
265
|
+
To acquire a zero-trust commercial key for your organization and ensure clean compliance logs, please contact: **joe@gitgalaxy.io**
|