devsecops-engine-tools 1.14.6__tar.gz → 1.15.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of devsecops-engine-tools might be problematic. Click here for more details.
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/PKG-INFO +1 -1
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +1 -1
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/report.py +3 -1
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +7 -1
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/runner_report_sonar.py +110 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py +63 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py +194 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/sonarqube_report.py +112 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py +37 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/utils.py +8 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/ssh/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/utils/utils.py +13 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools/version.py +1 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/PKG-INFO +1 -1
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/SOURCES.txt +18 -0
- devsecops_engine_tools-1.15.0/devsecops_engine_tools.egg-info/entry_points.txt +3 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/setup.py +2 -1
- devsecops_engine_tools-1.14.6/devsecops_engine_tools/engine_utilities/utils/utils.py +0 -8
- devsecops_engine_tools-1.14.6/devsecops_engine_tools/version.py +0 -1
- devsecops_engine_tools-1.14.6/devsecops_engine_tools.egg-info/entry_points.txt +0 -2
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/README.md +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/first_epss_csv.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/runner_engine_code.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/code_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_deserealizator.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_cloud_manager_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/prisma_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/trivy_manager_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/git_run.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/model/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/git_gateway.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/models/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/input_validations/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
- {devsecops_engine_tools-1.14.6/devsecops_engine_tools/engine_utilities/ssh → devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube}/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6/devsecops_engine_tools/engine_utilities/utils → devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src}/__init__.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/requires.txt +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
- {devsecops_engine_tools-1.14.6 → devsecops_engine_tools-1.15.0}/setup.cfg +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from abc import ABCMeta, abstractmethod
|
|
2
2
|
|
|
3
3
|
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import VulnerabilityManagement
|
|
4
|
-
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import DevopsPlatformGateway
|
|
5
5
|
|
|
6
6
|
class VulnerabilityManagementGateway(metaclass=ABCMeta):
|
|
7
7
|
@abstractmethod
|
|
@@ -31,4 +31,6 @@ class Report:
|
|
|
31
31
|
self.component_name = kwargs.get("component_name", "")
|
|
32
32
|
self.component_version = kwargs.get("component_version", "")
|
|
33
33
|
self.file_path = kwargs.get("file_path", "")
|
|
34
|
-
self.endpoints = kwargs.get("endpoints", "")
|
|
34
|
+
self.endpoints = kwargs.get("endpoints", "")
|
|
35
|
+
self.unique_id_from_tool = kwargs.get("unique_id_from_tool", "")
|
|
36
|
+
self.out_of_scope = kwargs.get("out_of_scope", "")
|
|
@@ -5,6 +5,9 @@ from devsecops_engine_tools.engine_core.src.domain.model.gateway.vulnerability_m
|
|
|
5
5
|
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import (
|
|
6
6
|
VulnerabilityManagement,
|
|
7
7
|
)
|
|
8
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
|
|
9
|
+
DevopsPlatformGateway
|
|
10
|
+
)
|
|
8
11
|
from devsecops_engine_tools.engine_utilities.defect_dojo import (
|
|
9
12
|
DefectDojo,
|
|
10
13
|
ImportScanRequest,
|
|
@@ -67,7 +70,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
67
70
|
"KUBESCAPE": "Kubescape Scanner",
|
|
68
71
|
"KICS": "KICS Scanner",
|
|
69
72
|
"BEARER": "Bearer CLI",
|
|
70
|
-
"DEPENDENCY_CHECK": "Dependency Check Scan"
|
|
73
|
+
"DEPENDENCY_CHECK": "Dependency Check Scan",
|
|
74
|
+
"SONARQUBE": "SonarQube API Import"
|
|
71
75
|
}
|
|
72
76
|
|
|
73
77
|
if any(
|
|
@@ -426,6 +430,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
426
430
|
risk_accepted=finding.risk_accepted,
|
|
427
431
|
false_p=finding.false_p,
|
|
428
432
|
service=finding.service,
|
|
433
|
+
unique_id_from_tool=finding.unique_id_from_tool,
|
|
434
|
+
out_of_scope=finding.out_of_scope
|
|
429
435
|
)
|
|
430
436
|
|
|
431
437
|
def _format_date_to_dd_format(self, date_string):
|
|
File without changes
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.aws.secrets_manager import (
|
|
2
|
+
SecretsManager
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.azure.azure_devops import (
|
|
5
|
+
AzureDevops
|
|
6
|
+
)
|
|
7
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.defect_dojo.defect_dojo import (
|
|
8
|
+
DefectDojoPlatform
|
|
9
|
+
)
|
|
10
|
+
from devsecops_engine_tools.engine_utilities.sonarqube.src.infrastructure.driven_adapters.sonarqube.sonarqube_report import(
|
|
11
|
+
SonarAdapter
|
|
12
|
+
)
|
|
13
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.driven_adapters.aws.s3_manager import (
|
|
14
|
+
S3Manager,
|
|
15
|
+
)
|
|
16
|
+
from devsecops_engine_tools.engine_utilities.sonarqube.src.infrastructure.entry_points.entry_point_report_sonar import (
|
|
17
|
+
init_report_sonar
|
|
18
|
+
)
|
|
19
|
+
import sys
|
|
20
|
+
import argparse
|
|
21
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
22
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
23
|
+
|
|
24
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
25
|
+
|
|
26
|
+
def get_inputs_from_cli(args):
|
|
27
|
+
parser = argparse.ArgumentParser()
|
|
28
|
+
parser.add_argument(
|
|
29
|
+
"-rcf",
|
|
30
|
+
"--remote_config_repo",
|
|
31
|
+
type=str,
|
|
32
|
+
required=True,
|
|
33
|
+
help="Name of Config Repo",
|
|
34
|
+
)
|
|
35
|
+
parser.add_argument(
|
|
36
|
+
"--use_secrets_manager",
|
|
37
|
+
choices=["true", "false"],
|
|
38
|
+
type=str,
|
|
39
|
+
required=True,
|
|
40
|
+
help="Use Secrets Manager to get the tokens",
|
|
41
|
+
)
|
|
42
|
+
parser.add_argument(
|
|
43
|
+
"--send_metrics",
|
|
44
|
+
choices=["true", "false"],
|
|
45
|
+
type=str,
|
|
46
|
+
required=False,
|
|
47
|
+
help="Enable or Disable the send metrics to the driven adapter metrics",
|
|
48
|
+
)
|
|
49
|
+
parser.add_argument(
|
|
50
|
+
"--sonar_url",
|
|
51
|
+
required=False,
|
|
52
|
+
help="Url to access sonar API",
|
|
53
|
+
)
|
|
54
|
+
parser.add_argument(
|
|
55
|
+
"--token_cmdb",
|
|
56
|
+
required=False,
|
|
57
|
+
help="Token to connect to the CMDB"
|
|
58
|
+
)
|
|
59
|
+
parser.add_argument(
|
|
60
|
+
"--token_vulnerability_management",
|
|
61
|
+
required=False,
|
|
62
|
+
help="Token to connect to the Vulnerability Management",
|
|
63
|
+
)
|
|
64
|
+
parser.add_argument(
|
|
65
|
+
"--token_sonar",
|
|
66
|
+
required=False,
|
|
67
|
+
help="Token to access sonar server",
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
args = parser.parse_args()
|
|
71
|
+
return {
|
|
72
|
+
"remote_config_repo": args.remote_config_repo,
|
|
73
|
+
"use_secrets_manager": args.use_secrets_manager,
|
|
74
|
+
"send_metrics": args.send_metrics,
|
|
75
|
+
"sonar_url": args.sonar_url,
|
|
76
|
+
"token_cmdb": args.token_cmdb,
|
|
77
|
+
"token_vulnerability_management": args.token_vulnerability_management,
|
|
78
|
+
"token_sonar": args.token_sonar,
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
def runner_report_sonar():
|
|
82
|
+
try:
|
|
83
|
+
vulnerability_management_gateway = DefectDojoPlatform()
|
|
84
|
+
secrets_manager_gateway = SecretsManager()
|
|
85
|
+
devops_platform_gateway = AzureDevops()
|
|
86
|
+
sonar_gateway = SonarAdapter()
|
|
87
|
+
metrics_manager_gateway = S3Manager()
|
|
88
|
+
args = get_inputs_from_cli(sys.argv[1:])
|
|
89
|
+
|
|
90
|
+
init_report_sonar(
|
|
91
|
+
vulnerability_management_gateway=vulnerability_management_gateway,
|
|
92
|
+
secrets_manager_gateway=secrets_manager_gateway,
|
|
93
|
+
devops_platform_gateway=devops_platform_gateway,
|
|
94
|
+
sonar_gateway=sonar_gateway,
|
|
95
|
+
metrics_manager_gateway=metrics_manager_gateway,
|
|
96
|
+
args=args,
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
except Exception as e:
|
|
100
|
+
logger.error("Error report_sonar: {0} ".format(str(e)))
|
|
101
|
+
print(
|
|
102
|
+
devops_platform_gateway.message(
|
|
103
|
+
"error", "Error report_sonar: {0} ".format(str(e))
|
|
104
|
+
)
|
|
105
|
+
)
|
|
106
|
+
print(devops_platform_gateway.result_pipeline("failed"))
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
if __name__ == "__main__":
|
|
110
|
+
runner_report_sonar()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from abc import (
|
|
2
|
+
ABCMeta,
|
|
3
|
+
abstractmethod
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
class SonarGateway(metaclass=ABCMeta):
|
|
7
|
+
@abstractmethod
|
|
8
|
+
def get_project_keys(
|
|
9
|
+
self,
|
|
10
|
+
pipeline_name: str
|
|
11
|
+
):
|
|
12
|
+
"get sonar project keys"
|
|
13
|
+
|
|
14
|
+
@abstractmethod
|
|
15
|
+
def parse_project_key(
|
|
16
|
+
self,
|
|
17
|
+
file_path: str
|
|
18
|
+
):
|
|
19
|
+
"find project key in metadata file"
|
|
20
|
+
|
|
21
|
+
@abstractmethod
|
|
22
|
+
def create_task_report_from_string(
|
|
23
|
+
self,
|
|
24
|
+
file_content: str
|
|
25
|
+
):
|
|
26
|
+
"make dict from metadata file"
|
|
27
|
+
|
|
28
|
+
@abstractmethod
|
|
29
|
+
def filter_by_sonarqube_tag(
|
|
30
|
+
self,
|
|
31
|
+
findings: list
|
|
32
|
+
):
|
|
33
|
+
"search for sonar findings"
|
|
34
|
+
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def change_finding_status(
|
|
37
|
+
self,
|
|
38
|
+
sonar_url: str,
|
|
39
|
+
sonar_token: str,
|
|
40
|
+
endpoint: str,
|
|
41
|
+
data: dict,
|
|
42
|
+
finding_type: str
|
|
43
|
+
):
|
|
44
|
+
"use API to change vulnerabilities state in sonar"
|
|
45
|
+
|
|
46
|
+
@abstractmethod
|
|
47
|
+
def get_findings(
|
|
48
|
+
self,
|
|
49
|
+
sonar_url: str,
|
|
50
|
+
sonar_token: str,
|
|
51
|
+
endpoint: str,
|
|
52
|
+
params: dict,
|
|
53
|
+
finding_type: str
|
|
54
|
+
):
|
|
55
|
+
"use API to get project findings in sonar"
|
|
56
|
+
|
|
57
|
+
@abstractmethod
|
|
58
|
+
def search_finding_by_id(
|
|
59
|
+
self,
|
|
60
|
+
findings: list,
|
|
61
|
+
finding_id: str
|
|
62
|
+
):
|
|
63
|
+
"search a finding by id"
|
|
File without changes
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.sonarqube.src.infrastructure.helpers.utils import (
|
|
2
|
+
set_repository
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
5
|
+
define_env
|
|
6
|
+
)
|
|
7
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.vulnerability_management_gateway import (
|
|
8
|
+
VulnerabilityManagementGateway
|
|
9
|
+
)
|
|
10
|
+
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import (
|
|
11
|
+
VulnerabilityManagement
|
|
12
|
+
)
|
|
13
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.secrets_manager_gateway import (
|
|
14
|
+
SecretsManagerGateway
|
|
15
|
+
)
|
|
16
|
+
from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform_gateway import (
|
|
17
|
+
DevopsPlatformGateway
|
|
18
|
+
)
|
|
19
|
+
from devsecops_engine_tools.engine_utilities.sonarqube.src.domain.model.gateways.sonar_gateway import (
|
|
20
|
+
SonarGateway
|
|
21
|
+
)
|
|
22
|
+
from devsecops_engine_tools.engine_core.src.domain.model.input_core import (
|
|
23
|
+
InputCore
|
|
24
|
+
)
|
|
25
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
26
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
27
|
+
|
|
28
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
29
|
+
|
|
30
|
+
class ReportSonar:
|
|
31
|
+
def __init__(
|
|
32
|
+
self,
|
|
33
|
+
vulnerability_management_gateway: VulnerabilityManagementGateway,
|
|
34
|
+
secrets_manager_gateway: SecretsManagerGateway,
|
|
35
|
+
devops_platform_gateway: DevopsPlatformGateway,
|
|
36
|
+
sonar_gateway: SonarGateway
|
|
37
|
+
):
|
|
38
|
+
self.vulnerability_management_gateway = vulnerability_management_gateway
|
|
39
|
+
self.secrets_manager_gateway = secrets_manager_gateway
|
|
40
|
+
self.devops_platform_gateway = devops_platform_gateway
|
|
41
|
+
self.sonar_gateway = sonar_gateway
|
|
42
|
+
|
|
43
|
+
def process(self, args):
|
|
44
|
+
pipeline_name = self.devops_platform_gateway.get_variable("pipeline_name")
|
|
45
|
+
branch = self.devops_platform_gateway.get_variable("branch_name")
|
|
46
|
+
input_core = InputCore(
|
|
47
|
+
[],
|
|
48
|
+
{},
|
|
49
|
+
"",
|
|
50
|
+
"",
|
|
51
|
+
"",
|
|
52
|
+
self.devops_platform_gateway.get_variable("stage").capitalize(),
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
compact_remote_config_url = self.devops_platform_gateway.get_base_compact_remote_config_url(args["remote_config_repo"])
|
|
56
|
+
source_code_management_uri = set_repository(
|
|
57
|
+
pipeline_name,
|
|
58
|
+
self.devops_platform_gateway.get_source_code_management_uri()
|
|
59
|
+
)
|
|
60
|
+
config_tool = self.devops_platform_gateway.get_remote_config(
|
|
61
|
+
args["remote_config_repo"],
|
|
62
|
+
"/engine_core/ConfigTool.json"
|
|
63
|
+
)
|
|
64
|
+
environment = define_env(None, branch)
|
|
65
|
+
|
|
66
|
+
if args["use_secrets_manager"] == "true":
|
|
67
|
+
secret = self.secrets_manager_gateway.get_secret(config_tool)
|
|
68
|
+
else:
|
|
69
|
+
secret = args
|
|
70
|
+
|
|
71
|
+
report_config_tool = self.devops_platform_gateway.get_remote_config(
|
|
72
|
+
args["remote_config_repo"],
|
|
73
|
+
"/report_sonar/ConfigTool.json"
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
get_components = report_config_tool["PIPELINE_COMPONENTS"].get(pipeline_name)
|
|
77
|
+
if get_components:
|
|
78
|
+
project_keys = [f"{pipeline_name}_{component}" for component in get_components]
|
|
79
|
+
print(f"Multiple project keys detected: {project_keys}")
|
|
80
|
+
logger.info(f"Multiple project keys detected: {project_keys}")
|
|
81
|
+
else:
|
|
82
|
+
project_keys = self.sonar_gateway.get_project_keys(pipeline_name)
|
|
83
|
+
|
|
84
|
+
args["tool"] = "sonarqube"
|
|
85
|
+
vulnerability_manager = VulnerabilityManagement(
|
|
86
|
+
scan_type = "SONARQUBE",
|
|
87
|
+
input_core = input_core,
|
|
88
|
+
dict_args = args,
|
|
89
|
+
secret_tool = self.secrets_manager_gateway,
|
|
90
|
+
config_tool = config_tool,
|
|
91
|
+
source_code_management_uri = source_code_management_uri,
|
|
92
|
+
base_compact_remote_config_url = compact_remote_config_url,
|
|
93
|
+
access_token = self.devops_platform_gateway.get_variable("access_token"),
|
|
94
|
+
version = self.devops_platform_gateway.get_variable("build_execution_id"),
|
|
95
|
+
build_id = self.devops_platform_gateway.get_variable("build_id"),
|
|
96
|
+
branch_tag = branch,
|
|
97
|
+
commit_hash = self.devops_platform_gateway.get_variable("commit_hash"),
|
|
98
|
+
environment = environment
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
for project_key in project_keys:
|
|
102
|
+
try:
|
|
103
|
+
findings = self.vulnerability_management_gateway.get_all(
|
|
104
|
+
service=project_key,
|
|
105
|
+
dict_args=args,
|
|
106
|
+
secret_tool=self.secrets_manager_gateway,
|
|
107
|
+
config_tool=config_tool
|
|
108
|
+
)[0]
|
|
109
|
+
filtered_findings = self.sonar_gateway.filter_by_sonarqube_tag(findings)
|
|
110
|
+
|
|
111
|
+
sonar_vulnerabilities = self.sonar_gateway.get_findings(
|
|
112
|
+
args["sonar_url"],
|
|
113
|
+
secret["token_sonar"],
|
|
114
|
+
"/api/issues/search",
|
|
115
|
+
{
|
|
116
|
+
"componentKeys": project_key,
|
|
117
|
+
"types": "VULNERABILITY",
|
|
118
|
+
"ps": 500,
|
|
119
|
+
"p": 1,
|
|
120
|
+
"s": "CREATION_DATE",
|
|
121
|
+
"asc": "false"
|
|
122
|
+
},
|
|
123
|
+
"issues"
|
|
124
|
+
)
|
|
125
|
+
sonar_hotspots = self.sonar_gateway.get_findings(
|
|
126
|
+
args["sonar_url"],
|
|
127
|
+
secret["token_sonar"],
|
|
128
|
+
"/api/hotspots/search",
|
|
129
|
+
{
|
|
130
|
+
"projectKey": project_key,
|
|
131
|
+
"ps": 100,
|
|
132
|
+
"p": 1,
|
|
133
|
+
},
|
|
134
|
+
"hotspots"
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
sonar_findings = sonar_vulnerabilities + sonar_hotspots
|
|
138
|
+
|
|
139
|
+
for finding in filtered_findings:
|
|
140
|
+
related_sonar_finding = self.sonar_gateway.search_finding_by_id(
|
|
141
|
+
sonar_findings,
|
|
142
|
+
finding.unique_id_from_tool
|
|
143
|
+
)
|
|
144
|
+
status = None
|
|
145
|
+
if related_sonar_finding:
|
|
146
|
+
if related_sonar_finding.get("type") == "VULNERABILITY":
|
|
147
|
+
if finding.active and related_sonar_finding["status"] == "RESOLVED": status = "reopen"
|
|
148
|
+
elif related_sonar_finding["status"] != "RESOLVED":
|
|
149
|
+
if finding.false_p: status = "falsepositive"
|
|
150
|
+
elif finding.risk_accepted: status = "close"
|
|
151
|
+
elif finding.risk_accepted or finding.out_of_scope: status = "wontfix"
|
|
152
|
+
if status:
|
|
153
|
+
self.sonar_gateway.change_finding_status(
|
|
154
|
+
args["sonar_url"],
|
|
155
|
+
secret["token_sonar"],
|
|
156
|
+
"/api/issues/do_transition",
|
|
157
|
+
{
|
|
158
|
+
"issue": related_sonar_finding["key"],
|
|
159
|
+
"transition": status
|
|
160
|
+
},
|
|
161
|
+
"issue"
|
|
162
|
+
)
|
|
163
|
+
else:
|
|
164
|
+
resolution = None
|
|
165
|
+
if finding.active and related_sonar_finding["status"] == "REVIEWED": status = "TO_REVIEW"
|
|
166
|
+
elif related_sonar_finding["status"] == "TO_REVIEW":
|
|
167
|
+
if finding.false_p: resolution = "SAFE"
|
|
168
|
+
elif finding.risk_accepted or finding.out_of_scope: resolution = "ACKNOWLEDGED"
|
|
169
|
+
if resolution: status = "REVIEWED"
|
|
170
|
+
if status:
|
|
171
|
+
data = {
|
|
172
|
+
"hotspot": related_sonar_finding["key"],
|
|
173
|
+
"status": status,
|
|
174
|
+
"resolution": resolution
|
|
175
|
+
}
|
|
176
|
+
if not resolution: data.pop("resolution")
|
|
177
|
+
self.sonar_gateway.change_finding_status(
|
|
178
|
+
args["sonar_url"],
|
|
179
|
+
secret["token_sonar"],
|
|
180
|
+
"/api/hotspots/change_status",
|
|
181
|
+
data,
|
|
182
|
+
"hotspot"
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
except Exception as e:
|
|
186
|
+
logger.warning(f"It was not possible to synchronize Sonar and Vulnerability Manager: {e}")
|
|
187
|
+
|
|
188
|
+
input_core.scope_pipeline = project_key
|
|
189
|
+
self.vulnerability_management_gateway.send_vulnerability_management(
|
|
190
|
+
vulnerability_management=vulnerability_manager
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
input_core.scope_pipeline = pipeline_name
|
|
194
|
+
return input_core
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.utils.utils import (
|
|
2
|
+
Utils
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_utilities.sonarqube.src.domain.model.gateways.sonar_gateway import (
|
|
5
|
+
SonarGateway
|
|
6
|
+
)
|
|
7
|
+
import os
|
|
8
|
+
import re
|
|
9
|
+
import requests
|
|
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
|
+
class SonarAdapter(SonarGateway):
|
|
16
|
+
def get_project_keys(self, pipeline_name):
|
|
17
|
+
project_keys = [pipeline_name]
|
|
18
|
+
sonar_scanner_params = os.getenv("SONARQUBE_SCANNER_PARAMS", "")
|
|
19
|
+
pattern = r'"sonar\.scanner\.metadataFilePath":"(.*?)"'
|
|
20
|
+
match_result = re.search(pattern, sonar_scanner_params)
|
|
21
|
+
|
|
22
|
+
if match_result and match_result.group(1):
|
|
23
|
+
metadata_file_path = match_result.group(1)
|
|
24
|
+
project_key_found = self.parse_project_key(metadata_file_path)
|
|
25
|
+
|
|
26
|
+
if project_key_found:
|
|
27
|
+
print(f"ProjectKey scanner params: {project_key_found}")
|
|
28
|
+
project_keys = [project_key_found]
|
|
29
|
+
|
|
30
|
+
return project_keys
|
|
31
|
+
|
|
32
|
+
def parse_project_key(self, file_path):
|
|
33
|
+
try:
|
|
34
|
+
with open(file_path, 'r', encoding='utf-8') as f:
|
|
35
|
+
file_content = f.read()
|
|
36
|
+
print(f"[SQ] Parse Task report file:\n{file_content}")
|
|
37
|
+
if not file_content or len(file_content) <= 0:
|
|
38
|
+
print("[SQ] Error reading file")
|
|
39
|
+
logger.warning("[SQ] Error reading file")
|
|
40
|
+
return None
|
|
41
|
+
try:
|
|
42
|
+
settings = self.create_task_report_from_string(file_content)
|
|
43
|
+
return settings.get("projectKey")
|
|
44
|
+
except Exception as err:
|
|
45
|
+
print(f"[SQ] Parse Task report error: {err}")
|
|
46
|
+
logger.warning(f"[SQ] Parse Task report error: {err}")
|
|
47
|
+
return None
|
|
48
|
+
except Exception as err:
|
|
49
|
+
logger.warning(f"[SQ] Error reading file: {str(err)}")
|
|
50
|
+
return None
|
|
51
|
+
|
|
52
|
+
def create_task_report_from_string(self, file_content):
|
|
53
|
+
lines = file_content.replace('\r\n', '\n').split('\n')
|
|
54
|
+
settings = {}
|
|
55
|
+
for line in lines:
|
|
56
|
+
split_line = line.split('=')
|
|
57
|
+
if len(split_line) > 1:
|
|
58
|
+
settings[split_line[0]] = '='.join(split_line[1:])
|
|
59
|
+
return settings
|
|
60
|
+
|
|
61
|
+
def filter_by_sonarqube_tag(self, findings):
|
|
62
|
+
return [finding for finding in findings if "sonarqube" in finding.tags]
|
|
63
|
+
|
|
64
|
+
def change_finding_status(self, sonar_url, sonar_token, endpoint, data, finding_type):
|
|
65
|
+
try:
|
|
66
|
+
response = requests.post(
|
|
67
|
+
f"{sonar_url}{endpoint}",
|
|
68
|
+
headers={
|
|
69
|
+
"Authorization": f"Basic {Utils().encode_token_to_base64(sonar_token)}"
|
|
70
|
+
},
|
|
71
|
+
data=data
|
|
72
|
+
)
|
|
73
|
+
response.raise_for_status()
|
|
74
|
+
|
|
75
|
+
if finding_type == "issue":
|
|
76
|
+
info = data["transition"]
|
|
77
|
+
else:
|
|
78
|
+
resolution_info = ""
|
|
79
|
+
if data.get("resolution"): resolution_info = f" ({data['resolution']})"
|
|
80
|
+
|
|
81
|
+
info = f"{data['status']}{resolution_info}"
|
|
82
|
+
|
|
83
|
+
print(f"The state of the {finding_type} {data[finding_type]} was changed to {info}.")
|
|
84
|
+
except Exception as e:
|
|
85
|
+
logger.warning(f"Unable to change the status of {finding_type} {data[finding_type]}. Error: {e}")
|
|
86
|
+
pass
|
|
87
|
+
|
|
88
|
+
def get_findings(self, sonar_url, sonar_token, endpoint, params, finding_type):
|
|
89
|
+
findings = []
|
|
90
|
+
try:
|
|
91
|
+
while True:
|
|
92
|
+
response = requests.get(
|
|
93
|
+
f"{sonar_url}{endpoint}",
|
|
94
|
+
headers={
|
|
95
|
+
"Authorization": f"Basic {Utils().encode_token_to_base64(sonar_token)}"
|
|
96
|
+
},
|
|
97
|
+
params=params
|
|
98
|
+
)
|
|
99
|
+
response.raise_for_status()
|
|
100
|
+
data = response.json()
|
|
101
|
+
|
|
102
|
+
findings.extend(data[finding_type])
|
|
103
|
+
if len(data[finding_type]) < params["ps"]: break
|
|
104
|
+
params["p"] = params["p"] + 1
|
|
105
|
+
|
|
106
|
+
return findings
|
|
107
|
+
except Exception as e:
|
|
108
|
+
logger.warning(f"It was not possible to obtain the {finding_type}: {str(e)}")
|
|
109
|
+
return []
|
|
110
|
+
|
|
111
|
+
def search_finding_by_id(self, issues, issue_id):
|
|
112
|
+
return next((issue for issue in issues if issue["key"] in issue_id), None)
|
|
File without changes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.sonarqube.src.domain.usecases.report_sonar import (
|
|
2
|
+
ReportSonar
|
|
3
|
+
)
|
|
4
|
+
from devsecops_engine_tools.engine_utilities.utils.printers import (
|
|
5
|
+
Printers,
|
|
6
|
+
)
|
|
7
|
+
from devsecops_engine_tools.engine_core.src.domain.usecases.metrics_manager import (
|
|
8
|
+
MetricsManager,
|
|
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
|
+
def init_report_sonar(vulnerability_management_gateway, secrets_manager_gateway, devops_platform_gateway, sonar_gateway, metrics_manager_gateway, args):
|
|
16
|
+
config_tool = devops_platform_gateway.get_remote_config(
|
|
17
|
+
args["remote_config_repo"], "/engine_core/ConfigTool.json"
|
|
18
|
+
)
|
|
19
|
+
Printers.print_logo_tool(config_tool["BANNER"])
|
|
20
|
+
|
|
21
|
+
if config_tool["REPORT_SONAR"]["ENABLED"] == "true":
|
|
22
|
+
input_core = ReportSonar(
|
|
23
|
+
vulnerability_management_gateway,
|
|
24
|
+
secrets_manager_gateway,
|
|
25
|
+
devops_platform_gateway,
|
|
26
|
+
sonar_gateway
|
|
27
|
+
).process(args)
|
|
28
|
+
|
|
29
|
+
if args["send_metrics"] == "true":
|
|
30
|
+
MetricsManager(devops_platform_gateway, metrics_manager_gateway).process(
|
|
31
|
+
config_tool, input_core, {"tool": "report_sonar"}, ""
|
|
32
|
+
)
|
|
33
|
+
else:
|
|
34
|
+
print(
|
|
35
|
+
devops_platform_gateway.message(
|
|
36
|
+
"warning", "DevSecOps Engine Tool - {0} in maintenance...".format("report_sonar")),
|
|
37
|
+
)
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import re
|
|
2
|
+
|
|
3
|
+
def set_repository(pipeline_name, source_code_management):
|
|
4
|
+
if re.search('_MR_', pipeline_name) is None:
|
|
5
|
+
return source_code_management
|
|
6
|
+
else:
|
|
7
|
+
splittedPipeline = pipeline_name.split('_MR_')
|
|
8
|
+
return source_code_management + '?path=/' + splittedPipeline[1]
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import zipfile
|
|
2
|
+
import base64
|
|
3
|
+
|
|
4
|
+
class Utils:
|
|
5
|
+
|
|
6
|
+
def unzip_file(self, zip_file_path, extract_path):
|
|
7
|
+
with zipfile.ZipFile(zip_file_path, "r") as zip_ref:
|
|
8
|
+
zip_ref.extractall(extract_path)
|
|
9
|
+
|
|
10
|
+
def encode_token_to_base64(self, token):
|
|
11
|
+
token_bytes = f"{token}:".encode("utf-8")
|
|
12
|
+
base64_token = base64.b64encode(token_bytes).decode("utf-8")
|
|
13
|
+
return base64_token
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = '1.15.0'
|
|
@@ -284,6 +284,24 @@ devsecops_engine_tools/engine_utilities/github/models/__init__.py
|
|
|
284
284
|
devsecops_engine_tools/engine_utilities/input_validations/__init__.py
|
|
285
285
|
devsecops_engine_tools/engine_utilities/input_validations/env_utils.py
|
|
286
286
|
devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py
|
|
287
|
+
devsecops_engine_tools/engine_utilities/sonarqube/__init__.py
|
|
288
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/__init__.py
|
|
289
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/applications/__init__.py
|
|
290
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/applications/runner_report_sonar.py
|
|
291
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/__init__.py
|
|
292
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/__init__.py
|
|
293
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/__init__.py
|
|
294
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py
|
|
295
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/__init__.py
|
|
296
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py
|
|
297
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/__init__.py
|
|
298
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/__init__.py
|
|
299
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/__init__.py
|
|
300
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/sonarqube_report.py
|
|
301
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/__init__.py
|
|
302
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py
|
|
303
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/__init__.py
|
|
304
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/utils.py
|
|
287
305
|
devsecops_engine_tools/engine_utilities/ssh/__init__.py
|
|
288
306
|
devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py
|
|
289
307
|
devsecops_engine_tools/engine_utilities/utils/__init__.py
|