devsecops-engine-tools 1.15.0__tar.gz → 1.17.0__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.
Potentially problematic release.
This version of devsecops-engine-tools might be problematic. Click here for more details.
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/PKG-INFO +3 -2
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +2 -2
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +4 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/report.py +2 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +54 -28
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +45 -12
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +66 -13
- devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_rich_table/printer_rich_table.py +86 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +20 -11
- devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +87 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +9 -51
- devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +45 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +18 -3
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +5 -6
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +1 -0
- devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- devsecops_engine_tools-1.17.0/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools.egg-info/PKG-INFO +3 -2
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools.egg-info/SOURCES.txt +2 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools.egg-info/requires.txt +1 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -24
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -35
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/version.py +0 -1
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/README.md +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_rich_table}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_core/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_core/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_core/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_core/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_dast/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_dast/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/domain/model/gateways → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/domain/model/gateways}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/first_epss_csv.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_risk/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_risk/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/runner_engine_code.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/code_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_deserealizator.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/azuredevops → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/azuredevops}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/azuredevops/models → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/azuredevops/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/git_cli → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/git_cli/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/git_cli}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/git_cli/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/git_cli/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/git_run.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/git_cli/model/gateway → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/git_cli/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/github → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/git_cli/model/gateway}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/git_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/github/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/github}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/github/models → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/github/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/input_validations → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/github/models}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/input_validations}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/runner_report_sonar.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/sonarqube_report.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/ssh → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/utils.py +0 -0
- {devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/utils → devsecops_engine_tools-1.17.0/devsecops_engine_tools/engine_utilities/ssh}/__init__.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools/engine_utilities/utils/utils.py +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools.egg-info/entry_points.txt +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/setup.cfg +0 -0
- {devsecops_engine_tools-1.15.0 → devsecops_engine_tools-1.17.0}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.17.0
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -25,6 +25,7 @@ Requires-Dist: distro==1.9.0
|
|
|
25
25
|
Requires-Dist: boto3==1.34.157
|
|
26
26
|
Requires-Dist: docker==7.1.0
|
|
27
27
|
Requires-Dist: setuptools==72.1.0
|
|
28
|
+
Requires-Dist: rich==13.9.4
|
|
28
29
|
|
|
29
30
|
# DevSecOps Engine Tools
|
|
30
31
|
|
|
@@ -67,7 +68,7 @@ pip3 install devsecops-engine-tools
|
|
|
67
68
|
### Scan running - flags (CLI)
|
|
68
69
|
|
|
69
70
|
```bash
|
|
70
|
-
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code and engine_dependencies"] --platform ["k8s","cloudformation","docker", "openapi"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit"] --image_to_scan ["image_to_scan"]
|
|
71
|
+
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code and engine_dependencies"] --platform ["k8s","cloudformation","docker", "openapi", "terraform"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit"] --image_to_scan ["image_to_scan"]
|
|
71
72
|
```
|
|
72
73
|
|
|
73
74
|
### Structure Remote Config
|
|
@@ -97,7 +97,7 @@ def get_inputs_from_cli(args):
|
|
|
97
97
|
parser.add_argument(
|
|
98
98
|
"-p",
|
|
99
99
|
"--platform",
|
|
100
|
-
type=parse_choices({"all", "docker", "k8s", "cloudformation", "openapi"}),
|
|
100
|
+
type=parse_choices({"all", "docker", "k8s", "cloudformation", "openapi", "terraform"}),
|
|
101
101
|
required=False,
|
|
102
102
|
default="all",
|
|
103
103
|
help="Platform to scan, only apply engine_iac tool",
|
|
@@ -191,8 +191,8 @@ def application_core():
|
|
|
191
191
|
"github": GithubActions(),
|
|
192
192
|
"local": RuntimeLocal(),
|
|
193
193
|
}.get(args["platform_devops"])
|
|
194
|
-
printer_table_gateway = PrinterPrettyTable()
|
|
195
194
|
metrics_manager_gateway = S3Manager()
|
|
195
|
+
printer_table_gateway = PrinterPrettyTable()
|
|
196
196
|
|
|
197
197
|
init_engine_core(
|
|
198
198
|
vulnerability_management_gateway,
|
|
@@ -12,3 +12,7 @@ class Exclusions:
|
|
|
12
12
|
self.severity = kwargs.get("severity", "")
|
|
13
13
|
self.hu = kwargs.get("hu", "")
|
|
14
14
|
self.reason = kwargs.get("reason", "Risk Accepted")
|
|
15
|
+
self.vm_id = kwargs.get("vm_id", "")
|
|
16
|
+
self.vm_id_url = kwargs.get("vm_id_url", "")
|
|
17
|
+
self.service = kwargs.get("service", "")
|
|
18
|
+
self.tags = kwargs.get("tags", [])
|
|
@@ -4,6 +4,8 @@ from dataclasses import dataclass
|
|
|
4
4
|
@dataclass
|
|
5
5
|
class Report:
|
|
6
6
|
def __init__(self, **kwargs):
|
|
7
|
+
self.vm_id = kwargs.get("vm_id", "")
|
|
8
|
+
self.vm_id_url = kwargs.get("vm_id_url", "")
|
|
7
9
|
self.id = kwargs.get("id", [])
|
|
8
10
|
self.vuln_id_from_tool = kwargs.get("vuln_id_from_tool", "")
|
|
9
11
|
self.where = kwargs.get("where", "")
|
|
@@ -51,7 +51,7 @@ class HandleRisk:
|
|
|
51
51
|
"Error getting finding list in handle risk: {0}".format(str(e))
|
|
52
52
|
)
|
|
53
53
|
|
|
54
|
-
def _filter_engagements(self, engagements, service, risk_config):
|
|
54
|
+
def _filter_engagements(self, engagements, service, initial_services, risk_config):
|
|
55
55
|
filtered_engagements = []
|
|
56
56
|
min_word_length = risk_config["HANDLE_SERVICE_NAME"]["MIN_WORD_LENGTH"]
|
|
57
57
|
words = [
|
|
@@ -65,20 +65,22 @@ class HandleRisk:
|
|
|
65
65
|
min_word_amount = risk_config["HANDLE_SERVICE_NAME"]["MIN_WORD_AMOUNT"]
|
|
66
66
|
endings = risk_config["HANDLE_SERVICE_NAME"]["CHECK_ENDING"]
|
|
67
67
|
|
|
68
|
+
initial_services_lower = [service.lower() for service in initial_services]
|
|
69
|
+
|
|
68
70
|
for engagement in engagements:
|
|
69
|
-
if
|
|
70
|
-
filtered_engagements += [engagement
|
|
71
|
+
if engagement.name.lower() in initial_services_lower:
|
|
72
|
+
filtered_engagements += [engagement]
|
|
71
73
|
elif re.search(check_words_regex, engagement.name.lower()) and (
|
|
72
74
|
sum(1 for word in words if word.lower() in engagement.name.lower())
|
|
73
75
|
>= min_word_amount
|
|
74
76
|
):
|
|
75
|
-
filtered_engagements += [engagement
|
|
77
|
+
filtered_engagements += [engagement]
|
|
76
78
|
elif endings:
|
|
77
79
|
if any(
|
|
78
80
|
(service.lower() + ending.lower() == engagement.name.lower())
|
|
79
81
|
for ending in endings
|
|
80
82
|
):
|
|
81
|
-
filtered_engagements += [engagement
|
|
83
|
+
filtered_engagements += [engagement]
|
|
82
84
|
|
|
83
85
|
return filtered_engagements
|
|
84
86
|
|
|
@@ -94,15 +96,28 @@ class HandleRisk:
|
|
|
94
96
|
services_to_exclude = set(
|
|
95
97
|
risk_exclusions[pipeline_name]["SKIP_SERVICE"].get("services", [])
|
|
96
98
|
)
|
|
97
|
-
service_set = set(service_list)
|
|
98
|
-
|
|
99
|
-
remaining_services = list(service_set - services_to_exclude)
|
|
100
|
-
service_excluded = list(service_set & services_to_exclude)
|
|
101
99
|
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
remaining_engagements = [
|
|
101
|
+
engagement
|
|
102
|
+
for engagement in service_list
|
|
103
|
+
if engagement.name.lower()
|
|
104
|
+
not in [service.lower() for service in services_to_exclude]
|
|
105
|
+
]
|
|
106
|
+
excluded_engagements = [
|
|
107
|
+
engagement
|
|
108
|
+
for engagement in service_list
|
|
109
|
+
if engagement.name.lower()
|
|
110
|
+
in [service.lower() for service in services_to_exclude]
|
|
111
|
+
]
|
|
112
|
+
|
|
113
|
+
print(
|
|
114
|
+
f"Services to exclude: {[engagement.name for engagement in excluded_engagements]}"
|
|
115
|
+
)
|
|
116
|
+
logger.info(
|
|
117
|
+
f"Services to exclude: {[engagement.name for engagement in excluded_engagements]}"
|
|
118
|
+
)
|
|
104
119
|
|
|
105
|
-
return
|
|
120
|
+
return remaining_engagements
|
|
106
121
|
return service_list
|
|
107
122
|
|
|
108
123
|
def _should_skip_analysis(self, remote_config, pipeline_name, exclusions):
|
|
@@ -141,6 +156,15 @@ class HandleRisk:
|
|
|
141
156
|
|
|
142
157
|
service = pipeline_name
|
|
143
158
|
service_list = []
|
|
159
|
+
initial_services = []
|
|
160
|
+
initial_services += [service]
|
|
161
|
+
|
|
162
|
+
match_parent = re.match(
|
|
163
|
+
risk_config["PARENT_ANALYSIS"]["REGEX_GET_PARENT"], service
|
|
164
|
+
)
|
|
165
|
+
if risk_config["PARENT_ANALYSIS"]["ENABLED"].lower() == "true" and match_parent:
|
|
166
|
+
parent_service = match_parent.group(0)
|
|
167
|
+
initial_services += [parent_service]
|
|
144
168
|
|
|
145
169
|
if risk_config["HANDLE_SERVICE_NAME"]["ENABLED"].lower() == "true":
|
|
146
170
|
service = next(
|
|
@@ -156,7 +180,7 @@ class HandleRisk:
|
|
|
156
180
|
)
|
|
157
181
|
if match_service_code:
|
|
158
182
|
service_code = match_service_code.group(0)
|
|
159
|
-
|
|
183
|
+
initial_services += [
|
|
160
184
|
service.format(service_code=service_code)
|
|
161
185
|
for service in risk_config["HANDLE_SERVICE_NAME"]["ADD_SERVICES"]
|
|
162
186
|
]
|
|
@@ -164,31 +188,33 @@ class HandleRisk:
|
|
|
164
188
|
service_code, dict_args, secret_tool, remote_config
|
|
165
189
|
)
|
|
166
190
|
service_list += self._filter_engagements(
|
|
167
|
-
engagements, service, risk_config
|
|
191
|
+
engagements, service, initial_services, risk_config
|
|
168
192
|
)
|
|
193
|
+
else:
|
|
194
|
+
for service in initial_services:
|
|
195
|
+
engagements = self.vulnerability_management.get_active_engagements(
|
|
196
|
+
service, dict_args, secret_tool, remote_config
|
|
197
|
+
)
|
|
198
|
+
for engagement in engagements:
|
|
199
|
+
if engagement.name.lower() == service.lower():
|
|
200
|
+
service_list += [engagement]
|
|
201
|
+
break
|
|
169
202
|
|
|
170
|
-
service_list += [service]
|
|
171
|
-
|
|
172
|
-
match_parent = re.match(
|
|
173
|
-
risk_config["PARENT_ANALYSIS"]["REGEX_GET_PARENT"], service
|
|
174
|
-
)
|
|
175
|
-
if risk_config["PARENT_ANALYSIS"]["ENABLED"].lower() == "true" and match_parent:
|
|
176
|
-
parent_service = match_parent.group(0)
|
|
177
|
-
service_list += [parent_service]
|
|
178
|
-
|
|
179
|
-
service_list = list(set(service_list))
|
|
180
203
|
new_service_list = self._exclude_services(
|
|
181
204
|
dict_args, pipeline_name, service_list
|
|
182
205
|
)
|
|
183
206
|
|
|
184
|
-
|
|
185
|
-
|
|
207
|
+
for engagement in new_service_list:
|
|
208
|
+
print(f"Service to analyze: {engagement.name}, URL: {engagement.vm_url}")
|
|
209
|
+
logger.info(
|
|
210
|
+
f"Service to analyze: {engagement.name}, URL: {engagement.vm_url}"
|
|
211
|
+
)
|
|
186
212
|
|
|
187
213
|
findings = []
|
|
188
214
|
exclusions = []
|
|
189
215
|
for service in new_service_list:
|
|
190
216
|
findings_list, exclusions_list = self._get_all_from_vm(
|
|
191
|
-
dict_args, secret_tool, remote_config, service
|
|
217
|
+
dict_args, secret_tool, remote_config, service.name
|
|
192
218
|
)
|
|
193
219
|
findings += findings_list
|
|
194
220
|
exclusions += exclusions_list
|
|
@@ -197,7 +223,7 @@ class HandleRisk:
|
|
|
197
223
|
dict_args,
|
|
198
224
|
findings,
|
|
199
225
|
exclusions,
|
|
200
|
-
new_service_list,
|
|
226
|
+
[service.name for service in new_service_list],
|
|
201
227
|
self.devops_platform_gateway,
|
|
202
228
|
self.print_table_gateway,
|
|
203
229
|
)
|
|
@@ -263,6 +263,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
263
263
|
max_retries = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
264
264
|
"MAX_RETRIES_QUERY"
|
|
265
265
|
]
|
|
266
|
+
host_dd = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"]
|
|
266
267
|
|
|
267
268
|
findings = self._get_findings(
|
|
268
269
|
self._get_session_manager(dict_args, secret_tool, config_tool),
|
|
@@ -273,13 +274,13 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
273
274
|
|
|
274
275
|
all_findings = list(
|
|
275
276
|
map(
|
|
276
|
-
partial(self._create_report),
|
|
277
|
+
partial(self._create_report, host_dd=host_dd),
|
|
277
278
|
findings,
|
|
278
279
|
)
|
|
279
280
|
)
|
|
280
281
|
|
|
281
282
|
all_exclusions = self._get_report_exclusions(
|
|
282
|
-
all_findings, self._format_date_to_dd_format
|
|
283
|
+
all_findings, self._format_date_to_dd_format, host_dd=host_dd
|
|
283
284
|
)
|
|
284
285
|
|
|
285
286
|
return all_findings, all_exclusions
|
|
@@ -310,7 +311,14 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
310
311
|
"active": "true",
|
|
311
312
|
}
|
|
312
313
|
|
|
313
|
-
|
|
314
|
+
engagements = Engagement.get_engagements(request_is, request_active).results
|
|
315
|
+
|
|
316
|
+
host_dd = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"]
|
|
317
|
+
|
|
318
|
+
for engagement in engagements:
|
|
319
|
+
engagement.vm_url = f"{host_dd}/engagement/{engagement.id}/finding/open"
|
|
320
|
+
|
|
321
|
+
return engagements
|
|
314
322
|
|
|
315
323
|
except Exception as ex:
|
|
316
324
|
raise ExceptionGettingEngagements(
|
|
@@ -326,25 +334,25 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
326
334
|
config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"],
|
|
327
335
|
)
|
|
328
336
|
|
|
329
|
-
def _get_report_exclusions(self, total_findings, date_fn):
|
|
337
|
+
def _get_report_exclusions(self, total_findings, date_fn, host_dd):
|
|
330
338
|
exclusions = []
|
|
331
339
|
for finding in total_findings:
|
|
332
340
|
if finding.risk_accepted:
|
|
333
341
|
exclusions.append(
|
|
334
|
-
self.
|
|
335
|
-
finding, date_fn, "engine_risk", "Risk Accepted"
|
|
342
|
+
self._create_report_exclusion(
|
|
343
|
+
finding, date_fn, "engine_risk", "Risk Accepted", host_dd
|
|
336
344
|
)
|
|
337
345
|
)
|
|
338
346
|
elif finding.false_p:
|
|
339
347
|
exclusions.append(
|
|
340
|
-
self.
|
|
341
|
-
finding, date_fn, "engine_risk", "False Positive"
|
|
348
|
+
self._create_report_exclusion(
|
|
349
|
+
finding, date_fn, "engine_risk", "False Positive", host_dd
|
|
342
350
|
)
|
|
343
351
|
)
|
|
344
352
|
elif finding.risk_status == "Transfer Accepted":
|
|
345
353
|
exclusions.append(
|
|
346
|
-
self.
|
|
347
|
-
finding, date_fn, "engine_risk", "Transferred Finding"
|
|
354
|
+
self._create_report_exclusion(
|
|
355
|
+
finding, date_fn, "engine_risk", "Transferred Finding", host_dd
|
|
348
356
|
)
|
|
349
357
|
)
|
|
350
358
|
return exclusions
|
|
@@ -381,7 +389,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
381
389
|
logger.error("Maximum number of retries reached, aborting.")
|
|
382
390
|
raise e
|
|
383
391
|
|
|
384
|
-
def
|
|
392
|
+
def _date_reason_based(self, finding, date_fn, reason):
|
|
385
393
|
if reason == "False Positive":
|
|
386
394
|
create_date = date_fn(finding.last_status_update)
|
|
387
395
|
expired_date = date_fn(None)
|
|
@@ -393,6 +401,24 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
393
401
|
create_date = date_fn(last_accepted_risk["created"])
|
|
394
402
|
expired_date = date_fn(last_accepted_risk["expiration_date"])
|
|
395
403
|
|
|
404
|
+
return create_date, expired_date
|
|
405
|
+
|
|
406
|
+
|
|
407
|
+
def _create_exclusion(self, finding, date_fn, tool, reason):
|
|
408
|
+
create_date, expired_date = self._date_reason_based(finding, date_fn, reason)
|
|
409
|
+
|
|
410
|
+
return Exclusions(
|
|
411
|
+
id=finding.vuln_id_from_tool,
|
|
412
|
+
where=self._get_where(finding, tool),
|
|
413
|
+
create_date=create_date,
|
|
414
|
+
expired_date=expired_date,
|
|
415
|
+
severity=finding.severity,
|
|
416
|
+
reason=reason,
|
|
417
|
+
)
|
|
418
|
+
|
|
419
|
+
def _create_report_exclusion(self, finding, date_fn, tool, reason, host_dd):
|
|
420
|
+
create_date, expired_date = self._date_reason_based(finding, date_fn, reason)
|
|
421
|
+
|
|
396
422
|
return Exclusions(
|
|
397
423
|
id=finding.vuln_id_from_tool,
|
|
398
424
|
where=self._get_where(finding, tool),
|
|
@@ -400,10 +426,16 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
400
426
|
expired_date=expired_date,
|
|
401
427
|
severity=finding.severity,
|
|
402
428
|
reason=reason,
|
|
429
|
+
vm_id=str(finding.vm_id),
|
|
430
|
+
vm_id_url=f"{host_dd}/finding/{finding.vm_id}",
|
|
431
|
+
service=finding.service,
|
|
432
|
+
tags=finding.tags,
|
|
403
433
|
)
|
|
404
434
|
|
|
405
|
-
def _create_report(self, finding):
|
|
435
|
+
def _create_report(self, finding, host_dd):
|
|
406
436
|
return Report(
|
|
437
|
+
vm_id=str(finding.id),
|
|
438
|
+
vm_id_url=f"{host_dd}/finding/{finding.id}",
|
|
407
439
|
id=finding.vulnerability_ids,
|
|
408
440
|
vuln_id_from_tool=finding.vuln_id_from_tool,
|
|
409
441
|
status=finding.display_status,
|
|
@@ -449,5 +481,6 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
449
481
|
elif tool == "engine_risk":
|
|
450
482
|
for tag in finding.tags:
|
|
451
483
|
return self._get_where(finding, tag)
|
|
484
|
+
return finding.file_path
|
|
452
485
|
else:
|
|
453
486
|
return finding.file_path
|
|
@@ -10,7 +10,7 @@ from devsecops_engine_tools.engine_core.src.domain.model.report import (
|
|
|
10
10
|
Report,
|
|
11
11
|
)
|
|
12
12
|
from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
13
|
-
format_date
|
|
13
|
+
format_date,
|
|
14
14
|
)
|
|
15
15
|
from prettytable import PrettyTable, DOUBLE_BORDER
|
|
16
16
|
|
|
@@ -63,24 +63,20 @@ class PrinterPrettyTable(PrinterTableGateway):
|
|
|
63
63
|
print(sorted_table)
|
|
64
64
|
|
|
65
65
|
def print_table_report(self, report_list: "list[Report]"):
|
|
66
|
-
headers = ["Risk Score", "
|
|
66
|
+
headers = ["Risk Score", "VM ID", "Services", "Tags"]
|
|
67
67
|
table = PrettyTable(headers)
|
|
68
68
|
for report in report_list:
|
|
69
69
|
row_data = [
|
|
70
70
|
report.risk_score,
|
|
71
|
-
report.
|
|
72
|
-
|
|
73
|
-
report.tags,
|
|
74
|
-
report.where,
|
|
75
|
-
report.service
|
|
71
|
+
self._check_spaces(report.vm_id),
|
|
72
|
+
self._check_spaces(report.service),
|
|
73
|
+
", ".join(report.tags),
|
|
76
74
|
]
|
|
77
75
|
table.add_row(row_data)
|
|
78
76
|
|
|
79
77
|
sorted_table = PrettyTable()
|
|
80
78
|
sorted_table.field_names = table.field_names
|
|
81
|
-
sorted_table.add_rows(
|
|
82
|
-
sorted(table._rows, key=lambda row: row[0], reverse=True)
|
|
83
|
-
)
|
|
79
|
+
sorted_table.add_rows(sorted(table._rows, key=lambda row: row[0], reverse=True))
|
|
84
80
|
|
|
85
81
|
for column in table.field_names:
|
|
86
82
|
sorted_table.align[column] = "l"
|
|
@@ -90,9 +86,52 @@ class PrinterPrettyTable(PrinterTableGateway):
|
|
|
90
86
|
if len(sorted_table.rows) > 0:
|
|
91
87
|
print(sorted_table)
|
|
92
88
|
|
|
89
|
+
def print_table_report_exlusions(self, exclusions):
|
|
90
|
+
if exclusions:
|
|
91
|
+
headers = [
|
|
92
|
+
"VM ID",
|
|
93
|
+
"Tags",
|
|
94
|
+
"Services",
|
|
95
|
+
"Created Date",
|
|
96
|
+
"Expired Date",
|
|
97
|
+
"Reason",
|
|
98
|
+
]
|
|
99
|
+
|
|
100
|
+
table = PrettyTable(headers)
|
|
101
|
+
|
|
102
|
+
for exclusion in exclusions:
|
|
103
|
+
row_data = [
|
|
104
|
+
self._check_spaces(exclusion["vm_id"]),
|
|
105
|
+
", ".join(exclusion["tags"]),
|
|
106
|
+
self._check_spaces(exclusion["service"]),
|
|
107
|
+
format_date(exclusion["create_date"], "%d%m%Y", "%d/%m/%Y"),
|
|
108
|
+
(
|
|
109
|
+
format_date(exclusion["expired_date"], "%d%m%Y", "%d/%m/%Y")
|
|
110
|
+
if exclusion["expired_date"]
|
|
111
|
+
and exclusion["expired_date"] != "undefined"
|
|
112
|
+
else "NA"
|
|
113
|
+
),
|
|
114
|
+
exclusion["reason"],
|
|
115
|
+
]
|
|
116
|
+
table.add_row(row_data)
|
|
117
|
+
|
|
118
|
+
for column in table.field_names:
|
|
119
|
+
table.align[column] = "l"
|
|
120
|
+
|
|
121
|
+
table.set_style(DOUBLE_BORDER)
|
|
122
|
+
if len(table.rows) > 0:
|
|
123
|
+
print(table)
|
|
124
|
+
|
|
93
125
|
def print_table_exclusions(self, exclusions):
|
|
94
|
-
if
|
|
95
|
-
headers = [
|
|
126
|
+
if exclusions:
|
|
127
|
+
headers = [
|
|
128
|
+
"Severity",
|
|
129
|
+
"ID",
|
|
130
|
+
"Where",
|
|
131
|
+
"Create Date",
|
|
132
|
+
"Expired Date",
|
|
133
|
+
"Reason",
|
|
134
|
+
]
|
|
96
135
|
|
|
97
136
|
table = PrettyTable(headers)
|
|
98
137
|
|
|
@@ -102,7 +141,12 @@ class PrinterPrettyTable(PrinterTableGateway):
|
|
|
102
141
|
exclusion["id"],
|
|
103
142
|
exclusion["where"],
|
|
104
143
|
format_date(exclusion["create_date"], "%d%m%Y", "%d/%m/%Y"),
|
|
105
|
-
|
|
144
|
+
(
|
|
145
|
+
format_date(exclusion["expired_date"], "%d%m%Y", "%d/%m/%Y")
|
|
146
|
+
if exclusion["expired_date"]
|
|
147
|
+
and exclusion["expired_date"] != "undefined"
|
|
148
|
+
else "NA"
|
|
149
|
+
),
|
|
106
150
|
exclusion["reason"],
|
|
107
151
|
]
|
|
108
152
|
table.add_row(row_data)
|
|
@@ -113,3 +157,12 @@ class PrinterPrettyTable(PrinterTableGateway):
|
|
|
113
157
|
table.set_style(DOUBLE_BORDER)
|
|
114
158
|
if len(table.rows) > 0:
|
|
115
159
|
print(table)
|
|
160
|
+
|
|
161
|
+
def _check_spaces(self, value):
|
|
162
|
+
values = value.split()
|
|
163
|
+
new_value = ""
|
|
164
|
+
if len(values) > 1:
|
|
165
|
+
new_value = "\n".join(values)
|
|
166
|
+
else:
|
|
167
|
+
new_value = f"{values[0]}"
|
|
168
|
+
return new_value
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.printer_table_gateway import (
|
|
4
|
+
PrinterTableGateway,
|
|
5
|
+
)
|
|
6
|
+
from devsecops_engine_tools.engine_core.src.domain.model.finding import (
|
|
7
|
+
Finding,
|
|
8
|
+
)
|
|
9
|
+
from devsecops_engine_tools.engine_core.src.domain.model.report import (
|
|
10
|
+
Report,
|
|
11
|
+
)
|
|
12
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
13
|
+
format_date,
|
|
14
|
+
)
|
|
15
|
+
from rich.console import Console
|
|
16
|
+
from rich.table import Table
|
|
17
|
+
from rich import box
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@dataclass
|
|
21
|
+
class PrinterRichTable(PrinterTableGateway):
|
|
22
|
+
def print_table_findings(self, finding_list: "list[Finding]"):
|
|
23
|
+
# To implement
|
|
24
|
+
return
|
|
25
|
+
|
|
26
|
+
def print_table_report(self, report_list: "list[Report]"):
|
|
27
|
+
sorted_report_list = sorted(
|
|
28
|
+
report_list, key=lambda report: report.risk_score, reverse=True
|
|
29
|
+
)
|
|
30
|
+
headers = ["Risk Score", "ID", "Tags", "Services"]
|
|
31
|
+
table = Table(
|
|
32
|
+
show_header=True, header_style="bold magenta", box=box.DOUBLE_EDGE
|
|
33
|
+
)
|
|
34
|
+
for header in headers:
|
|
35
|
+
table.add_column(header)
|
|
36
|
+
for report in sorted_report_list:
|
|
37
|
+
row_data = [
|
|
38
|
+
str(report.risk_score),
|
|
39
|
+
self._check_spaces(report.vm_id, report.vm_id_url),
|
|
40
|
+
", ".join(report.tags),
|
|
41
|
+
report.service,
|
|
42
|
+
]
|
|
43
|
+
table.add_row(*row_data)
|
|
44
|
+
console = Console()
|
|
45
|
+
console.print(table)
|
|
46
|
+
|
|
47
|
+
def print_table_exclusions(self, exclusions_list):
|
|
48
|
+
headers = []
|
|
49
|
+
if exclusions_list:
|
|
50
|
+
headers = ["ID", "Tags", "Service", "Create Date", "Expired Date", "Reason"]
|
|
51
|
+
table = Table(
|
|
52
|
+
show_header=True, header_style="bold magenta", box=box.DOUBLE_EDGE
|
|
53
|
+
)
|
|
54
|
+
for header in headers:
|
|
55
|
+
table.add_column(header)
|
|
56
|
+
for exclusion in exclusions_list:
|
|
57
|
+
row_data = [
|
|
58
|
+
self._check_spaces(exclusion["vm_id"], exclusion["vm_id_url"]),
|
|
59
|
+
", ".join(exclusion["tags"]),
|
|
60
|
+
exclusion["service"],
|
|
61
|
+
format_date(exclusion["create_date"], "%d%m%Y", "%d/%m/%Y"),
|
|
62
|
+
(
|
|
63
|
+
format_date(exclusion["expired_date"], "%d%m%Y", "%d/%m/%Y")
|
|
64
|
+
if exclusion["expired_date"]
|
|
65
|
+
and exclusion["expired_date"] != "undefined"
|
|
66
|
+
else "NA"
|
|
67
|
+
),
|
|
68
|
+
exclusion["reason"],
|
|
69
|
+
]
|
|
70
|
+
table.add_row(*row_data)
|
|
71
|
+
console = Console()
|
|
72
|
+
console.print(table)
|
|
73
|
+
|
|
74
|
+
def _check_spaces(self, value, url):
|
|
75
|
+
values = value.split()
|
|
76
|
+
urls = url.split()
|
|
77
|
+
new_value = ""
|
|
78
|
+
if len(values) > 1 or len(urls) > 1:
|
|
79
|
+
for value, url in zip(values, urls):
|
|
80
|
+
new_value += self._make_hyperlink(value, url) + " "
|
|
81
|
+
else:
|
|
82
|
+
new_value = self._make_hyperlink(values[0], urls[0])
|
|
83
|
+
return new_value
|
|
84
|
+
|
|
85
|
+
def _make_hyperlink(self, value, url):
|
|
86
|
+
return f"[link={url}]{value}[/link]"
|
|
@@ -130,14 +130,14 @@ class BreakBuild:
|
|
|
130
130
|
print(
|
|
131
131
|
self.devops_platform_gateway.message(
|
|
132
132
|
"succeeded",
|
|
133
|
-
f"Remediation
|
|
133
|
+
f"Remediation rate {remediation_rate_value}% is greater than {risk_threshold}%",
|
|
134
134
|
)
|
|
135
135
|
)
|
|
136
136
|
elif remediation_rate_value >= risk_threshold:
|
|
137
137
|
print(
|
|
138
138
|
self.devops_platform_gateway.message(
|
|
139
139
|
"warning",
|
|
140
|
-
f"Remediation
|
|
140
|
+
f"Remediation rate {remediation_rate_value}% is close to {risk_threshold}%",
|
|
141
141
|
)
|
|
142
142
|
)
|
|
143
143
|
self.warning_build = True
|
|
@@ -145,7 +145,7 @@ class BreakBuild:
|
|
|
145
145
|
print(
|
|
146
146
|
self.devops_platform_gateway.message(
|
|
147
147
|
"error",
|
|
148
|
-
f"Remediation
|
|
148
|
+
f"Remediation rate {remediation_rate_value}% is less than {risk_threshold}%",
|
|
149
149
|
)
|
|
150
150
|
)
|
|
151
151
|
self.break_build = True
|
|
@@ -162,6 +162,10 @@ class BreakBuild:
|
|
|
162
162
|
"create_date": exclusion.create_date,
|
|
163
163
|
"expired_date": exclusion.expired_date,
|
|
164
164
|
"reason": exclusion.reason,
|
|
165
|
+
"vm_id": exclusion.vm_id,
|
|
166
|
+
"vm_id_url": exclusion.vm_id_url,
|
|
167
|
+
"service": exclusion.service,
|
|
168
|
+
"tags": exclusion.tags,
|
|
165
169
|
}
|
|
166
170
|
for exclusion in exclusions
|
|
167
171
|
]
|
|
@@ -179,9 +183,15 @@ class BreakBuild:
|
|
|
179
183
|
and report.vuln_id_from_tool == exclusion.id
|
|
180
184
|
)
|
|
181
185
|
or (report.id and report.id == exclusion.id)
|
|
186
|
+
or (report.vm_id and exclusion.id in report.vm_id)
|
|
182
187
|
) and ((exclusion.where in report.where) or (exclusion.where == "all")):
|
|
183
188
|
exclude = True
|
|
184
|
-
|
|
189
|
+
exclusion_copy = copy.deepcopy(exclusion)
|
|
190
|
+
exclusion_copy.vm_id = report.vm_id
|
|
191
|
+
exclusion_copy.vm_id_url = report.vm_id_url
|
|
192
|
+
exclusion_copy.service = report.service
|
|
193
|
+
exclusion_copy.tags = report.tags
|
|
194
|
+
applied_exclusions.append(exclusion_copy)
|
|
185
195
|
break
|
|
186
196
|
if not exclude:
|
|
187
197
|
report.reason = "Remediation Rate"
|
|
@@ -214,7 +224,7 @@ class BreakBuild:
|
|
|
214
224
|
print(
|
|
215
225
|
self.devops_platform_gateway.message(
|
|
216
226
|
"error",
|
|
217
|
-
f"Report {report.
|
|
227
|
+
f"Report {report.vm_id} with tag {tag} is blacklisted and age {report.age} is above threshold {tag_age_threshold}",
|
|
218
228
|
)
|
|
219
229
|
)
|
|
220
230
|
|
|
@@ -222,7 +232,7 @@ class BreakBuild:
|
|
|
222
232
|
print(
|
|
223
233
|
self.devops_platform_gateway.message(
|
|
224
234
|
"warning",
|
|
225
|
-
f"Report {report.
|
|
235
|
+
f"Report {report.vm_id} with tag {tag} is blacklisted but age {report.age} is below threshold {tag_age_threshold}",
|
|
226
236
|
)
|
|
227
237
|
)
|
|
228
238
|
|
|
@@ -258,9 +268,7 @@ class BreakBuild:
|
|
|
258
268
|
break_build = True
|
|
259
269
|
report.reason = "Risk Score"
|
|
260
270
|
self.report_breaker.append(copy.deepcopy(report))
|
|
261
|
-
print(
|
|
262
|
-
"Below are open vulnerabilities from Vulnerability Management Platform"
|
|
263
|
-
)
|
|
271
|
+
print("Below are open findings from Vulnerability Management Platform")
|
|
264
272
|
self.printer_table_gateway.print_table_report(
|
|
265
273
|
report_list,
|
|
266
274
|
)
|
|
@@ -284,7 +292,8 @@ class BreakBuild:
|
|
|
284
292
|
else:
|
|
285
293
|
print(
|
|
286
294
|
self.devops_platform_gateway.message(
|
|
287
|
-
"succeeded",
|
|
295
|
+
"succeeded",
|
|
296
|
+
"There are no open findings from Vulnerability Management Platform",
|
|
288
297
|
)
|
|
289
298
|
)
|
|
290
299
|
|
|
@@ -295,7 +304,7 @@ class BreakBuild:
|
|
|
295
304
|
"warning", "Bellow are all findings that were excepted"
|
|
296
305
|
)
|
|
297
306
|
)
|
|
298
|
-
self.printer_table_gateway.
|
|
307
|
+
self.printer_table_gateway.print_table_report_exlusions(applied_exclusions)
|
|
299
308
|
for reason, total in Counter(
|
|
300
309
|
map(lambda x: x["reason"], applied_exclusions)
|
|
301
310
|
).items():
|