devsecops-engine-tools 1.8.10__tar.gz → 1.8.12__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.8.10 → devsecops_engine_tools-1.8.12}/PKG-INFO +1 -1
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +5 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +6 -0
- devsecops_engine_tools-1.8.12/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +178 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +28 -0
- devsecops_engine_tools-1.8.12/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py +11 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +1 -2
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +2 -8
- devsecops_engine_tools-1.8.12/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py +41 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +3 -6
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +1 -0
- devsecops_engine_tools-1.8.12/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +16 -0
- devsecops_engine_tools-1.8.12/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py +9 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +41 -10
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +7 -0
- devsecops_engine_tools-1.8.12/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools.egg-info/PKG-INFO +1 -1
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools.egg-info/SOURCES.txt +2 -0
- devsecops_engine_tools-1.8.10/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +0 -101
- devsecops_engine_tools-1.8.10/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py +0 -15
- devsecops_engine_tools-1.8.10/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py +0 -75
- devsecops_engine_tools-1.8.10/devsecops_engine_tools/version.py +0 -1
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/README.md +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/report.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/first_epss_csv.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/azuredevops/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/github/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/github/models/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/input_validations/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/ssh/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools.egg-info/entry_points.txt +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools.egg-info/requires.txt +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/setup.cfg +0 -0
- {devsecops_engine_tools-1.8.10 → devsecops_engine_tools-1.8.12}/setup.py +0 -0
|
@@ -12,3 +12,8 @@ class ExceptionGettingFindings(Exception):
|
|
|
12
12
|
def __init__(self, message):
|
|
13
13
|
self.message = message
|
|
14
14
|
super().__init__(self.message)
|
|
15
|
+
|
|
16
|
+
class ExceptionGettingEngagements(Exception):
|
|
17
|
+
def __init__(self, message):
|
|
18
|
+
self.message = message
|
|
19
|
+
super().__init__(self.message)
|
|
@@ -21,3 +21,9 @@ class VulnerabilityManagementGateway(metaclass=ABCMeta):
|
|
|
21
21
|
self, service, dict_args, secret_tool, config_tool
|
|
22
22
|
):
|
|
23
23
|
"get all findings and exclusions from vulnerability management platform"
|
|
24
|
+
|
|
25
|
+
@abstractmethod
|
|
26
|
+
def get_active_engagements(
|
|
27
|
+
self, engagement_name, dict_args, secret_tool, config_tool
|
|
28
|
+
):
|
|
29
|
+
"get_active_engagements"
|
devsecops_engine_tools-1.8.12/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.vulnerability_management_gateway import (
|
|
2
|
+
VulnerabilityManagementGateway,
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.secrets_manager_gateway import (
|
|
5
|
+
SecretsManagerGateway,
|
|
6
|
+
)
|
|
7
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
|
|
8
|
+
DevopsPlatformGateway,
|
|
9
|
+
)
|
|
10
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.printer_table_gateway import (
|
|
11
|
+
PrinterTableGateway,
|
|
12
|
+
)
|
|
13
|
+
from devsecops_engine_tools.engine_risk.src.applications.runner_engine_risk import (
|
|
14
|
+
runner_engine_risk,
|
|
15
|
+
)
|
|
16
|
+
from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions import (
|
|
17
|
+
ExceptionGettingFindings,
|
|
18
|
+
)
|
|
19
|
+
from devsecops_engine_tools.engine_core.src.domain.model.input_core import InputCore
|
|
20
|
+
import re
|
|
21
|
+
|
|
22
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
23
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
24
|
+
|
|
25
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class HandleRisk:
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
vulnerability_management: VulnerabilityManagementGateway,
|
|
32
|
+
secrets_manager_gateway: SecretsManagerGateway,
|
|
33
|
+
devops_platform_gateway: DevopsPlatformGateway,
|
|
34
|
+
print_table_gateway: PrinterTableGateway,
|
|
35
|
+
):
|
|
36
|
+
self.vulnerability_management = vulnerability_management
|
|
37
|
+
self.secrets_manager_gateway = secrets_manager_gateway
|
|
38
|
+
self.devops_platform_gateway = devops_platform_gateway
|
|
39
|
+
self.print_table_gateway = print_table_gateway
|
|
40
|
+
|
|
41
|
+
def _get_all_from_vm(self, dict_args, secret_tool, remote_config, service):
|
|
42
|
+
try:
|
|
43
|
+
return self.vulnerability_management.get_all(
|
|
44
|
+
service,
|
|
45
|
+
dict_args,
|
|
46
|
+
secret_tool,
|
|
47
|
+
remote_config,
|
|
48
|
+
)
|
|
49
|
+
except ExceptionGettingFindings as e:
|
|
50
|
+
logger.error(
|
|
51
|
+
"Error getting finding list in handle risk: {0}".format(str(e))
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
def _filter_engagements(self, engagements, service, risk_config):
|
|
55
|
+
filtered_engagements = []
|
|
56
|
+
min_word_length = risk_config["HANDLE_SERVICE_NAME"]["MIN_WORD_LENGTH"]
|
|
57
|
+
words = [
|
|
58
|
+
word
|
|
59
|
+
for word in re.split(
|
|
60
|
+
risk_config["HANDLE_SERVICE_NAME"]["REGEX_GET_WORDS"], service
|
|
61
|
+
)
|
|
62
|
+
if len(word) > min_word_length
|
|
63
|
+
]
|
|
64
|
+
check_words_regex = risk_config["HANDLE_SERVICE_NAME"]["REGEX_CHECK_WORDS"]
|
|
65
|
+
min_word_amount = risk_config["HANDLE_SERVICE_NAME"]["MIN_WORD_AMOUNT"]
|
|
66
|
+
for engagement in engagements:
|
|
67
|
+
if service.lower() in engagement.name.lower():
|
|
68
|
+
filtered_engagements += [engagement.name]
|
|
69
|
+
elif re.search(check_words_regex, engagement.name.lower()) and (
|
|
70
|
+
sum(1 for word in words if word.lower() in engagement.name.lower())
|
|
71
|
+
>= min_word_amount
|
|
72
|
+
):
|
|
73
|
+
filtered_engagements += [engagement.name]
|
|
74
|
+
return filtered_engagements
|
|
75
|
+
|
|
76
|
+
def _exclude_services(self, dict_args, pipeline_name, service_list):
|
|
77
|
+
risk_exclusions = self.devops_platform_gateway.get_remote_config(
|
|
78
|
+
dict_args["remote_config_repo"], "engine_risk/Exclusions.json"
|
|
79
|
+
)
|
|
80
|
+
if (
|
|
81
|
+
pipeline_name in risk_exclusions
|
|
82
|
+
and risk_exclusions[pipeline_name].get("SKIP_SERVICE", 0)
|
|
83
|
+
and risk_exclusions[pipeline_name]["SKIP_SERVICE"].get("services", 0)
|
|
84
|
+
):
|
|
85
|
+
services_to_exclude = risk_exclusions[pipeline_name]["SKIP_SERVICE"].get(
|
|
86
|
+
"services", []
|
|
87
|
+
)
|
|
88
|
+
service_excluded = []
|
|
89
|
+
for service in service_list:
|
|
90
|
+
if service in services_to_exclude:
|
|
91
|
+
service_list.remove(service)
|
|
92
|
+
service_excluded += [service]
|
|
93
|
+
print(f"Services to exclude: {service_excluded}")
|
|
94
|
+
logger.info(f"Services to exclude: {service_excluded}")
|
|
95
|
+
return service_list
|
|
96
|
+
|
|
97
|
+
def process(self, dict_args: any, remote_config: any):
|
|
98
|
+
secret_tool = None
|
|
99
|
+
if dict_args["use_secrets_manager"] == "true":
|
|
100
|
+
secret_tool = self.secrets_manager_gateway.get_secret(remote_config)
|
|
101
|
+
|
|
102
|
+
risk_config = self.devops_platform_gateway.get_remote_config(
|
|
103
|
+
dict_args["remote_config_repo"], "engine_risk/ConfigTool.json"
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
pipeline_name = self.devops_platform_gateway.get_variable("pipeline_name")
|
|
107
|
+
service = pipeline_name
|
|
108
|
+
service_list = []
|
|
109
|
+
|
|
110
|
+
if risk_config["HANDLE_SERVICE_NAME"]["ENABLED"].lower() == "true":
|
|
111
|
+
service = next(
|
|
112
|
+
(
|
|
113
|
+
pipeline_name.replace(ending, "")
|
|
114
|
+
for ending in risk_config["HANDLE_SERVICE_NAME"][
|
|
115
|
+
"ERASE_SERVICE_ENDING"
|
|
116
|
+
]
|
|
117
|
+
if pipeline_name.endswith(ending)
|
|
118
|
+
),
|
|
119
|
+
pipeline_name,
|
|
120
|
+
)
|
|
121
|
+
match_service_code = re.match(
|
|
122
|
+
risk_config["HANDLE_SERVICE_NAME"]["REGEX_GET_SERVICE_CODE"], service
|
|
123
|
+
)
|
|
124
|
+
if match_service_code:
|
|
125
|
+
service_code = match_service_code.group(0)
|
|
126
|
+
service_list += [
|
|
127
|
+
service.format(service_code=service_code)
|
|
128
|
+
for service in risk_config["HANDLE_SERVICE_NAME"]["ADD_SERVICES"]
|
|
129
|
+
]
|
|
130
|
+
engagements = self.vulnerability_management.get_active_engagements(
|
|
131
|
+
service_code, dict_args, secret_tool, remote_config
|
|
132
|
+
)
|
|
133
|
+
service_list += self._filter_engagements(
|
|
134
|
+
engagements, service, risk_config
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
service_list += [service]
|
|
138
|
+
|
|
139
|
+
match_parent = re.match(
|
|
140
|
+
risk_config["PARENT_ANALYSIS"]["REGEX_GET_PARENT"], service
|
|
141
|
+
)
|
|
142
|
+
if risk_config["PARENT_ANALYSIS"]["ENABLED"].lower() == "true" and match_parent:
|
|
143
|
+
parent_service = match_parent.group(0)
|
|
144
|
+
service_list += [parent_service]
|
|
145
|
+
|
|
146
|
+
service_list = list(set(service_list))
|
|
147
|
+
new_service_list = self._exclude_services(
|
|
148
|
+
dict_args, pipeline_name, service_list
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
print(f"Services to analyze: {new_service_list}")
|
|
152
|
+
logger.info(f"Services to analyze: {new_service_list}")
|
|
153
|
+
|
|
154
|
+
findings = []
|
|
155
|
+
exclusions = []
|
|
156
|
+
for service in new_service_list:
|
|
157
|
+
findings_list, exclusions_list = self._get_all_from_vm(
|
|
158
|
+
dict_args, secret_tool, remote_config, service
|
|
159
|
+
)
|
|
160
|
+
findings += findings_list
|
|
161
|
+
exclusions += exclusions_list
|
|
162
|
+
|
|
163
|
+
result = runner_engine_risk(
|
|
164
|
+
dict_args,
|
|
165
|
+
findings,
|
|
166
|
+
exclusions,
|
|
167
|
+
self.devops_platform_gateway,
|
|
168
|
+
self.print_table_gateway,
|
|
169
|
+
)
|
|
170
|
+
input_core = InputCore(
|
|
171
|
+
[],
|
|
172
|
+
{},
|
|
173
|
+
"",
|
|
174
|
+
"",
|
|
175
|
+
pipeline_name,
|
|
176
|
+
self.devops_platform_gateway.get_variable("stage").capitalize(),
|
|
177
|
+
)
|
|
178
|
+
return result, input_core
|
|
@@ -10,6 +10,7 @@ from devsecops_engine_tools.engine_utilities.defect_dojo import (
|
|
|
10
10
|
ImportScanRequest,
|
|
11
11
|
Connect,
|
|
12
12
|
Finding,
|
|
13
|
+
Engagement,
|
|
13
14
|
)
|
|
14
15
|
from devsecops_engine_tools.engine_core.src.domain.model.exclusions import Exclusions
|
|
15
16
|
from devsecops_engine_tools.engine_core.src.domain.model.report import Report
|
|
@@ -18,6 +19,7 @@ from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions impo
|
|
|
18
19
|
ExceptionVulnerabilityManagement,
|
|
19
20
|
ExceptionFindingsExcepted,
|
|
20
21
|
ExceptionGettingFindings,
|
|
22
|
+
ExceptionGettingEngagements
|
|
21
23
|
)
|
|
22
24
|
from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
23
25
|
format_date,
|
|
@@ -247,6 +249,32 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
247
249
|
"Error getting all findings with the following error: {0} ".format(ex)
|
|
248
250
|
)
|
|
249
251
|
|
|
252
|
+
def get_active_engagements(self, engagement_name, dict_args, secret_tool, config_tool):
|
|
253
|
+
try:
|
|
254
|
+
request_is = ImportScanRequest(
|
|
255
|
+
token_defect_dojo=dict_args.get("token_vulnerability_management")
|
|
256
|
+
or secret_tool.get("token_defect_dojo"),
|
|
257
|
+
host_defect_dojo=config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
258
|
+
"HOST_DEFECT_DOJO"
|
|
259
|
+
],
|
|
260
|
+
engagement_name=engagement_name,
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
request_active = {
|
|
264
|
+
"name": engagement_name,
|
|
265
|
+
"limit": config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
266
|
+
"LIMITS_QUERY"
|
|
267
|
+
],
|
|
268
|
+
"active": "true",
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return Engagement.get_engagements(request_is, request_active).results
|
|
272
|
+
|
|
273
|
+
except Exception as ex:
|
|
274
|
+
raise ExceptionGettingEngagements(
|
|
275
|
+
"Error getting engagements with the following error: {0} ".format(ex)
|
|
276
|
+
)
|
|
277
|
+
|
|
250
278
|
def _get_session_manager(self, dict_args, secret_tool, config_tool):
|
|
251
279
|
token_dd = dict_args.get("token_vulnerability_management") or secret_tool.get(
|
|
252
280
|
"token_defect_dojo"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from abc import ABCMeta, abstractmethod
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class GitGateway(metaclass=ABCMeta):
|
|
5
|
+
@abstractmethod
|
|
6
|
+
def get_files_pull_request(self, sys_working_dir: str,
|
|
7
|
+
target_branch: str,
|
|
8
|
+
source_branch: str,
|
|
9
|
+
message_info_engine_secret: str
|
|
10
|
+
) -> dict:
|
|
11
|
+
"get_files_pull_request"
|
|
@@ -36,20 +36,14 @@ class SecretScan:
|
|
|
36
36
|
files_pullrequest = self.git_gateway.get_files_pull_request(
|
|
37
37
|
self.devops_platform_gateway.get_variable("path_directory"),
|
|
38
38
|
self.devops_platform_gateway.get_variable("target_branch"),
|
|
39
|
-
config_tool.target_branches,
|
|
40
39
|
self.devops_platform_gateway.get_variable("source_branch"),
|
|
41
|
-
|
|
42
|
-
self.devops_platform_gateway.get_variable("organization"),
|
|
43
|
-
self.devops_platform_gateway.get_variable("project_name"),
|
|
44
|
-
self.devops_platform_gateway.get_variable("repository"),
|
|
45
|
-
self.devops_platform_gateway.get_variable("repository_provider"))
|
|
40
|
+
config_tool.message_info_engine_secret)
|
|
46
41
|
findings, file_path_findings = self.tool_gateway.run_tool_secret_scan(
|
|
47
42
|
files_pullrequest,
|
|
48
43
|
config_tool.exclude_path,
|
|
49
44
|
self.devops_platform_gateway.get_variable("os"),
|
|
50
45
|
self.devops_platform_gateway.get_variable("path_directory"),
|
|
51
|
-
config_tool.number_threads
|
|
52
|
-
self.devops_platform_gateway.get_variable("repository")
|
|
46
|
+
config_tool.number_threads
|
|
53
47
|
)
|
|
54
48
|
finding_list = self.tool_deserialize.get_list_vulnerability(
|
|
55
49
|
findings,
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
import os
|
|
3
|
+
import subprocess
|
|
4
|
+
from devsecops_engine_tools.engine_sast.engine_secret.src.domain.model.gateway.git_gateway import GitGateway
|
|
5
|
+
|
|
6
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
7
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
8
|
+
|
|
9
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
10
|
+
|
|
11
|
+
@dataclass
|
|
12
|
+
class GitRun(GitGateway):
|
|
13
|
+
|
|
14
|
+
def get_files_pull_request(self,
|
|
15
|
+
sys_working_dir,
|
|
16
|
+
target_branch,
|
|
17
|
+
source_branch,
|
|
18
|
+
message_info_engine_secret
|
|
19
|
+
):
|
|
20
|
+
try:
|
|
21
|
+
source_branch = source_branch.replace("refs/heads/", "")
|
|
22
|
+
os.chdir(sys_working_dir)
|
|
23
|
+
subprocess.run(['git', 'checkout', '-b', source_branch, f'origin/{source_branch}'], text=True, capture_output=True, check=True)
|
|
24
|
+
env = os.environ.copy()
|
|
25
|
+
env["GIT_COMMITTER_NAME"] = "Your Name"
|
|
26
|
+
env["GIT_COMMITTER_EMAIL"] = "your.email@example.com"
|
|
27
|
+
env["GIT_AUTHOR_NAME"] = "Your Name"
|
|
28
|
+
env["GIT_AUTHOR_EMAIL"] = "your.email@example.com"
|
|
29
|
+
command = ["git", "rebase", f"origin/{target_branch}", "-X", "theirs"]
|
|
30
|
+
subprocess.run(command, env=env, text=True, capture_output=True)
|
|
31
|
+
|
|
32
|
+
diff = subprocess.run(['git', 'diff', f'origin/{target_branch}..{source_branch}', '--name-only'], capture_output=True, text=True)
|
|
33
|
+
if diff.returncode == 0:
|
|
34
|
+
diff_files = diff.stdout.strip().split("\n")
|
|
35
|
+
print("Pull Requests Associated Files:",diff_files)
|
|
36
|
+
return diff_files
|
|
37
|
+
except subprocess.CalledProcessError as e:
|
|
38
|
+
raise Exception(f"Error in pipeline configuration, {message_info_engine_secret}") from e
|
|
39
|
+
except Exception as e:
|
|
40
|
+
logger.warning(f"Error getting files PullRequest: {e}")
|
|
41
|
+
return []
|
|
@@ -43,8 +43,7 @@ class TrufflehogRun(ToolGateway):
|
|
|
43
43
|
exclude_paths,
|
|
44
44
|
agent_os,
|
|
45
45
|
agent_work_folder,
|
|
46
|
-
num_threads
|
|
47
|
-
repository_name,
|
|
46
|
+
num_threads
|
|
48
47
|
):
|
|
49
48
|
trufflehog_command = "trufflehog"
|
|
50
49
|
if "Windows" in agent_os:
|
|
@@ -60,7 +59,6 @@ class TrufflehogRun(ToolGateway):
|
|
|
60
59
|
[agent_work_folder] * len(include_paths),
|
|
61
60
|
[exclude_path] * len(include_paths),
|
|
62
61
|
include_paths,
|
|
63
|
-
[repository_name] * len(include_paths),
|
|
64
62
|
)
|
|
65
63
|
findings, file_findings = self.create_file(self.decode_output(results), agent_work_folder)
|
|
66
64
|
return findings, file_findings
|
|
@@ -88,10 +86,9 @@ class TrufflehogRun(ToolGateway):
|
|
|
88
86
|
trufflehog_command,
|
|
89
87
|
agent_work_folder,
|
|
90
88
|
exclude_path,
|
|
91
|
-
include_path
|
|
92
|
-
repository_name,
|
|
89
|
+
include_path
|
|
93
90
|
):
|
|
94
|
-
command = f"{trufflehog_command} filesystem {agent_work_folder
|
|
91
|
+
command = f"{trufflehog_command} filesystem {agent_work_folder} --include-paths {include_path} --exclude-paths {exclude_path} --no-verification --json"
|
|
95
92
|
result = subprocess.run(command, capture_output=True, shell=True, text=True)
|
|
96
93
|
return result.stdout.strip()
|
|
97
94
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
2
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.user_case.engagement import EngagementUserCase
|
|
3
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import ImportScanRequest
|
|
4
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.engagement import EngagementRestConsumer
|
|
5
|
+
from devsecops_engine_tools.engine_utilities.utils.session_manager import SessionManager
|
|
6
|
+
|
|
7
|
+
class Engagement:
|
|
8
|
+
@staticmethod
|
|
9
|
+
def get_engagements(request_is: ImportScanRequest, request: dict):
|
|
10
|
+
try:
|
|
11
|
+
rest_engagement = EngagementRestConsumer(request_is, session=SessionManager())
|
|
12
|
+
|
|
13
|
+
uc = EngagementUserCase(rest_engagement)
|
|
14
|
+
return uc.execute(request)
|
|
15
|
+
except ApiError as e:
|
|
16
|
+
raise e
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.engagement import EngagementRestConsumer
|
|
2
|
+
|
|
3
|
+
class EngagementUserCase:
|
|
4
|
+
def __init__(self, rest_engagement: EngagementRestConsumer):
|
|
5
|
+
self.__rest_engagement = rest_engagement
|
|
6
|
+
|
|
7
|
+
def execute(self, request):
|
|
8
|
+
response = self.__rest_engagement.get_engagements_by_request(request)
|
|
9
|
+
return response
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import json
|
|
2
2
|
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
3
3
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
4
|
-
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import (
|
|
5
|
+
ImportScanRequest,
|
|
6
|
+
)
|
|
7
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.settings.settings import (
|
|
8
|
+
VERIFY_CERTIFICATE,
|
|
9
|
+
)
|
|
10
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.models.engagement import (
|
|
11
|
+
Engagement,
|
|
12
|
+
EngagementList,
|
|
13
|
+
)
|
|
7
14
|
from devsecops_engine_tools.engine_utilities.utils.session_manager import SessionManager
|
|
8
15
|
from datetime import datetime
|
|
9
16
|
from devsecops_engine_tools.engine_utilities.settings import SETTING_LOGGER
|
|
@@ -18,18 +25,37 @@ class EngagementRestConsumer:
|
|
|
18
25
|
self.__session = session._instance
|
|
19
26
|
|
|
20
27
|
def get_engagements(self, engagement_name):
|
|
21
|
-
|
|
28
|
+
request = {"name": engagement_name}
|
|
29
|
+
return self.get_engagements_by_request(request)
|
|
22
30
|
|
|
23
|
-
|
|
31
|
+
def get_engagements_by_request(self, request):
|
|
32
|
+
url = f"{self.__host}/api/v2/engagements/"
|
|
33
|
+
headers = {
|
|
34
|
+
"Authorization": f"Token {self.__token}",
|
|
35
|
+
"Content-Type": "application/json",
|
|
36
|
+
}
|
|
24
37
|
try:
|
|
25
|
-
response = self.__session.get(
|
|
38
|
+
response = self.__session.get(
|
|
39
|
+
url=url, headers=headers, params=request, verify=VERIFY_CERTIFICATE
|
|
40
|
+
)
|
|
26
41
|
if response.status_code != 200:
|
|
27
42
|
logger.error(response.json())
|
|
28
43
|
raise ApiError(response.json())
|
|
29
|
-
|
|
44
|
+
engagements = EngagementList().from_dict(response.json())
|
|
45
|
+
while response.json().get("next", None):
|
|
46
|
+
next_url = response.json().get("next")
|
|
47
|
+
next_url = next_url.replace("http://", "https://", 1)
|
|
48
|
+
response = self.__session.get(
|
|
49
|
+
next_url, headers=headers, data={}, verify=VERIFY_CERTIFICATE
|
|
50
|
+
)
|
|
51
|
+
if response.status_code != 200:
|
|
52
|
+
raise ApiError(response.json())
|
|
53
|
+
engagements.results += (
|
|
54
|
+
EngagementList().from_dict(response.json()).results
|
|
55
|
+
)
|
|
30
56
|
except Exception as e:
|
|
31
57
|
raise ApiError(e)
|
|
32
|
-
return
|
|
58
|
+
return engagements
|
|
33
59
|
|
|
34
60
|
def post_engagement(self, engagement_name, product_id):
|
|
35
61
|
url = f"{self.__host}/api/v2/engagements/"
|
|
@@ -43,9 +69,14 @@ class EngagementRestConsumer:
|
|
|
43
69
|
"status": "In Progress",
|
|
44
70
|
}
|
|
45
71
|
)
|
|
46
|
-
headers = {
|
|
72
|
+
headers = {
|
|
73
|
+
"Authorization": f"Token {self.__token}",
|
|
74
|
+
"Content-Type": "application/json",
|
|
75
|
+
}
|
|
47
76
|
try:
|
|
48
|
-
response = self.__session.post(
|
|
77
|
+
response = self.__session.post(
|
|
78
|
+
url=url, headers=headers, data=data, verify=VERIFY_CERTIFICATE
|
|
79
|
+
)
|
|
49
80
|
if response.status_code != 201:
|
|
50
81
|
logger.error(response.json())
|
|
51
82
|
raise ApiError(response.json())
|
|
@@ -23,6 +23,13 @@ class FindingRestConsumer:
|
|
|
23
23
|
if response.status_code != 200:
|
|
24
24
|
raise ApiError(response.json())
|
|
25
25
|
findings = FindingList.from_dict(response.json())
|
|
26
|
+
while response.json().get("next", None):
|
|
27
|
+
next_url = response.json().get("next")
|
|
28
|
+
next_url = next_url.replace("http://", "https://", 1)
|
|
29
|
+
response = self.__session.get(next_url, headers=headers, data={}, verify=VERIFY_CERTIFICATE)
|
|
30
|
+
if response.status_code != 200:
|
|
31
|
+
raise ApiError(response.json())
|
|
32
|
+
findings.results += FindingList.from_dict(response.json()).results
|
|
26
33
|
return findings
|
|
27
34
|
|
|
28
35
|
def close(self, request, id):
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '1.8.12'
|
|
@@ -211,6 +211,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py
|
|
|
211
211
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py
|
|
212
212
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py
|
|
213
213
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py
|
|
214
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py
|
|
214
215
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py
|
|
215
216
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py
|
|
216
217
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py
|
|
@@ -230,6 +231,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.p
|
|
|
230
231
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py
|
|
231
232
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py
|
|
232
233
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py
|
|
234
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py
|
|
233
235
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py
|
|
234
236
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py
|
|
235
237
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py
|
devsecops_engine_tools-1.8.10/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
from devsecops_engine_tools.engine_core.src.domain.model.gateway.vulnerability_management_gateway import (
|
|
2
|
-
VulnerabilityManagementGateway,
|
|
3
|
-
)
|
|
4
|
-
from devsecops_engine_tools.engine_core.src.domain.model.gateway.secrets_manager_gateway import (
|
|
5
|
-
SecretsManagerGateway,
|
|
6
|
-
)
|
|
7
|
-
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
|
|
8
|
-
DevopsPlatformGateway,
|
|
9
|
-
)
|
|
10
|
-
from devsecops_engine_tools.engine_core.src.domain.model.gateway.printer_table_gateway import (
|
|
11
|
-
PrinterTableGateway,
|
|
12
|
-
)
|
|
13
|
-
from devsecops_engine_tools.engine_risk.src.applications.runner_engine_risk import (
|
|
14
|
-
runner_engine_risk,
|
|
15
|
-
)
|
|
16
|
-
from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions import (
|
|
17
|
-
ExceptionGettingFindings,
|
|
18
|
-
)
|
|
19
|
-
from devsecops_engine_tools.engine_core.src.domain.model.input_core import (
|
|
20
|
-
InputCore
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
24
|
-
from devsecops_engine_tools.engine_utilities import settings
|
|
25
|
-
|
|
26
|
-
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class HandleRisk:
|
|
30
|
-
def __init__(
|
|
31
|
-
self,
|
|
32
|
-
vulnerability_management: VulnerabilityManagementGateway,
|
|
33
|
-
secrets_manager_gateway: SecretsManagerGateway,
|
|
34
|
-
devops_platform_gateway: DevopsPlatformGateway,
|
|
35
|
-
print_table_gateway: PrinterTableGateway,
|
|
36
|
-
):
|
|
37
|
-
self.vulnerability_management = vulnerability_management
|
|
38
|
-
self.secrets_manager_gateway = secrets_manager_gateway
|
|
39
|
-
self.devops_platform_gateway = devops_platform_gateway
|
|
40
|
-
self.print_table_gateway = print_table_gateway
|
|
41
|
-
|
|
42
|
-
def _get_all_from_vm(self, dict_args, secret_tool, remote_config, service):
|
|
43
|
-
try:
|
|
44
|
-
return self.vulnerability_management.get_all(
|
|
45
|
-
service,
|
|
46
|
-
dict_args,
|
|
47
|
-
secret_tool,
|
|
48
|
-
remote_config,
|
|
49
|
-
)
|
|
50
|
-
except ExceptionGettingFindings as e:
|
|
51
|
-
logger.error(
|
|
52
|
-
"Error getting finding list in handle risk: {0}".format(str(e))
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
def process(self, dict_args: any, remote_config: any):
|
|
56
|
-
secret_tool = None
|
|
57
|
-
if dict_args["use_secrets_manager"] == "true":
|
|
58
|
-
secret_tool = self.secrets_manager_gateway.get_secret(remote_config)
|
|
59
|
-
|
|
60
|
-
risk_config = self.devops_platform_gateway.get_remote_config(
|
|
61
|
-
dict_args["remote_config_repo"], "engine_risk/ConfigTool.json"
|
|
62
|
-
)
|
|
63
|
-
|
|
64
|
-
service = self.devops_platform_gateway.get_variable("pipeline_name")
|
|
65
|
-
parent_identifier = risk_config["PARENT_ANALYSIS"]["PARENT_IDENTIFIER"]
|
|
66
|
-
|
|
67
|
-
parent_findings = []
|
|
68
|
-
parent_exclusions = []
|
|
69
|
-
if (
|
|
70
|
-
risk_config["PARENT_ANALYSIS"]["ENABLED"].lower() == "true"
|
|
71
|
-
and parent_identifier in service
|
|
72
|
-
):
|
|
73
|
-
parent_service = service.split(parent_identifier)[0] + parent_identifier
|
|
74
|
-
parent_findings, parent_exclusions = self._get_all_from_vm(
|
|
75
|
-
dict_args, secret_tool, remote_config, parent_service
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
findings, exclusions = self._get_all_from_vm(
|
|
79
|
-
dict_args, secret_tool, remote_config, service
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
findings_list = parent_findings + findings
|
|
83
|
-
|
|
84
|
-
exclusions_list = parent_exclusions + exclusions
|
|
85
|
-
|
|
86
|
-
result = runner_engine_risk(
|
|
87
|
-
dict_args,
|
|
88
|
-
findings_list,
|
|
89
|
-
exclusions_list,
|
|
90
|
-
self.devops_platform_gateway,
|
|
91
|
-
self.print_table_gateway,
|
|
92
|
-
)
|
|
93
|
-
input_core = InputCore(
|
|
94
|
-
[],
|
|
95
|
-
{},
|
|
96
|
-
"",
|
|
97
|
-
"",
|
|
98
|
-
service,
|
|
99
|
-
self.devops_platform_gateway.get_variable("stage").capitalize(),
|
|
100
|
-
)
|
|
101
|
-
return result, input_core
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from abc import ABCMeta, abstractmethod
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class GitGateway(metaclass=ABCMeta):
|
|
5
|
-
@abstractmethod
|
|
6
|
-
def get_files_pull_request(self, sys_working_dir: str,
|
|
7
|
-
target_branch: str,
|
|
8
|
-
config_target_branch: dict,
|
|
9
|
-
source_branch: str,
|
|
10
|
-
access_token: str,
|
|
11
|
-
collection_uri: str,
|
|
12
|
-
team_project: str,
|
|
13
|
-
repository_name: str,
|
|
14
|
-
repository_provider: str) -> dict:
|
|
15
|
-
"get_files_pull_request"
|