devsecops-engine-tools 1.37.0__py3-none-any.whl → 1.39.0__py3-none-any.whl

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 (18) hide show
  1. devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +41 -1
  2. devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py +1 -1
  3. devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +1 -1
  4. devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +7 -8
  5. devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py +2 -2
  6. devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py +2 -2
  7. devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +6 -6
  8. devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py +6 -3
  9. devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py +5 -1
  10. devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +1 -0
  11. devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py +1 -1
  12. devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py +1 -1
  13. devsecops_engine_tools/version.py +1 -1
  14. {devsecops_engine_tools-1.37.0.dist-info → devsecops_engine_tools-1.39.0.dist-info}/METADATA +7 -7
  15. {devsecops_engine_tools-1.37.0.dist-info → devsecops_engine_tools-1.39.0.dist-info}/RECORD +18 -18
  16. {devsecops_engine_tools-1.37.0.dist-info → devsecops_engine_tools-1.39.0.dist-info}/WHEEL +0 -0
  17. {devsecops_engine_tools-1.37.0.dist-info → devsecops_engine_tools-1.39.0.dist-info}/entry_points.txt +0 -0
  18. {devsecops_engine_tools-1.37.0.dist-info → devsecops_engine_tools-1.39.0.dist-info}/top_level.txt +0 -0
@@ -83,6 +83,26 @@ def get_inputs_from_cli(args):
83
83
  parser.add_argument(
84
84
  "-t",
85
85
  "--tool",
86
+ choices=[
87
+ "nuclei",
88
+ "bearer",
89
+ "checkov",
90
+ "kics",
91
+ "kubescape",
92
+ "trufflehog",
93
+ "gitleaks",
94
+ "prisma",
95
+ "trivy",
96
+ "xray",
97
+ "dependency_check",
98
+ ],
99
+ type=str,
100
+ required=False,
101
+ help="Tool to execute according to the module",
102
+ )
103
+ parser.add_argument(
104
+ "-m",
105
+ "--module",
86
106
  choices=[
87
107
  "engine_iac",
88
108
  "engine_dast",
@@ -94,7 +114,7 @@ def get_inputs_from_cli(args):
94
114
  ],
95
115
  type=str,
96
116
  required=True,
97
- help="Tool to execute",
117
+ help="Module to execute",
98
118
  )
99
119
  parser.add_argument(
100
120
  "-fp",
@@ -176,12 +196,32 @@ def get_inputs_from_cli(args):
176
196
  help="File path containing the configuration, structured according to the documentation, \
177
197
  for the API or web application to be scanned by the DAST tool."
178
198
  )
199
+
200
+ TOOLS = {
201
+ "engine_iac": ["checkov", "kics", "kubescape"],
202
+ "engine_secret": ["trufflehog", "gitleaks"],
203
+ "engine_container": ["prisma", "trivy"],
204
+ "engine_dependencies": ["xray", "dependency_check"],
205
+ "engine_code": ["bearer"],
206
+ "engine_dast": ["nuclei"],
207
+ "engine_risk": None,
208
+ }
209
+
179
210
  args = parser.parse_args()
211
+
212
+ if args.module in TOOLS and args.tool:
213
+ allowed_tools = TOOLS[args.module]
214
+ if allowed_tools is None:
215
+ parser.error(f"The tool flag should not be used with module {args.module}")
216
+ elif allowed_tools and (args.tool not in allowed_tools):
217
+ parser.error(f"Invalid value for tool. Allowed values for the provided module {args.module} are: {', '.join(allowed_tools)}")
218
+
180
219
  return {
181
220
  "platform_devops": args.platform_devops,
182
221
  "remote_config_repo": args.remote_config_repo,
183
222
  "remote_config_branch": args.remote_config_branch,
184
223
  "tool": args.tool,
224
+ "module": args.module,
185
225
  "folder_path": args.folder_path,
186
226
  "platform": args.platform,
187
227
  "use_secrets_manager": args.use_secrets_manager,
@@ -3,5 +3,5 @@ from abc import ABCMeta, abstractmethod
3
3
 
4
4
  class MetricsManagerGateway(metaclass=ABCMeta):
5
5
  @abstractmethod
6
- def send_metrics(self, config_tool, tool, file_path):
6
+ def send_metrics(self, config_tool, module, file_path):
7
7
  "send_metrics"
@@ -34,7 +34,7 @@ class BreakBuild:
34
34
  def _apply_policie_exception_new_vulnerability_industry(
35
35
  self, findings_list: "list[Finding]", exclusions: "list[Exclusions]", args: any
36
36
  ):
37
- if args["tool"] in ["engine_container", "engine_dependencies"]:
37
+ if args["module"] in ["engine_container", "engine_dependencies"]:
38
38
  date_actual = datetime.now(pytz.utc)
39
39
  for item in findings_list:
40
40
  if item.published_date_cve:
@@ -47,7 +47,6 @@ from devsecops_engine_tools.engine_utilities import settings
47
47
 
48
48
  logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
49
49
 
50
-
51
50
  class HandleScan:
52
51
  def __init__(
53
52
  self,
@@ -69,7 +68,7 @@ class HandleScan:
69
68
  )
70
69
  if dict_args["use_secrets_manager"] == "true":
71
70
  secret_tool = self.secrets_manager_gateway.get_secret(config_tool)
72
- if "engine_iac" in dict_args["tool"]:
71
+ if "engine_iac" in dict_args["module"]:
73
72
  findings_list, input_core = runner_engine_iac(
74
73
  dict_args,
75
74
  config_tool["ENGINE_IAC"]["TOOL"],
@@ -81,7 +80,7 @@ class HandleScan:
81
80
  config_tool, input_core, dict_args, secret_tool, env
82
81
  )
83
82
  return findings_list, input_core
84
- elif "engine_container" in dict_args["tool"]:
83
+ elif "engine_container" in dict_args["module"]:
85
84
  findings_list, input_core, sbom_components = runner_engine_container(
86
85
  dict_args,
87
86
  config_tool["ENGINE_CONTAINER"]["TOOL"],
@@ -97,7 +96,7 @@ class HandleScan:
97
96
  sbom_components,
98
97
  )
99
98
  return findings_list, input_core
100
- elif "engine_dast" in dict_args["tool"]:
99
+ elif "engine_dast" in dict_args["module"]:
101
100
  findings_list, input_core = runner_engine_dast(
102
101
  dict_args,
103
102
  config_tool["ENGINE_DAST"],
@@ -108,7 +107,7 @@ class HandleScan:
108
107
  config_tool, input_core, dict_args, secret_tool, env
109
108
  )
110
109
  return findings_list, input_core
111
- elif "engine_code" in dict_args["tool"]:
110
+ elif "engine_code" in dict_args["module"]:
112
111
  findings_list, input_core = runner_engine_code(
113
112
  dict_args,
114
113
  config_tool["ENGINE_CODE"]["TOOL"],
@@ -118,7 +117,7 @@ class HandleScan:
118
117
  config_tool, input_core, dict_args, secret_tool, env
119
118
  )
120
119
  return findings_list, input_core
121
- elif "engine_secret" in dict_args["tool"]:
120
+ elif "engine_secret" in dict_args["module"]:
122
121
  findings_list, input_core = runner_secret_scan(
123
122
  dict_args,
124
123
  config_tool["ENGINE_SECRET"]["TOOL"],
@@ -129,7 +128,7 @@ class HandleScan:
129
128
  config_tool, input_core, dict_args, secret_tool, env
130
129
  )
131
130
  return findings_list, input_core
132
- elif "engine_dependencies" in dict_args["tool"]:
131
+ elif "engine_dependencies" in dict_args["module"]:
133
132
  findings_list, input_core, sbom_components = runner_engine_dependencies(
134
133
  dict_args,
135
134
  config_tool,
@@ -156,7 +155,7 @@ class HandleScan:
156
155
  if input_core.path_file_results:
157
156
  self.vulnerability_management.send_vulnerability_management(
158
157
  VulnerabilityManagement(
159
- config_tool[dict_args["tool"].upper()]["TOOL"],
158
+ config_tool[dict_args["module"].upper()]["TOOL"],
160
159
  input_core,
161
160
  dict_args,
162
161
  secret_tool,
@@ -45,7 +45,7 @@ class MetricsManager:
45
45
  "date": datetime.datetime.now().strftime("%Y-%m-%d"),
46
46
  "component": scope_pipeline,
47
47
  "stage": input_core.stage_pipeline,
48
- "check_type": dict_args["tool"],
48
+ "check_type": dict_args["module"],
49
49
  "environment": define_env(
50
50
  self.devops_platform_gateway.get_variable("environment"),
51
51
  self.devops_platform_gateway.get_variable("branch_name"),
@@ -55,5 +55,5 @@ class MetricsManager:
55
55
  }
56
56
  json.dump(body, file)
57
57
  self.metrics_manager_gateway.send_metrics(
58
- config_tool, dict_args["tool"], file_path
58
+ config_tool, dict_args["module"], file_path
59
59
  )
@@ -23,7 +23,7 @@ class S3Manager(MetricsManagerGateway):
23
23
  except client.exceptions.NoSuchKey:
24
24
  return ""
25
25
 
26
- def send_metrics(self, config_tool, tool, file_path):
26
+ def send_metrics(self, config_tool, module, file_path):
27
27
  credentials_role = assume_role(config_tool["METRICS_MANAGER"]["AWS"]["ROLE_ARN"]) if config_tool["METRICS_MANAGER"]["AWS"]["USE_ROLE"] else None
28
28
  session = boto3.session.Session()
29
29
 
@@ -41,7 +41,7 @@ class S3Manager(MetricsManagerGateway):
41
41
  region_name=config_tool["METRICS_MANAGER"]["AWS"]["REGION_NAME"]
42
42
  )
43
43
  date = datetime.datetime.now()
44
- path_bucket = f'engine_tools/{tool}/{date.strftime("%Y")}/{date.strftime("%m")}/{date.strftime("%d")}/{file_path.split("/")[-1]}'
44
+ path_bucket = f'engine_tools/{module}/{date.strftime("%Y")}/{date.strftime("%m")}/{date.strftime("%d")}/{file_path.split("/")[-1]}'
45
45
 
46
46
  data = self._get_s3_data(
47
47
  client, config_tool["METRICS_MANAGER"]["AWS"]["BUCKET"], path_bucket
@@ -90,10 +90,10 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
90
90
  for branch in vulnerability_management.config_tool[
91
91
  "VULNERABILITY_MANAGER"
92
92
  ]["BRANCH_FILTER"]
93
- ) or (vulnerability_management.dict_args["tool"] == "engine_secret"):
94
- tags = vulnerability_management.dict_args["tool"]
95
- if vulnerability_management.dict_args["tool"] == "engine_iac":
96
- tags = f"{vulnerability_management.dict_args['tool']}_{'_'.join(vulnerability_management.dict_args['platform'])}"
93
+ ) or (vulnerability_management.dict_args["module"] == "engine_secret"):
94
+ tags = vulnerability_management.dict_args["module"]
95
+ if vulnerability_management.dict_args["module"] == "engine_iac":
96
+ tags = f"{vulnerability_management.dict_args['module']}_{'_'.join(vulnerability_management.dict_args['platform'])}"
97
97
 
98
98
  use_cmdb = vulnerability_management.config_tool[
99
99
  "VULNERABILITY_MANAGER"
@@ -125,7 +125,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
125
125
  test_string = "//".join([url_parts[0] + "/", url_parts[1]])
126
126
  print(
127
127
  "Report sent to vulnerability management: ",
128
- f"{test_string}?tags={vulnerability_management.dict_args['tool']}",
128
+ f"{test_string}?tags={vulnerability_management.dict_args['module']}",
129
129
  )
130
130
  else:
131
131
  raise ExceptionVulnerabilityManagement(response)
@@ -185,7 +185,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
185
185
  "MAX_RETRIES_QUERY"
186
186
  ]
187
187
 
188
- tool = dict_args["tool"]
188
+ tool = dict_args["module"]
189
189
 
190
190
  risk_accepted_query_params = {
191
191
  "risk_accepted": True,
@@ -29,8 +29,8 @@ def init_engine_core(
29
29
  )
30
30
  Printers.print_logo_tool(config_tool["BANNER"])
31
31
 
32
- if config_tool[args["tool"].upper()]["ENABLED"]:
33
- if args["tool"] == "engine_risk":
32
+ if config_tool[args["module"].upper()]["ENABLED"]:
33
+ if args["module"] == "engine_risk":
34
34
  results, input_core = HandleRisk(
35
35
  vulnerability_management_gateway,
36
36
  secrets_manager_gateway,
@@ -39,6 +39,9 @@ def init_engine_core(
39
39
  ).process(args, config_tool)
40
40
 
41
41
  else:
42
+ if args.get("tool"):
43
+ config_tool[args["module"].upper()]["TOOL"] = args.get("tool").upper()
44
+
42
45
  findings_list, input_core = HandleScan(
43
46
  vulnerability_management_gateway,
44
47
  secrets_manager_gateway,
@@ -59,6 +62,6 @@ def init_engine_core(
59
62
  print(
60
63
  devops_platform_gateway.message(
61
64
  "warning",
62
- "DevSecOps Engine Tool - {0} in maintenance...".format(args["tool"]),
65
+ "DevSecOps Engine Tool - {0} in maintenance...".format(args["module"]),
63
66
  )
64
67
  )
@@ -20,7 +20,11 @@ def runner_engine_dependencies(
20
20
  ):
21
21
  try:
22
22
  tools_mapping = {
23
- "XRAY": {"tool_run": XrayScan, "tool_deserializator": XrayDeserializator, "tool_sbom": sbom_tool_gateway},
23
+ "XRAY": {
24
+ "tool_run": XrayScan,
25
+ "tool_deserializator": XrayDeserializator,
26
+ "tool_sbom": sbom_tool_gateway
27
+ },
24
28
  "DEPENDENCY_CHECK": {
25
29
  "tool_run": DependencyCheckTool,
26
30
  "tool_deserializator": DependencyCheckDeserialize,
@@ -137,6 +137,7 @@ list_scan_type = [
137
137
  "SSLyze Scan (JSON)",
138
138
  "StackHawk HawkScan",
139
139
  "Talisman Scan",
140
+ "Tenable Scan",
140
141
  "Terrascan Scan",
141
142
  "Testssl Scan",
142
143
  "TFSec Scan",
@@ -85,7 +85,7 @@ class ReportSonar:
85
85
  else:
86
86
  project_keys = self.sonar_gateway.get_project_keys(pipeline_name)
87
87
 
88
- args["tool"] = "sonarqube"
88
+ args["module"] = "sonarqube"
89
89
  vulnerability_manager = VulnerabilityManagement(
90
90
  scan_type = "SONARQUBE",
91
91
  input_core = input_core,
@@ -60,7 +60,7 @@ def init_report_sonar(
60
60
 
61
61
  if args["send_metrics"] == "true":
62
62
  MetricsManager(devops_platform_gateway, metrics_manager_gateway).process(
63
- config_tool, input_core, {"tool": "report_sonar"}, ""
63
+ config_tool, input_core, {"module": "report_sonar"}, ""
64
64
  )
65
65
  else:
66
66
  if not is_enabled:
@@ -1 +1 @@
1
- version = '1.37.0'
1
+ version = '1.39.0'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.37.0
3
+ Version: 1.39.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
@@ -74,7 +74,7 @@ pip3 install devsecops-engine-tools
74
74
  ### Scan running - flags (CLI)
75
75
 
76
76
  ```bash
77
- devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --remote_config_branch ["remote_config_branch"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code, engine_dependencies and engine_secret"] --platform ["k8s","cloudformation","docker", "openapi", "terraform"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit","build-scan"] --image_to_scan ["image_to_scan"] --dast_file_path ["dast_file_path"]
77
+ devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --remote_config_branch ["remote_config_branch"] --module ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --tool ["nuclei", "bearer", "checkov", "kics", "kubescape", "trufflehog", "gitleaks", "prisma", "trivy", "xray", "dependency_check"] --folder_path ["Folder path scan engine_iac, engine_code, engine_dependencies and engine_secret"] --platform ["k8s","cloudformation","docker", "openapi", "terraform"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit","build-scan"] --image_to_scan ["image_to_scan"] --dast_file_path ["dast_file_path"]
78
78
  ```
79
79
 
80
80
  ### Structure Remote Config
@@ -184,7 +184,7 @@ $ set +a
184
184
 
185
185
 
186
186
  ```bash
187
- devsecops-engine-tools --platform_devops local --remote_config_repo DevSecOps_Remote_Config --tool engine_iac
187
+ devsecops-engine-tools --platform_devops local --remote_config_repo DevSecOps_Remote_Config --module engine_iac
188
188
 
189
189
  ```
190
190
 
@@ -198,13 +198,13 @@ devsecops-engine-tools --platform_devops local --remote_config_repo DevSecOps_Re
198
198
  docker pull bancolombia/devsecops-engine-tools
199
199
  ```
200
200
  ```bash
201
- docker run --rm -v ./folder_to_analyze:/folder_to_analyze bancolombia/devsecops-engine-tools:latest devsecops-engine-tools --platform_devops local --remote_config_repo docker_default_remote_config --tool engine_iac --folder_path /folder_to_analyze
201
+ docker run --rm -v ./folder_to_analyze:/folder_to_analyze bancolombia/devsecops-engine-tools:latest devsecops-engine-tools --platform_devops local --remote_config_repo docker_default_remote_config --module engine_iac --folder_path /folder_to_analyze
202
202
  ```
203
203
 
204
204
  The docker image have it own default remote config with basic configuration called docker_default_remote_config, but you can define your own config and pass it as volume
205
205
 
206
206
  ```bash
207
- docker run --rm -v ./folder_to_analyze:/folder_to_analyze -v ./custom_remote_config:/custom_remote_config bancolombia/devsecops-engine-tools:latest devsecops-engine-tools --platform_devops local --remote_config_repo custom_remote_config --tool engine_iac --folder_path /folder_to_analyze
207
+ docker run --rm -v ./folder_to_analyze:/folder_to_analyze -v ./custom_remote_config:/custom_remote_config bancolombia/devsecops-engine-tools:latest devsecops-engine-tools --platform_devops local --remote_config_repo custom_remote_config --module engine_iac --folder_path /folder_to_analyze
208
208
  ```
209
209
 
210
210
 
@@ -234,7 +234,7 @@ stages:
234
234
  - script: |
235
235
  # Install devsecops-engine-tools
236
236
  pip3 install -q devsecops-engine-tools
237
- devsecops-engine-tools --platform_devops azure --remote_config_repo remote_config --tool engine_iac
237
+ devsecops-engine-tools --platform_devops azure --remote_config_repo remote_config --module engine_iac
238
238
  displayName: "Engine Tools"
239
239
  env:
240
240
  SYSTEM_ACCESSTOKEN: $(System.AccessToken)
@@ -285,7 +285,7 @@ jobs:
285
285
  run: |
286
286
  # Install devsecops-engine-tools
287
287
  pip3 install -q devsecops-engine-tools
288
- output=$(devsecops-engine-tools --platform_devops github --remote_config_repo remote_config --tool engine_iac)
288
+ output=$(devsecops-engine-tools --platform_devops github --remote_config_repo remote_config --module engine_iac)
289
289
  echo "$output"
290
290
  if [[ $output == *"✘Failed"* ]]; then
291
291
  exit 1
@@ -1,9 +1,9 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=mKVVNS_mP15gWl2DD7oonpIpaGICZiDbUYmhzIK6Wtw,19
2
+ devsecops_engine_tools/version.py,sha256=dFUY8JFVXh9yis_kOGdUQqN6yPwouTrQbLtVi17tQ04,19
3
3
  devsecops_engine_tools/engine_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  devsecops_engine_tools/engine_core/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  devsecops_engine_tools/engine_core/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=panasPdwMUKZYgcQXQdMqTjOISzx0OQcmsS61EeMucI,8194
6
+ devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=7KqgqvdENk5e0uFkMbRWx5fSmQK0MAnX2NOlj9R57eI,9429
7
7
  devsecops_engine_tools/engine_core/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  devsecops_engine_tools/engine_core/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -20,25 +20,25 @@ devsecops_engine_tools/engine_core/src/domain/model/threshold.py,sha256=TCBECuvo
20
20
  devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py,sha256=04ALQoTM4uoea9s505WCDw18J3Cvu6phf54ZTKODN64,552
21
21
  devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py,sha256=-L7O48UlUe2wI1DRnpAdZ98SLge7pcvoUOXITgFaBLg,800
23
- devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py,sha256=u_ivbmCyymw0Je7gRFg0uD9iDmZfTbteH5UwcgP0JAs,191
23
+ devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py,sha256=wApR5faZG5YqprWrDBMM9b4V7sBraJUxDmIUNGi0zqg,193
24
24
  devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py,sha256=ROBsh7Lyu62a5RqZ4KgGQcwrBzbHRwxAJ9Rj3LoupQc,602
25
25
  devsecops_engine_tools/engine_core/src/domain/model/gateway/sbom_manager.py,sha256=HpkUZYbmW72r4KDIPWwDmAOU_uawmKaexxmWheR9QAA,321
26
26
  devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py,sha256=CTwUIvUWF0NSSzdCqASUFst6KUysW53NV9eatjLGdl8,170
27
27
  devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py,sha256=MsNHO4x78KqMkJ3u3gxPltyBIqP5gB3tRBlN-w7VtBg,1429
28
28
  devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=OLaovhcWWA6n1TkoSGZhnfjfQis1R33WztEN3DG6gII,16645
29
+ devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=g9JXQeWTi1cC-PFcLMcVFnX0QARZnXqzx2k9d5nA-_A,16647
30
30
  devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py,sha256=RirHqsW5AhGjV7ITa13bW_BfM6VE99DffrPASoB9SN0,9403
31
- devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=HKwsK09-rRbW7y7aOrsCJLGaa279XeUB3M8k6SsGFtA,10723
32
- devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=Xi0iNnPrFgqd2cBdAA5E_tgouhxs-BTo016aolnGgv8,2413
31
+ devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=iPv_wayjgbKvc0o2bZcFtBVXkT-uJRo1ynED--46ZCg,10736
32
+ devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=xfaGrDf9rnN32qG_zOD9NN-a62reqQ5KOd2bP6xoRnw,2417
33
33
  devsecops_engine_tools/engine_core/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py,sha256=4h1k5EQnL_3NoGI6oRyVibkN5u3s4j5VUthNU1m1zQc,2206
36
+ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py,sha256=xLPwfh8FQzP5CldRj0ev8LsSxFO4A_i88EnNGBPuN2g,2210
37
37
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py,sha256=ELihQBgSPH4f9QCyg2dgjudsFitaqgdsljnVOmaA_v4,1972
38
38
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=lNjYo83p3lovwfW4BeBtHQZckZl9m-9jlcIB-DesqhY,5316
40
40
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=aGwnDyQcI5NSufaQRPZHnXn4r2l_V0RnkWxzUj3hr0I,29560
41
+ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=UoNuHkx3UIeXjgJJk8YxtjT9Lq9LHt1N-fKNFKmkOdA,29572
42
42
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=cn9VGDaD9gUnJrLn9vEkQvfqYHIJftGE9ZACHEUOUxo,4132
44
44
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -50,7 +50,7 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_lo
50
50
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/syft/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
51
  devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/syft/syft.py,sha256=hP5MitHTeZf3Ia-xwi5bUdIU5hIwbUNuDSzcsqlxG5c,4457
52
52
  devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py,sha256=o0H5Cc6lFzhE6yuzmV2Mj5Aub92-16TVuagXa3YLg9Q,2163
53
+ devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py,sha256=XzrvNHnVe7JEBFoi0je7iyddGAUSRZ5jxPjR77FDOss,2306
54
54
  devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  devsecops_engine_tools/engine_core/src/infrastructure/helpers/aws.py,sha256=wfy_PosHS0rrvkdiUYczxIcc8ZNwfqzWwqVxrmRTCBI,264
56
56
  devsecops_engine_tools/engine_core/src/infrastructure/helpers/util.py,sha256=lDtaozInb5m2R8Y-oGQasroksCRw_N_Ltz7gLkSguX8,380
@@ -220,7 +220,7 @@ devsecops_engine_tools/engine_sca/engine_container/src/infrastructure/helpers/__
220
220
  devsecops_engine_tools/engine_sca/engine_dependencies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
221
  devsecops_engine_tools/engine_sca/engine_dependencies/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
222
222
  devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
223
- devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py,sha256=KE-hXWUAc24f86xts7mvi_7y9HEzKHLMZp-8uLvNbm0,1983
223
+ devsecops_engine_tools/engine_sca/engine_dependencies/src/applications/runner_dependencies_scan.py,sha256=0M43cNGZ_dU3rzOf7985N7uvkj-M2u3inAVZVgBcBfY,2047
224
224
  devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
225
225
  devsecops_engine_tools/engine_sca/engine_dependencies/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
226
  devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -279,7 +279,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/findi
279
279
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py,sha256=bISidRCaCMTXZBMOUlvQWW1yCLMPKRU0MCq2Nk9P7ZY,5085
280
280
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
281
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py,sha256=4IQLjqgyImVdn8AxoU3UKgXnvU-F-x7Tm2bJdp6nHm4,5265
282
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py,sha256=CvAxMDQBgqI7sCE8wGL7PYlyhpUQQJT6iU763EngYmc,7354
282
+ devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py,sha256=Ol00aEQsbsMovBMknaG4LbXs0MWIr1LN9EUpz-HYLk8,7375
283
283
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
284
284
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py,sha256=BUOdvP39bEMQ6Unr2hB28eljVGU2Uv8dDEkzRyEJgyQ,2650
285
285
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/component.py,sha256=_icc-ZAqw-aVgE5J4VH8Q7fSqpCgEGcfmurgRIN9NqM,448
@@ -328,13 +328,13 @@ devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/__init__.py,s
328
328
  devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
329
  devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py,sha256=mgycD3bzC_BYv7qT0tMLAro9hyNOvi4gJRzceYNF0t8,1339
330
330
  devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
331
- devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py,sha256=DnJowGn2mI2JvYjFTyrcZ6MOj2RrHk1xJt-kLWu0Z1k,9493
331
+ devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py,sha256=c8GwlcR6NvLV1vuIAdXb4yAmsxdgHptH0HSCRWmW57g,9495
332
332
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
333
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
334
334
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
335
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/sonarqube_report.py,sha256=BpCLMgFQjytZc1HfZ5hXqX44E8T0JhLpAaNOVq5pFjo,4909
336
336
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
337
- devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py,sha256=cAPH9-jjnAvF_hH5_UOSG2pndycAxJgpN9e6K8Aufso,2603
337
+ devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/entry_points/entry_point_report_sonar.py,sha256=wn692qaSzqrYRDL829m9AVzddJlQi9aPHfUTN9qejq8,2605
338
338
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
339
  devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/helpers/utils.py,sha256=SGOWrkzQrvOt9bRhhSfgiMzj1695e1W0B9ox9C1ihQI,294
340
340
  devsecops_engine_tools/engine_utilities/ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -348,8 +348,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
348
348
  devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
349
349
  devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=Z0fdhB3r-dxU0nGSD9zW_B4r2Qol1rUnUCkhFR0U-HQ,487
350
350
  devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=XFap4yOK7ItLWsqbwDhvLd7NpDhs7i-UGJAMD6jjd7w,6687
351
- devsecops_engine_tools-1.37.0.dist-info/METADATA,sha256=i-HTGiYjg0YQjYwpabkhUQRCNp3Oxa5WAl4oi1_awHM,11605
352
- devsecops_engine_tools-1.37.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
353
- devsecops_engine_tools-1.37.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
354
- devsecops_engine_tools-1.37.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
355
- devsecops_engine_tools-1.37.0.dist-info/RECORD,,
351
+ devsecops_engine_tools-1.39.0.dist-info/METADATA,sha256=9aMZ3p8cDwrl57mRJNfa-eVYm-z80ZmyemRODImsAHk,11750
352
+ devsecops_engine_tools-1.39.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
353
+ devsecops_engine_tools-1.39.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
354
+ devsecops_engine_tools-1.39.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
355
+ devsecops_engine_tools-1.39.0.dist-info/RECORD,,