devsecops-engine-tools 1.7.15__tar.gz → 1.7.17__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.7.15 → devsecops_engine_tools-1.7.17}/PKG-INFO +1 -1
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +1 -0
- devsecops_engine_tools-1.7.17/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +90 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +2 -2
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +9 -2
- devsecops_engine_tools-1.7.17/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +100 -0
- devsecops_engine_tools-1.7.17/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +64 -0
- devsecops_engine_tools-1.7.17/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +63 -0
- devsecops_engine_tools-1.7.17/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +106 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +5 -4
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/find_artifacts.py +3 -2
- devsecops_engine_tools-1.7.17/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools.egg-info/PKG-INFO +1 -1
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools.egg-info/SOURCES.txt +0 -1
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -56
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +0 -119
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +0 -65
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +0 -51
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +0 -114
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/images_scanned.py +0 -16
- devsecops_engine_tools-1.7.15/devsecops_engine_tools/version.py +0 -1
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/README.md +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/report.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/azuredevops/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/github/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/github/models/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/input_validations/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/ssh/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools.egg-info/entry_points.txt +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools.egg-info/requires.txt +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/setup.cfg +0 -0
- {devsecops_engine_tools-1.7.15 → devsecops_engine_tools-1.7.17}/setup.py +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.tool_gateway import (
|
|
2
|
+
ToolGateway,
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.images_gateway import (
|
|
5
|
+
ImagesGateway,
|
|
6
|
+
)
|
|
7
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.deserealizator_gateway import (
|
|
8
|
+
DeseralizatorGateway,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
import os
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ContainerScaScan:
|
|
15
|
+
def __init__(
|
|
16
|
+
self,
|
|
17
|
+
tool_run: ToolGateway,
|
|
18
|
+
remote_config,
|
|
19
|
+
tool_images: ImagesGateway,
|
|
20
|
+
tool_deseralizator: DeseralizatorGateway,
|
|
21
|
+
build_id,
|
|
22
|
+
token,
|
|
23
|
+
):
|
|
24
|
+
self.tool_run = tool_run
|
|
25
|
+
self.remote_config = remote_config
|
|
26
|
+
self.tool_images = tool_images
|
|
27
|
+
self.tool_deseralizator = tool_deseralizator
|
|
28
|
+
self.build_id = build_id
|
|
29
|
+
self.token = token
|
|
30
|
+
|
|
31
|
+
def get_latest_image(self):
|
|
32
|
+
"""
|
|
33
|
+
Process the list of images.
|
|
34
|
+
|
|
35
|
+
Returns:
|
|
36
|
+
list: List of processed images.
|
|
37
|
+
"""
|
|
38
|
+
return self.tool_images.list_images()
|
|
39
|
+
|
|
40
|
+
def get_images_already_scanned(self):
|
|
41
|
+
"""
|
|
42
|
+
Create images scanned file if it does not exist and get the images that have already been scanned.
|
|
43
|
+
"""
|
|
44
|
+
scanned_images_file = os.path.join(os.getcwd(), "scanned_images.txt")
|
|
45
|
+
if not os.path.exists(scanned_images_file):
|
|
46
|
+
open(scanned_images_file, "w").close()
|
|
47
|
+
with open(scanned_images_file, "r") as file:
|
|
48
|
+
images_scanned = file.read().splitlines()
|
|
49
|
+
return images_scanned
|
|
50
|
+
|
|
51
|
+
def set_image_scanned(self, result_file):
|
|
52
|
+
"""
|
|
53
|
+
Write in scanned_images.txt the result file
|
|
54
|
+
"""
|
|
55
|
+
with open("scanned_images.txt", "a") as file:
|
|
56
|
+
file.write(result_file + "\n")
|
|
57
|
+
|
|
58
|
+
def process(self):
|
|
59
|
+
"""
|
|
60
|
+
Process SCA scanning.
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
string: file scanning results name.
|
|
64
|
+
"""
|
|
65
|
+
latest_image = self.get_latest_image()
|
|
66
|
+
image_name = latest_image.tags[0]
|
|
67
|
+
image_scanned = None
|
|
68
|
+
if str(self.build_id) in image_name:
|
|
69
|
+
result_file = image_name + "_scan_result.json"
|
|
70
|
+
if result_file in self.get_images_already_scanned():
|
|
71
|
+
print(f"The image {image_name} has already been scanned previously.")
|
|
72
|
+
return image_scanned
|
|
73
|
+
image_scanned = self.tool_run.run_tool_container_sca(
|
|
74
|
+
self.remote_config, self.token, image_name, result_file
|
|
75
|
+
)
|
|
76
|
+
self.set_image_scanned(result_file)
|
|
77
|
+
else:
|
|
78
|
+
print(
|
|
79
|
+
f"'{image_name}' name does not contain build number '{self.build_id}'. Tool skipped."
|
|
80
|
+
)
|
|
81
|
+
return image_scanned
|
|
82
|
+
|
|
83
|
+
def deseralizator(self, image_scanned):
|
|
84
|
+
"""
|
|
85
|
+
Process the results deserializer.
|
|
86
|
+
|
|
87
|
+
Returns:
|
|
88
|
+
list: Deserialized list of findings.
|
|
89
|
+
"""
|
|
90
|
+
return self.tool_deseralizator.get_list_findings(image_scanned)
|
|
@@ -31,7 +31,7 @@ class SetInputCore:
|
|
|
31
31
|
]
|
|
32
32
|
return list_exclusions
|
|
33
33
|
|
|
34
|
-
def set_input_core(self,
|
|
34
|
+
def set_input_core(self, image_scanned):
|
|
35
35
|
"""
|
|
36
36
|
Set the input core.
|
|
37
37
|
|
|
@@ -45,7 +45,7 @@ class SetInputCore:
|
|
|
45
45
|
self.tool,
|
|
46
46
|
),
|
|
47
47
|
Threshold(self.remote_config["THRESHOLD"]),
|
|
48
|
-
|
|
48
|
+
image_scanned,
|
|
49
49
|
self.remote_config["MESSAGE_INFO_ENGINE_CONTAINER"],
|
|
50
50
|
self.pipeline_name,
|
|
51
51
|
self.stage.capitalize(),
|
|
@@ -4,6 +4,11 @@ from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateway
|
|
|
4
4
|
)
|
|
5
5
|
import docker
|
|
6
6
|
|
|
7
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
8
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
9
|
+
|
|
10
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
11
|
+
|
|
7
12
|
|
|
8
13
|
class DockerImages(ImagesGateway):
|
|
9
14
|
def list_images(self):
|
|
@@ -18,5 +23,7 @@ class DockerImages(ImagesGateway):
|
|
|
18
23
|
print("Tag last image:", latest_image.tags)
|
|
19
24
|
print("Created date last image:", latest_image.attrs["Created"])
|
|
20
25
|
return latest_image
|
|
21
|
-
except
|
|
22
|
-
|
|
26
|
+
except Exception as e:
|
|
27
|
+
logger.error(
|
|
28
|
+
f"Error listing images, docker must be running and added to PATH: {e}"
|
|
29
|
+
)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import stat
|
|
2
|
+
import requests
|
|
3
|
+
import os
|
|
4
|
+
import subprocess
|
|
5
|
+
import logging
|
|
6
|
+
import base64
|
|
7
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.tool_gateway import (
|
|
8
|
+
ToolGateway,
|
|
9
|
+
)
|
|
10
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
11
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
12
|
+
|
|
13
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class PrismaCloudManagerScan(ToolGateway):
|
|
17
|
+
def download_twistcli(
|
|
18
|
+
self,
|
|
19
|
+
file_path,
|
|
20
|
+
prisma_access_key,
|
|
21
|
+
prisma_secret_key,
|
|
22
|
+
prisma_console_url,
|
|
23
|
+
prisma_api_version,
|
|
24
|
+
):
|
|
25
|
+
url = f"{prisma_console_url}/api/{prisma_api_version}/util/twistcli"
|
|
26
|
+
credentials = base64.b64encode(
|
|
27
|
+
f"{prisma_access_key}:{prisma_secret_key}".encode()
|
|
28
|
+
).decode()
|
|
29
|
+
headers = {"Authorization": f"Basic {credentials}"}
|
|
30
|
+
try:
|
|
31
|
+
response = requests.get(url, headers=headers)
|
|
32
|
+
response.raise_for_status()
|
|
33
|
+
|
|
34
|
+
with open(file_path, "wb") as file:
|
|
35
|
+
file.write(response.content)
|
|
36
|
+
|
|
37
|
+
os.chmod(file_path, stat.S_IRWXU)
|
|
38
|
+
logging.info(f"twistcli downloaded and saved to: {file_path}")
|
|
39
|
+
return 0
|
|
40
|
+
|
|
41
|
+
except Exception as e:
|
|
42
|
+
raise ValueError(f"Error downloading twistcli: {e}")
|
|
43
|
+
|
|
44
|
+
def scan_image(
|
|
45
|
+
self, file_path, image_name, result_file, remoteconfig, prisma_secret_key
|
|
46
|
+
):
|
|
47
|
+
command = (
|
|
48
|
+
file_path,
|
|
49
|
+
"images",
|
|
50
|
+
"scan",
|
|
51
|
+
"--address",
|
|
52
|
+
remoteconfig["PRISMA_CLOUD"]["PRISMA_CONSOLE_URL"],
|
|
53
|
+
"--user",
|
|
54
|
+
remoteconfig["PRISMA_CLOUD"]["PRISMA_ACCESS_KEY"],
|
|
55
|
+
"--password",
|
|
56
|
+
prisma_secret_key,
|
|
57
|
+
"--output-file",
|
|
58
|
+
result_file,
|
|
59
|
+
"--details",
|
|
60
|
+
image_name,
|
|
61
|
+
)
|
|
62
|
+
try:
|
|
63
|
+
subprocess.run(
|
|
64
|
+
command,
|
|
65
|
+
check=True,
|
|
66
|
+
stdout=subprocess.PIPE,
|
|
67
|
+
stderr=subprocess.PIPE,
|
|
68
|
+
text=True,
|
|
69
|
+
)
|
|
70
|
+
print(f"The image {image_name} was scanned")
|
|
71
|
+
|
|
72
|
+
return result_file
|
|
73
|
+
|
|
74
|
+
except subprocess.CalledProcessError as e:
|
|
75
|
+
logger.error(f"Error during image scan of {image_name}: {e.stderr}")
|
|
76
|
+
|
|
77
|
+
def run_tool_container_sca(
|
|
78
|
+
self, remoteconfig, prisma_secret_key, image_name, result_file
|
|
79
|
+
):
|
|
80
|
+
file_path = os.path.join(
|
|
81
|
+
os.getcwd(), remoteconfig["PRISMA_CLOUD"]["TWISTCLI_PATH"]
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
if not os.path.exists(file_path):
|
|
85
|
+
self.download_twistcli(
|
|
86
|
+
file_path,
|
|
87
|
+
remoteconfig["PRISMA_CLOUD"]["PRISMA_ACCESS_KEY"],
|
|
88
|
+
prisma_secret_key,
|
|
89
|
+
remoteconfig["PRISMA_CLOUD"]["PRISMA_CONSOLE_URL"],
|
|
90
|
+
remoteconfig["PRISMA_CLOUD"]["PRISMA_API_VERSION"],
|
|
91
|
+
)
|
|
92
|
+
image_scanned = self.scan_image(
|
|
93
|
+
file_path,
|
|
94
|
+
image_name,
|
|
95
|
+
result_file,
|
|
96
|
+
remoteconfig,
|
|
97
|
+
prisma_secret_key,
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
return image_scanned
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.deserealizator_gateway import (
|
|
2
|
+
DeseralizatorGateway,
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.domain.model.finding import (
|
|
5
|
+
Finding,
|
|
6
|
+
Category,
|
|
7
|
+
)
|
|
8
|
+
from datetime import datetime
|
|
9
|
+
from dataclasses import dataclass
|
|
10
|
+
import json
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class PrismaDeserealizator(DeseralizatorGateway):
|
|
15
|
+
def get_list_findings(self, image_scanned) -> "list[Finding]":
|
|
16
|
+
list_open_vulnerabilities = []
|
|
17
|
+
SEVERITY_MAP = {
|
|
18
|
+
"unimportant": "low",
|
|
19
|
+
"unassigned": "low",
|
|
20
|
+
"negligible": "low",
|
|
21
|
+
"not yet assigned": "low",
|
|
22
|
+
"low": "low",
|
|
23
|
+
"medium": "medium",
|
|
24
|
+
"moderate": "medium",
|
|
25
|
+
"high": "high",
|
|
26
|
+
"important": "high",
|
|
27
|
+
"critical": "critical",
|
|
28
|
+
}
|
|
29
|
+
with open(image_scanned, "rb") as file:
|
|
30
|
+
image_object = file.read()
|
|
31
|
+
|
|
32
|
+
json_data = json.loads(image_object)
|
|
33
|
+
vulnerabilities_data = (
|
|
34
|
+
json_data["results"][0]["vulnerabilities"]
|
|
35
|
+
if "vulnerabilities" in json_data["results"][0]
|
|
36
|
+
else []
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
# Create a list of findings instances from the JSON data
|
|
40
|
+
vulnerabilities = [
|
|
41
|
+
Finding(
|
|
42
|
+
id=vul.get("id", ""),
|
|
43
|
+
cvss=float(vul.get("cvss", 0.0)),
|
|
44
|
+
where=vul.get("packageName", "")
|
|
45
|
+
+ ":"
|
|
46
|
+
+ vul.get("packageVersion", ""),
|
|
47
|
+
description=vul.get("description", "")[:150],
|
|
48
|
+
severity=SEVERITY_MAP.get(vul.get("severity", ""), ""),
|
|
49
|
+
identification_date=datetime.strptime(
|
|
50
|
+
vul.get("discoveredDate", ""), "%Y-%m-%dT%H:%M:%S%z"
|
|
51
|
+
),
|
|
52
|
+
published_date_cve=vul.get("publishedDate", "").replace("Z", "+00:00"),
|
|
53
|
+
module="engine_container",
|
|
54
|
+
category=Category.VULNERABILITY,
|
|
55
|
+
requirements=vul.get("status", ""),
|
|
56
|
+
tool="PrismaCloud",
|
|
57
|
+
)
|
|
58
|
+
for vul in vulnerabilities_data
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
# Add the Vulnerability instances to the list
|
|
62
|
+
list_open_vulnerabilities.extend(vulnerabilities)
|
|
63
|
+
|
|
64
|
+
return list_open_vulnerabilities
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.deserealizator_gateway import (
|
|
2
|
+
DeseralizatorGateway,
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.domain.model.finding import (
|
|
5
|
+
Finding,
|
|
6
|
+
Category,
|
|
7
|
+
)
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
import json
|
|
10
|
+
from datetime import datetime, timezone
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@dataclass
|
|
14
|
+
class TrivyDeserializator(DeseralizatorGateway):
|
|
15
|
+
def check_date_format(self, vul):
|
|
16
|
+
try:
|
|
17
|
+
published_date_cve=datetime.strptime(
|
|
18
|
+
vul.get("PublishedDate"),
|
|
19
|
+
"%Y-%m-%dT%H:%M:%S.%fZ"
|
|
20
|
+
).replace(tzinfo=timezone.utc).isoformat()
|
|
21
|
+
except:
|
|
22
|
+
published_date_cve=datetime.strptime(
|
|
23
|
+
vul.get("PublishedDate"),
|
|
24
|
+
"%Y-%m-%dT%H:%M:%SZ"
|
|
25
|
+
).replace(tzinfo=timezone.utc).isoformat()
|
|
26
|
+
return published_date_cve
|
|
27
|
+
|
|
28
|
+
def get_list_findings(self, image_scanned) -> "list[Finding]":
|
|
29
|
+
list_open_vulnerabilities = []
|
|
30
|
+
with open(image_scanned, "rb") as file:
|
|
31
|
+
image_object = file.read()
|
|
32
|
+
json_data = json.loads(image_object)
|
|
33
|
+
vulnerabilities_data = json_data["Results"][0].get("Vulnerabilities", [])
|
|
34
|
+
vulnerabilities = [
|
|
35
|
+
Finding(
|
|
36
|
+
id=vul.get("VulnerabilityID", ""),
|
|
37
|
+
cvss=str(next(
|
|
38
|
+
(
|
|
39
|
+
v["V3Score"]
|
|
40
|
+
for v in vul["CVSS"].values()
|
|
41
|
+
if "V3Score" in v
|
|
42
|
+
),
|
|
43
|
+
None,
|
|
44
|
+
)),
|
|
45
|
+
where=vul.get("PkgName", "")
|
|
46
|
+
+ " "
|
|
47
|
+
+ vul.get("InstalledVersion", ""),
|
|
48
|
+
description=vul.get("Description", "").replace("\n", "")[:150],
|
|
49
|
+
severity=vul.get("Severity", "").lower(),
|
|
50
|
+
identification_date=datetime.now().strftime(
|
|
51
|
+
"%Y-%m-%dT%H:%M:%S%z"
|
|
52
|
+
),
|
|
53
|
+
published_date_cve=self.check_date_format(vul),
|
|
54
|
+
module="engine_container",
|
|
55
|
+
category=Category.VULNERABILITY,
|
|
56
|
+
requirements=vul.get("FixedVersion") or vul.get("Status", ""),
|
|
57
|
+
tool="Trivy",
|
|
58
|
+
)
|
|
59
|
+
for vul in vulnerabilities_data
|
|
60
|
+
if vul.get("CVSS") and vul.get("PublishedDate")
|
|
61
|
+
]
|
|
62
|
+
list_open_vulnerabilities.extend(vulnerabilities)
|
|
63
|
+
return list_open_vulnerabilities
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.tool_gateway import (
|
|
2
|
+
ToolGateway,
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
import subprocess
|
|
6
|
+
import platform
|
|
7
|
+
import requests
|
|
8
|
+
import tarfile
|
|
9
|
+
import zipfile
|
|
10
|
+
|
|
11
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
12
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
13
|
+
|
|
14
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class TrivyScan(ToolGateway):
|
|
18
|
+
def download_tool(self, file, url):
|
|
19
|
+
try:
|
|
20
|
+
response = requests.get(url, allow_redirects=True)
|
|
21
|
+
with open(file, "wb") as compress_file:
|
|
22
|
+
compress_file.write(response.content)
|
|
23
|
+
except Exception as e:
|
|
24
|
+
logger.error(f"Error downloading trivy: {e}")
|
|
25
|
+
|
|
26
|
+
def install_tool(self, file, url):
|
|
27
|
+
installed = subprocess.run(
|
|
28
|
+
["which", "./trivy"],
|
|
29
|
+
stdout=subprocess.PIPE,
|
|
30
|
+
stderr=subprocess.PIPE,
|
|
31
|
+
)
|
|
32
|
+
if installed.returncode == 1:
|
|
33
|
+
try:
|
|
34
|
+
self.download_tool(file, url)
|
|
35
|
+
with tarfile.open(file, 'r:gz') as tar_file:
|
|
36
|
+
tar_file.extract(member=tar_file.getmember("trivy"))
|
|
37
|
+
except Exception as e:
|
|
38
|
+
logger.error(f"Error installing trivy: {e}")
|
|
39
|
+
|
|
40
|
+
def install_tool_windows(self, file, url):
|
|
41
|
+
try:
|
|
42
|
+
subprocess.run(
|
|
43
|
+
["./trivy.exe", "--version"],
|
|
44
|
+
stdout=subprocess.PIPE,
|
|
45
|
+
stderr=subprocess.PIPE,
|
|
46
|
+
)
|
|
47
|
+
except:
|
|
48
|
+
try:
|
|
49
|
+
self.download_tool(file, url)
|
|
50
|
+
with zipfile.ZipFile(file, 'r') as zip_file:
|
|
51
|
+
zip_file.extract(member="trivy.exe")
|
|
52
|
+
except Exception as e:
|
|
53
|
+
logger.error(f"Error installing trivy: {e}")
|
|
54
|
+
|
|
55
|
+
def scan_image(self, prefix, image_name, result_file):
|
|
56
|
+
command = [
|
|
57
|
+
prefix,
|
|
58
|
+
"--scanners",
|
|
59
|
+
"vuln",
|
|
60
|
+
"-f",
|
|
61
|
+
"json",
|
|
62
|
+
"-o",
|
|
63
|
+
result_file,
|
|
64
|
+
]
|
|
65
|
+
command.extend(["--quiet", "image", image_name])
|
|
66
|
+
try:
|
|
67
|
+
subprocess.run(
|
|
68
|
+
command,
|
|
69
|
+
check=True,
|
|
70
|
+
stdout=subprocess.PIPE,
|
|
71
|
+
stderr=subprocess.PIPE,
|
|
72
|
+
text=True,
|
|
73
|
+
)
|
|
74
|
+
print(f"The image {image_name} was scanned")
|
|
75
|
+
|
|
76
|
+
return result_file
|
|
77
|
+
|
|
78
|
+
except Exception as e:
|
|
79
|
+
logger.error(f"Error during image scan of {image_name}: {e}")
|
|
80
|
+
|
|
81
|
+
def run_tool_container_sca(self, remoteconfig, token, image_name, result_file):
|
|
82
|
+
trivy_version = remoteconfig["TRIVY"]["TRIVY_VERSION"]
|
|
83
|
+
os_platform = platform.system()
|
|
84
|
+
base_url = f"https://github.com/aquasecurity/trivy/releases/download/v{trivy_version}/"
|
|
85
|
+
|
|
86
|
+
if os_platform == "Linux":
|
|
87
|
+
file=f"trivy_{trivy_version}_Linux-64bit.tar.gz"
|
|
88
|
+
self.install_tool(file, base_url+file)
|
|
89
|
+
command_prefix = "./trivy"
|
|
90
|
+
elif os_platform == "Darwin":
|
|
91
|
+
file=f"trivy_{trivy_version}_macOS-64bit.tar.gz"
|
|
92
|
+
self.install_tool(file, base_url+file)
|
|
93
|
+
command_prefix = "./trivy"
|
|
94
|
+
elif os_platform == "Windows":
|
|
95
|
+
file=f"trivy_{trivy_version}_windows-64bit.zip"
|
|
96
|
+
self.install_tool_windows(file, base_url+file)
|
|
97
|
+
command_prefix = "./trivy.exe"
|
|
98
|
+
else:
|
|
99
|
+
logger.warning(f"{os_platform} is not supported.")
|
|
100
|
+
return None
|
|
101
|
+
|
|
102
|
+
image_scanned = (
|
|
103
|
+
self.scan_image(command_prefix, image_name, result_file)
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
return image_scanned
|
|
@@ -36,7 +36,7 @@ def init_engine_sca_rm(
|
|
|
36
36
|
scan_flag = handle_remote_config_patterns.ignore_analysis_pattern()
|
|
37
37
|
build_id = tool_remote.get_variable("build_id")
|
|
38
38
|
stage = tool_remote.get_variable("stage")
|
|
39
|
-
|
|
39
|
+
image_scanned = None
|
|
40
40
|
deseralized = []
|
|
41
41
|
input_core = SetInputCore(remote_config, exclusions, pipeline_name, tool, stage)
|
|
42
42
|
if scan_flag and not (skip_flag):
|
|
@@ -48,11 +48,12 @@ def init_engine_sca_rm(
|
|
|
48
48
|
build_id,
|
|
49
49
|
token,
|
|
50
50
|
)
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
image_scanned = container_sca_scan.process()
|
|
52
|
+
if image_scanned:
|
|
53
|
+
deseralized = container_sca_scan.deseralizator(image_scanned)
|
|
53
54
|
else:
|
|
54
55
|
print("Tool skipped by DevSecOps policy")
|
|
55
56
|
logger.info("Tool skipped by DevSecOps policy")
|
|
56
|
-
core_input = input_core.set_input_core(
|
|
57
|
+
core_input = input_core.set_input_core(image_scanned)
|
|
57
58
|
|
|
58
59
|
return deseralized, core_input
|
|
@@ -89,7 +89,8 @@ class FindArtifacts:
|
|
|
89
89
|
if os.path.isfile(os.path.join(dir_to_scan_path, file))
|
|
90
90
|
]
|
|
91
91
|
if files:
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
files_string = ", ".join(files)
|
|
93
|
+
logger.debug(f"Files to scan: {files_string}")
|
|
94
|
+
print(f"Files to scan: {files_string}")
|
|
94
95
|
|
|
95
96
|
return dir_to_scan_path
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '1.7.17'
|
|
@@ -162,7 +162,6 @@ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_ada
|
|
|
162
162
|
devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py
|
|
163
163
|
devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py
|
|
164
164
|
devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py
|
|
165
|
-
devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/images_scanned.py
|
|
166
165
|
devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py
|
|
167
166
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py
|
|
168
167
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.tool_gateway import (
|
|
2
|
-
ToolGateway,
|
|
3
|
-
)
|
|
4
|
-
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.images_gateway import (
|
|
5
|
-
ImagesGateway,
|
|
6
|
-
)
|
|
7
|
-
from devsecops_engine_tools.engine_sca.engine_container.src.domain.model.gateways.deserealizator_gateway import (
|
|
8
|
-
DeseralizatorGateway,
|
|
9
|
-
)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
class ContainerScaScan:
|
|
13
|
-
def __init__(
|
|
14
|
-
self,
|
|
15
|
-
tool_run: ToolGateway,
|
|
16
|
-
remote_config,
|
|
17
|
-
tool_images: ImagesGateway,
|
|
18
|
-
tool_deseralizator: DeseralizatorGateway,
|
|
19
|
-
build_id,
|
|
20
|
-
token,
|
|
21
|
-
):
|
|
22
|
-
self.tool_run = tool_run
|
|
23
|
-
self.remote_config = remote_config
|
|
24
|
-
self.tool_images = tool_images
|
|
25
|
-
self.tool_deseralizator = tool_deseralizator
|
|
26
|
-
self.build_id = build_id
|
|
27
|
-
self.token = token
|
|
28
|
-
|
|
29
|
-
def scan_image(self):
|
|
30
|
-
"""
|
|
31
|
-
Process the list of images.
|
|
32
|
-
|
|
33
|
-
Returns:
|
|
34
|
-
list: List of processed images.
|
|
35
|
-
"""
|
|
36
|
-
return self.tool_images.list_images()
|
|
37
|
-
|
|
38
|
-
def process(self):
|
|
39
|
-
"""
|
|
40
|
-
Process SCA scanning.
|
|
41
|
-
|
|
42
|
-
Returns:
|
|
43
|
-
dict: SCA scanning results.
|
|
44
|
-
"""
|
|
45
|
-
return self.tool_run.run_tool_container_sca(
|
|
46
|
-
self.remote_config, self.token, self.scan_image(), self.build_id
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
def deseralizator(self, image_scanned):
|
|
50
|
-
"""
|
|
51
|
-
Process the results deserializer.
|
|
52
|
-
|
|
53
|
-
Returns:
|
|
54
|
-
list: Deserialized list of findings.
|
|
55
|
-
"""
|
|
56
|
-
return self.tool_deseralizator.get_list_findings(image_scanned)
|