devsecops-engine-tools 1.14.5__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.

Files changed (320) hide show
  1. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/PKG-INFO +1 -1
  2. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +1 -1
  3. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/report.py +3 -1
  4. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +7 -1
  5. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +2 -2
  6. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/__init__.py +0 -0
  7. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/applications/runner_report_sonar.py +110 -0
  8. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/__init__.py +0 -0
  9. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/__init__.py +0 -0
  10. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/__init__.py +0 -0
  11. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py +63 -0
  12. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/__init__.py +0 -0
  13. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py +194 -0
  14. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/__init__.py +0 -0
  15. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/__init__.py +0 -0
  16. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/__init__.py +0 -0
  17. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/sonarqube_report.py +112 -0
  18. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/__init__.py +0 -0
  19. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py +37 -0
  20. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/__init__.py +0 -0
  21. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/utils.py +8 -0
  22. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/ssh/__init__.py +0 -0
  23. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/utils/__init__.py +0 -0
  24. devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/utils/utils.py +13 -0
  25. devsecops_engine_tools-1.15.0/devsecops_engine_tools/version.py +1 -0
  26. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/PKG-INFO +1 -1
  27. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/SOURCES.txt +18 -0
  28. devsecops_engine_tools-1.15.0/devsecops_engine_tools.egg-info/entry_points.txt +3 -0
  29. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/setup.py +2 -1
  30. devsecops_engine_tools-1.14.5/devsecops_engine_tools/engine_utilities/utils/utils.py +0 -8
  31. devsecops_engine_tools-1.14.5/devsecops_engine_tools/version.py +0 -1
  32. devsecops_engine_tools-1.14.5/devsecops_engine_tools.egg-info/entry_points.txt +0 -2
  33. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/README.md +0 -0
  34. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/__init__.py +0 -0
  35. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/__init__.py +0 -0
  36. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/__init__.py +0 -0
  37. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/applications/__init__.py +0 -0
  38. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +0 -0
  39. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/deployment/__init__.py +0 -0
  40. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py +0 -0
  41. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/__init__.py +0 -0
  42. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/__init__.py +0 -0
  43. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py +0 -0
  44. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/exclusions.py +0 -0
  45. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/finding.py +0 -0
  46. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py +0 -0
  47. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +0 -0
  48. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +0 -0
  49. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py +0 -0
  50. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py +0 -0
  51. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/input_core.py +0 -0
  52. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py +0 -0
  53. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py +0 -0
  54. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/threshold.py +0 -0
  55. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py +0 -0
  56. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py +0 -0
  57. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -0
  58. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py +0 -0
  59. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +0 -0
  60. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +0 -0
  61. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/__init__.py +0 -0
  62. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py +0 -0
  63. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py +0 -0
  64. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +0 -0
  65. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py +0 -0
  66. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py +0 -0
  67. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +0 -0
  68. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py +0 -0
  69. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py +0 -0
  70. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +0 -0
  71. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py +0 -0
  72. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py +0 -0
  73. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py +0 -0
  74. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +0 -0
  75. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py +0 -0
  76. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +0 -0
  77. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py +0 -0
  78. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py +0 -0
  79. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py +0 -0
  80. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/__init__.py +0 -0
  81. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/__init__.py +0 -0
  82. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/applications/__init__.py +0 -0
  83. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/deployment/__init__.py +0 -0
  84. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/deployment/infrastructure/__init__.py +0 -0
  85. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/domain/__init__.py +0 -0
  86. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/domain/model/__init__.py +0 -0
  87. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/domain/usecases/__init__.py +0 -0
  88. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/__init__.py +0 -0
  89. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/driven_adapters/__init__.py +0 -0
  90. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/entry_points/__init__.py +0 -0
  91. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_dast/src/infrastructure/helpers/__init__.py +0 -0
  92. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/__init__.py +0 -0
  93. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/__init__.py +0 -0
  94. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/applications/__init__.py +0 -0
  95. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/applications/runner_engine_risk.py +0 -0
  96. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/deployment/__init__.py +0 -0
  97. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/deployment/infrastructure/__init__.py +0 -0
  98. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/__init__.py +0 -0
  99. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/model/__init__.py +0 -0
  100. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py +0 -0
  101. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py +0 -0
  102. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py +0 -0
  103. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py +0 -0
  104. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +0 -0
  105. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py +0 -0
  106. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py +0 -0
  107. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/__init__.py +0 -0
  108. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/__init__.py +0 -0
  109. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/__init__.py +0 -0
  110. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/driven_adapters/first_csv/first_epss_csv.py +0 -0
  111. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/__init__.py +0 -0
  112. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/entry_points/entry_point_risk.py +0 -0
  113. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_risk/src/infrastructure/helpers/__init__.py +0 -0
  114. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/__init__.py +0 -0
  115. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/__init__.py +0 -0
  116. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/__init__.py +0 -0
  117. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/__init__.py +0 -0
  118. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/applications/runner_engine_code.py +0 -0
  119. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/__init__.py +0 -0
  120. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/deployment/infrastructure/__init__.py +0 -0
  121. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/__init__.py +0 -0
  122. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/__init__.py +0 -0
  123. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/config_tool.py +0 -0
  124. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/__init__.py +0 -0
  125. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/model/gateways/tool_gateway.py +0 -0
  126. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/__init__.py +0 -0
  127. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/domain/usecases/code_scan.py +0 -0
  128. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/__init__.py +0 -0
  129. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/__init__.py +0 -0
  130. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/__init__.py +0 -0
  131. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_deserealizator.py +0 -0
  132. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/driven_adapters/bearer/bearer_tool.py +0 -0
  133. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/__init__.py +0 -0
  134. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/entry_points/entry_point_tool.py +0 -0
  135. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_code/src/infrastructure/helpers/__init__.py +0 -0
  136. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/__init__.py +0 -0
  137. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py +0 -0
  138. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py +0 -0
  139. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +0 -0
  140. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py +0 -0
  141. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py +0 -0
  142. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py +0 -0
  143. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py +0 -0
  144. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +0 -0
  145. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py +0 -0
  146. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py +0 -0
  147. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py +0 -0
  148. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +0 -0
  149. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py +0 -0
  150. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py +0 -0
  151. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py +0 -0
  152. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +0 -0
  153. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py +0 -0
  154. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +0 -0
  155. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py +0 -0
  156. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +0 -0
  157. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +0 -0
  158. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py +0 -0
  159. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py +0 -0
  160. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py +0 -0
  161. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/__init__.py +0 -0
  162. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/entry_points/entry_point_tool.py +0 -0
  163. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/__init__.py +0 -0
  164. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/helpers/file_generator_tool.py +0 -0
  165. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/__init__.py +0 -0
  166. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/__init__.py +0 -0
  167. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/__init__.py +0 -0
  168. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/applications/runner_secret_scan.py +0 -0
  169. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/__init__.py +0 -0
  170. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/deployment/infrastructure/__init__.py +0 -0
  171. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/__init__.py +0 -0
  172. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeConfigTool.py +0 -0
  173. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py +0 -0
  174. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py +0 -0
  175. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py +0 -0
  176. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +0 -0
  177. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py +0 -0
  178. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +0 -0
  179. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py +0 -0
  180. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py +0 -0
  181. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py +0 -0
  182. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py +0 -0
  183. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +0 -0
  184. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py +0 -0
  185. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py +0 -0
  186. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/__init__.py +0 -0
  187. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/__init__.py +0 -0
  188. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/__init__.py +0 -0
  189. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/__init__.py +0 -0
  190. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/applications/runner_container_scan.py +0 -0
  191. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/__init__.py +0 -0
  192. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/deployment/infrastructure/__init__.py +0 -0
  193. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/__init__.py +0 -0
  194. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/__init__.py +0 -0
  195. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/__init__.py +0 -0
  196. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/deserealizator_gateway.py +0 -0
  197. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/images_gateway.py +0 -0
  198. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/model/gateways/tool_gateway.py +0 -0
  199. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/__init__.py +0 -0
  200. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/container_sca_scan.py +0 -0
  201. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/handle_remote_config_patterns.py +0 -0
  202. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/domain/usecases/set_input_core.py +0 -0
  203. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/__init__.py +0 -0
  204. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/__init__.py +0 -0
  205. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/__init__.py +0 -0
  206. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/docker/docker_images.py +0 -0
  207. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/prisma_cloud/__init__.py +0 -0
  208. {devsecops_engine_tools-1.14.5 → 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
  209. {devsecops_engine_tools-1.14.5 → 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
  210. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/driven_adapters/trivy_tool/__init__.py +0 -0
  211. {devsecops_engine_tools-1.14.5 → 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
  212. {devsecops_engine_tools-1.14.5 → 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
  213. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/__init__.py +0 -0
  214. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/entry_points/entry_point_tool.py +0 -0
  215. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__init__.py +0 -0
  216. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py +0 -0
  217. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py +0 -0
  218. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py +0 -0
  219. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +0 -0
  220. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py +0 -0
  221. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py +0 -0
  222. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py +0 -0
  223. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py +0 -0
  224. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py +0 -0
  225. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py +0 -0
  226. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +0 -0
  227. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py +0 -0
  228. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +0 -0
  229. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py +0 -0
  230. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py +0 -0
  231. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py +0 -0
  232. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py +0 -0
  233. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/__init__.py +0 -0
  234. {devsecops_engine_tools-1.14.5 → 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
  235. {devsecops_engine_tools-1.14.5 → 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
  236. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py +0 -0
  237. {devsecops_engine_tools-1.14.5 → 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
  238. {devsecops_engine_tools-1.14.5 → 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
  239. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py +0 -0
  240. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +0 -0
  241. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py +0 -0
  242. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py +0 -0
  243. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/__init__.py +0 -0
  244. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/__init__.py +0 -0
  245. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py +0 -0
  246. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py +0 -0
  247. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py +0 -0
  248. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +0 -0
  249. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py +0 -0
  250. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +0 -0
  251. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py +0 -0
  252. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +0 -0
  253. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +0 -0
  254. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py +0 -0
  255. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py +0 -0
  256. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py +0 -0
  257. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py +0 -0
  258. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py +0 -0
  259. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py +0 -0
  260. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py +0 -0
  261. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py +0 -0
  262. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py +0 -0
  263. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +0 -0
  264. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py +0 -0
  265. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py +0 -0
  266. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py +0 -0
  267. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py +0 -0
  268. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py +0 -0
  269. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +0 -0
  270. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py +0 -0
  271. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py +0 -0
  272. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +0 -0
  273. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py +0 -0
  274. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py +0 -0
  275. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py +0 -0
  276. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py +0 -0
  277. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +0 -0
  278. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py +0 -0
  279. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py +0 -0
  280. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py +0 -0
  281. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py +0 -0
  282. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +0 -0
  283. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py +0 -0
  284. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py +0 -0
  285. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py +0 -0
  286. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +0 -0
  287. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py +0 -0
  288. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py +0 -0
  289. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py +0 -0
  290. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py +0 -0
  291. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/__init__.py +0 -0
  292. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/__init__.py +0 -0
  293. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/__init__.py +0 -0
  294. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/infrastructure/git_run.py +0 -0
  295. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/model/__init__.py +0 -0
  296. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/__init__.py +0 -0
  297. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/git_cli/model/gateway/git_gateway.py +0 -0
  298. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/__init__.py +0 -0
  299. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py +0 -0
  300. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py +0 -0
  301. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +0 -0
  302. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/github/models/__init__.py +0 -0
  303. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/input_validations/__init__.py +0 -0
  304. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/input_validations/env_utils.py +0 -0
  305. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/input_validations/validate_input_with_regex_letters_number_and_only.py +0 -0
  306. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/settings.py +0 -0
  307. {devsecops_engine_tools-1.14.5/devsecops_engine_tools/engine_utilities/ssh → devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube}/__init__.py +0 -0
  308. {devsecops_engine_tools-1.14.5/devsecops_engine_tools/engine_utilities/utils → devsecops_engine_tools-1.15.0/devsecops_engine_tools/engine_utilities/sonarqube/src}/__init__.py +0 -0
  309. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/ssh/managment_private_key.py +0 -0
  310. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/api_error.py +0 -0
  311. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/dataclass_classmethod.py +0 -0
  312. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/datetime_parsing.py +0 -0
  313. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/logger_info.py +0 -0
  314. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/name_conversion.py +0 -0
  315. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/printers.py +0 -0
  316. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools/engine_utilities/utils/session_manager.py +0 -0
  317. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/dependency_links.txt +0 -0
  318. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/requires.txt +0 -0
  319. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/devsecops_engine_tools.egg-info/top_level.txt +0 -0
  320. {devsecops_engine_tools-1.14.5 → devsecops_engine_tools-1.15.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.14.5
3
+ Version: 1.15.0
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team
@@ -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):
@@ -126,10 +126,10 @@ class TrufflehogRun(ToolGateway):
126
126
  repository_name,
127
127
  enable_custom_rules
128
128
  ):
129
- command = f"{trufflehog_command} filesystem {agent_work_folder + '/' + repository_name} --include-paths {include_path} --exclude-paths {exclude_path} --no-verification --json"
129
+ command = f"{trufflehog_command} filesystem {agent_work_folder + '/' + repository_name} --include-paths {include_path} --exclude-paths {exclude_path} --no-verification --no-update --json"
130
130
 
131
131
  if enable_custom_rules == "true":
132
- command = command.replace("--no-verification --json", "--config /tmp/rules/trufflehog/custom-rules.yaml --no-verification --json")
132
+ command = command.replace("--no-verification --json", "--config /tmp/rules/trufflehog/custom-rules.yaml --no-verification --no-update --json")
133
133
 
134
134
  result = subprocess.run(command, capture_output=True, shell=True, text=True, encoding='utf-8')
135
135
  return result.stdout.strip()
@@ -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()
@@ -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"
@@ -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
@@ -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)
@@ -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
+ )
@@ -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]
@@ -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'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.14.5
3
+ Version: 1.15.0
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team