devsecops-engine-tools 1.56.5__py3-none-any.whl → 1.58.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.
- devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +8 -0
- devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py +91 -49
- devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py +1 -0
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py +20 -1
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py +11 -2
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/METADATA +2 -1
- {devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/RECORD +11 -11
- {devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/WHEEL +0 -0
- {devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/top_level.txt +0 -0
|
@@ -123,6 +123,13 @@ def get_inputs_from_cli(args):
|
|
|
123
123
|
required=False,
|
|
124
124
|
help="Folder Path to scan, only apply engine_iac, engine_code, engine_secret and engine_dependencies tools",
|
|
125
125
|
)
|
|
126
|
+
parser.add_argument(
|
|
127
|
+
"-tr",
|
|
128
|
+
"--terraform_repo_root",
|
|
129
|
+
type=str,
|
|
130
|
+
required=False,
|
|
131
|
+
help="Folder Path containing the terraform code used to generate a given plan file, only apply engine_iac with checkov",
|
|
132
|
+
)
|
|
126
133
|
parser.add_argument(
|
|
127
134
|
"-p",
|
|
128
135
|
"--platform",
|
|
@@ -223,6 +230,7 @@ def get_inputs_from_cli(args):
|
|
|
223
230
|
"tool": args.tool,
|
|
224
231
|
"module": args.module,
|
|
225
232
|
"folder_path": args.folder_path,
|
|
233
|
+
"terraform_repo_root": args.terraform_repo_root,
|
|
226
234
|
"platform": args.platform,
|
|
227
235
|
"use_secrets_manager": args.use_secrets_manager,
|
|
228
236
|
"use_vulnerability_management": args.use_vulnerability_management,
|
|
@@ -15,6 +15,8 @@ from collections import Counter
|
|
|
15
15
|
import copy
|
|
16
16
|
import sympy as sp
|
|
17
17
|
import math
|
|
18
|
+
from datetime import datetime, timedelta
|
|
19
|
+
import holidays
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
class BreakBuild:
|
|
@@ -138,7 +140,16 @@ class BreakBuild:
|
|
|
138
140
|
formula = sp.Eq(
|
|
139
141
|
remediation_rate_name,
|
|
140
142
|
100
|
|
141
|
-
* (
|
|
143
|
+
* (
|
|
144
|
+
mitigated_name
|
|
145
|
+
/ (
|
|
146
|
+
all_findings_name
|
|
147
|
+
- new_findings
|
|
148
|
+
- white_list_name
|
|
149
|
+
- transferred_name
|
|
150
|
+
- base_image_name
|
|
151
|
+
)
|
|
152
|
+
),
|
|
142
153
|
)
|
|
143
154
|
print("\n")
|
|
144
155
|
sp.pretty_print(formula)
|
|
@@ -167,7 +178,13 @@ class BreakBuild:
|
|
|
167
178
|
print(
|
|
168
179
|
f"Mitigated: {mitigated_count} AllFindings: {all_findings_count} BaseImage: {base_image_count} NewFindings: {self.policy_excluded} Transferred: {transferred_list_count} WhiteList: {white_list_count}\n\n"
|
|
169
180
|
)
|
|
170
|
-
total =
|
|
181
|
+
total = (
|
|
182
|
+
all_findings_count
|
|
183
|
+
- self.policy_excluded
|
|
184
|
+
- white_list_count
|
|
185
|
+
- base_image_count
|
|
186
|
+
- transferred_list_count
|
|
187
|
+
)
|
|
171
188
|
|
|
172
189
|
if total == 0:
|
|
173
190
|
print(
|
|
@@ -198,7 +215,9 @@ class BreakBuild:
|
|
|
198
215
|
)
|
|
199
216
|
self.warning_build = True
|
|
200
217
|
else:
|
|
201
|
-
missing_findings = math.ceil(
|
|
218
|
+
missing_findings = math.ceil(
|
|
219
|
+
(risk_threshold / 100 * total) - mitigated_count
|
|
220
|
+
)
|
|
202
221
|
print(
|
|
203
222
|
self.devops_platform_gateway.message(
|
|
204
223
|
"error",
|
|
@@ -281,62 +300,85 @@ class BreakBuild:
|
|
|
281
300
|
remote_config = self.remote_config
|
|
282
301
|
if report_list:
|
|
283
302
|
tag_blacklist = set(remote_config["TAG_BLACKLIST_EXCLUSION_DAYS"].keys())
|
|
303
|
+
colombian_holidays = holidays.Colombia()
|
|
284
304
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
305
|
+
def calculate_working_days(start_date, days):
|
|
306
|
+
current_date = start_date
|
|
307
|
+
working_days = 0
|
|
308
|
+
while working_days < days:
|
|
309
|
+
current_date += timedelta(days=1)
|
|
310
|
+
if (
|
|
311
|
+
current_date.weekday() < 5
|
|
312
|
+
and current_date not in colombian_holidays
|
|
313
|
+
):
|
|
314
|
+
working_days += 1
|
|
315
|
+
return current_date
|
|
292
316
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
for report in report_list
|
|
296
|
-
for tag in report.tags
|
|
297
|
-
if tag in tag_blacklist
|
|
298
|
-
and report.age < remote_config["TAG_BLACKLIST_EXCLUSION_DAYS"][tag]
|
|
299
|
-
]
|
|
317
|
+
filtered_reports_above_threshold = []
|
|
318
|
+
filtered_reports_below_threshold = []
|
|
300
319
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
320
|
+
for report in report_list:
|
|
321
|
+
for tag in report.tags:
|
|
322
|
+
if tag in tag_blacklist:
|
|
323
|
+
exclusion_value = remote_config["TAG_BLACKLIST_EXCLUSION_DAYS"][tag]
|
|
324
|
+
if isinstance(exclusion_value, str) and "WD" in exclusion_value:
|
|
325
|
+
working_days_threshold = int(exclusion_value.replace("WD", ""))
|
|
326
|
+
report_created_date = datetime.strptime(
|
|
327
|
+
report.created.split("T")[0], "%Y-%m-%d"
|
|
328
|
+
)
|
|
329
|
+
threshold_date = calculate_working_days(
|
|
330
|
+
report_created_date, working_days_threshold
|
|
331
|
+
)
|
|
332
|
+
if datetime.now() >= threshold_date:
|
|
333
|
+
filtered_reports_above_threshold.append((report, tag))
|
|
334
|
+
else:
|
|
335
|
+
filtered_reports_below_threshold.append((report, tag))
|
|
336
|
+
else:
|
|
337
|
+
numeric_threshold = int(exclusion_value)
|
|
338
|
+
if report.age >= numeric_threshold:
|
|
339
|
+
filtered_reports_above_threshold.append((report, tag))
|
|
340
|
+
else:
|
|
341
|
+
filtered_reports_below_threshold.append((report, tag))
|
|
342
|
+
|
|
343
|
+
for report, tag in filtered_reports_above_threshold:
|
|
344
|
+
report.reason = "Blacklisted"
|
|
345
|
+
print(
|
|
346
|
+
self.devops_platform_gateway.message(
|
|
347
|
+
"error",
|
|
348
|
+
f"Report {report.vm_id} with tag '{tag}' is blacklisted and age {report.age} is above threshold {remote_config['TAG_BLACKLIST_EXCLUSION_DAYS'][tag]}",
|
|
308
349
|
)
|
|
350
|
+
)
|
|
309
351
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
)
|
|
352
|
+
for report, tag in filtered_reports_below_threshold:
|
|
353
|
+
print(
|
|
354
|
+
self.devops_platform_gateway.message(
|
|
355
|
+
"warning",
|
|
356
|
+
f"Report {report.vm_id} with tag '{tag}' is blacklisted but age {report.age} is below threshold {remote_config['TAG_BLACKLIST_EXCLUSION_DAYS'][tag]}",
|
|
316
357
|
)
|
|
317
|
-
|
|
358
|
+
)
|
|
359
|
+
self.policy_excluded += 1
|
|
318
360
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
)
|
|
361
|
+
if filtered_reports_above_threshold:
|
|
362
|
+
self.break_build = True
|
|
363
|
+
self.blacklisted += len(filtered_reports_above_threshold)
|
|
364
|
+
self.report_breaker.extend(
|
|
365
|
+
copy.deepcopy(
|
|
366
|
+
[report for report, _ in filtered_reports_above_threshold]
|
|
326
367
|
)
|
|
368
|
+
)
|
|
327
369
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
)
|
|
370
|
+
for report in report_list:
|
|
371
|
+
if "On Blacklist" in report.risk_status:
|
|
372
|
+
self.break_build = True
|
|
373
|
+
report.reason = "Blacklisted"
|
|
374
|
+
self.blacklisted += 1
|
|
375
|
+
self.report_breaker.append(copy.deepcopy(report))
|
|
376
|
+
print(
|
|
377
|
+
self.devops_platform_gateway.message(
|
|
378
|
+
"error",
|
|
379
|
+
f"Report {report.vm_id} is blacklisted.",
|
|
339
380
|
)
|
|
381
|
+
)
|
|
340
382
|
|
|
341
383
|
def _risk_score_control(self, report_list: "list[Report]"):
|
|
342
384
|
remote_config = self.remote_config
|
|
@@ -48,6 +48,7 @@ class IacScan:
|
|
|
48
48
|
secret_tool=secret_tool,
|
|
49
49
|
secret_external_checks=dict_args["token_external_checks"],
|
|
50
50
|
work_folder=self.devops_platform_gateway.get_variable("temp_directory"),
|
|
51
|
+
dict_args=dict_args
|
|
51
52
|
)
|
|
52
53
|
else:
|
|
53
54
|
print("Tool skipped by DevSecOps policy")
|
|
@@ -22,7 +22,8 @@ class CheckovConfigEnum(Enum):
|
|
|
22
22
|
DOCKERFILEPATH = "dockerfile-path"
|
|
23
23
|
EXTERNAL_CHECKS_GIT = "external-checks-git"
|
|
24
24
|
SKIP_DOWNLOAD = "skip-download"
|
|
25
|
-
|
|
25
|
+
REPO_ROOT_FOR_PLAN_ENRICHMENT = "repo-root-for-plan-enrichment"
|
|
26
|
+
DEEP_ANALYSIS = "deep-analysis"
|
|
26
27
|
|
|
27
28
|
class CheckovConfig:
|
|
28
29
|
dict_confg_file = {}
|
|
@@ -45,6 +46,8 @@ class CheckovConfig:
|
|
|
45
46
|
external_checks_git=None,
|
|
46
47
|
skip_checks=None,
|
|
47
48
|
skip_download=True,
|
|
49
|
+
repo_root_for_plan_enrichment=None,
|
|
50
|
+
deep_analysis=None
|
|
48
51
|
):
|
|
49
52
|
self.path_config_file = path_config_file
|
|
50
53
|
self.config_file_name = config_file_name
|
|
@@ -62,6 +65,8 @@ class CheckovConfig:
|
|
|
62
65
|
self.skip_checks = skip_checks
|
|
63
66
|
self.skip_download = skip_download
|
|
64
67
|
self.env = env
|
|
68
|
+
self.repo_root_for_plan_enrichment = repo_root_for_plan_enrichment
|
|
69
|
+
self.deep_analysis = deep_analysis
|
|
65
70
|
|
|
66
71
|
def create_config_dict(self):
|
|
67
72
|
if self.framework is not None:
|
|
@@ -111,6 +116,20 @@ class CheckovConfig:
|
|
|
111
116
|
raise ValueError(
|
|
112
117
|
MESSAGE_VALUE + CheckovConfigEnum.DIRECTORIES.value + MESSAGE_NIL
|
|
113
118
|
)
|
|
119
|
+
|
|
120
|
+
if self.repo_root_for_plan_enrichment is not None:
|
|
121
|
+
self.dict_confg_file[
|
|
122
|
+
CheckovConfigEnum.REPO_ROOT_FOR_PLAN_ENRICHMENT.value
|
|
123
|
+
] = self.repo_root_for_plan_enrichment
|
|
124
|
+
else:
|
|
125
|
+
self.dict_confg_file.pop(CheckovConfigEnum.REPO_ROOT_FOR_PLAN_ENRICHMENT.value, None)
|
|
126
|
+
|
|
127
|
+
if self.deep_analysis is not None:
|
|
128
|
+
self.dict_confg_file[
|
|
129
|
+
CheckovConfigEnum.DEEP_ANALYSIS.value
|
|
130
|
+
] = self.deep_analysis
|
|
131
|
+
else:
|
|
132
|
+
self.dict_confg_file.pop(CheckovConfigEnum.DEEP_ANALYSIS.value, None)
|
|
114
133
|
|
|
115
134
|
if self.evaluate_variables is not None:
|
|
116
135
|
self.dict_confg_file[
|
|
@@ -148,7 +148,8 @@ class CheckovTool(ToolGateway):
|
|
|
148
148
|
agent_env,
|
|
149
149
|
environment,
|
|
150
150
|
platform_to_scan,
|
|
151
|
-
command_prefix
|
|
151
|
+
command_prefix,
|
|
152
|
+
dict_args
|
|
152
153
|
):
|
|
153
154
|
output_queue = queue.Queue()
|
|
154
155
|
# Crea una lista para almacenar los hilos
|
|
@@ -160,8 +161,10 @@ class CheckovTool(ToolGateway):
|
|
|
160
161
|
elem.upper() in rule for elem in platform_to_scan
|
|
161
162
|
):
|
|
162
163
|
framework = [self.framework_mapping[rule]]
|
|
164
|
+
repo_root = None
|
|
163
165
|
if "terraform" in platform_to_scan or ("all" in platform_to_scan and self.framework_mapping[rule] == "terraform"):
|
|
164
166
|
framework.append("terraform_plan")
|
|
167
|
+
repo_root = dict_args.get("terraform_repo_root", None)
|
|
165
168
|
|
|
166
169
|
checkov_config = CheckovConfig(
|
|
167
170
|
path_config_file="",
|
|
@@ -192,6 +195,12 @@ class CheckovTool(ToolGateway):
|
|
|
192
195
|
and rule in self.framework_external_checks
|
|
193
196
|
else []
|
|
194
197
|
),
|
|
198
|
+
repo_root_for_plan_enrichment=repo_root,
|
|
199
|
+
deep_analysis=(
|
|
200
|
+
True
|
|
201
|
+
if repo_root
|
|
202
|
+
else None
|
|
203
|
+
)
|
|
195
204
|
)
|
|
196
205
|
|
|
197
206
|
checkov_config.create_config_dict()
|
|
@@ -240,7 +249,7 @@ class CheckovTool(ToolGateway):
|
|
|
240
249
|
|
|
241
250
|
if command_prefix is not None:
|
|
242
251
|
result_scans, rules_run = self.scan_folders(
|
|
243
|
-
folders_to_scan, config_tool, agent_env, environment, platform_to_scan, command_prefix
|
|
252
|
+
folders_to_scan, config_tool, agent_env, environment, platform_to_scan, command_prefix, kwargs.get("dict_args")
|
|
244
253
|
)
|
|
245
254
|
|
|
246
255
|
checkov_deserealizator = CheckovDeserealizator()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.
|
|
1
|
+
version = '1.58.0'
|
{devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.58.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
|
|
@@ -32,6 +32,7 @@ Requires-Dist: ruamel.yaml==0.18.6
|
|
|
32
32
|
Requires-Dist: Authlib==1.3.2
|
|
33
33
|
Requires-Dist: PyJWT==2.9.0
|
|
34
34
|
Requires-Dist: sympy==1.13.3
|
|
35
|
+
Requires-Dist: holidays==0.58
|
|
35
36
|
|
|
36
37
|
# DevSecOps Engine Tools
|
|
37
38
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
devsecops_engine_tools/version.py,sha256=
|
|
2
|
+
devsecops_engine_tools/version.py,sha256=az0Lu4HqJfr2fFy_Az3mdBs66w7djPHVRbb1T0hjDmQ,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=
|
|
6
|
+
devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=oGzG_YAnGw1YNOFG_llMMeYzQRXrjmHiBVoPvsjgHeU,9736
|
|
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
|
|
@@ -101,7 +101,7 @@ devsecops_engine_tools/engine_risk/src/domain/model/gateways/__init__.py,sha256=
|
|
|
101
101
|
devsecops_engine_tools/engine_risk/src/domain/model/gateways/add_epss_gateway.py,sha256=cTm4QSxiaUt7ETCdXWZxKEus8pmEDA3e9k5b39SLDDE,178
|
|
102
102
|
devsecops_engine_tools/engine_risk/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
103
|
devsecops_engine_tools/engine_risk/src/domain/usecases/add_data.py,sha256=4wqDj-q7hJfJscvrbMDcy7tONqxdxl-CSl_TWTRUGKA,402
|
|
104
|
-
devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py,sha256=
|
|
104
|
+
devsecops_engine_tools/engine_risk/src/domain/usecases/break_build.py,sha256=nCUvHa4azCfQSdVzoJcyWOn3vzdSlgibzBS2J3Qqfsc,17011
|
|
105
105
|
devsecops_engine_tools/engine_risk/src/domain/usecases/check_threshold.py,sha256=VYdmcbAuNNvdHCegRfvza7YJ8FHbFNyDosrKJrMW93I,765
|
|
106
106
|
devsecops_engine_tools/engine_risk/src/domain/usecases/get_exclusions.py,sha256=1UNNq_Yhg3R78jLRSKcMNQYe8T8gl1C31C0ttBF0OAk,3992
|
|
107
107
|
devsecops_engine_tools/engine_risk/src/domain/usecases/handle_filters.py,sha256=R53fnuIQYfr7YbpMz1BGPJ1d5z9jY_Hnm7EmPt99wlE,3608
|
|
@@ -146,13 +146,13 @@ devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py,sh
|
|
|
146
146
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
147
147
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py,sha256=ClElxyHbwfDCW0fgcehaNfQLq00zozhO71EnyCjzt-U,182
|
|
148
148
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
-
devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py,sha256=
|
|
149
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/iac_scan.py,sha256=NbA3urTxxXVWiPmzWcV2mQctIng3RZSmXLOuiCnQbX0,6244
|
|
150
150
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
151
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
152
152
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
|
-
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py,sha256=
|
|
153
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py,sha256=TctUDUvNsErWQ7B41eYCJ0REzGTSyMXJl19mFu33Lv4,5245
|
|
154
154
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py,sha256=l_opY909gh1m3k2ud2xDrCVnDTBe3ApYT75juBf_uMk,1836
|
|
155
|
-
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py,sha256=
|
|
155
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py,sha256=Nzc3uZPitLT7mKiyM4KxtwmFLVZQIgQ1TaNtejc_4Zs,13048
|
|
156
156
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
157
157
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py,sha256=tZq3jutZL2M9XIxm5K_xd3mWwTCMVmHQPFNvrslCqCM,2092
|
|
158
158
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py,sha256=pVNZclcBKA6Ebm9kUfBWlHFI37ROT58CdqcczeM1UGs,6656
|
|
@@ -349,8 +349,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
|
|
|
349
349
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
|
|
350
350
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=Z0fdhB3r-dxU0nGSD9zW_B4r2Qol1rUnUCkhFR0U-HQ,487
|
|
351
351
|
devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=HCjS900TBoNcHrC4LaiP-Kf9frVdtagF130qOUgnO2M,6757
|
|
352
|
-
devsecops_engine_tools-1.
|
|
353
|
-
devsecops_engine_tools-1.
|
|
354
|
-
devsecops_engine_tools-1.
|
|
355
|
-
devsecops_engine_tools-1.
|
|
356
|
-
devsecops_engine_tools-1.
|
|
352
|
+
devsecops_engine_tools-1.58.0.dist-info/METADATA,sha256=OIufybH_vyGaVr0a4k3V7fhev7UYUgEBQ8dQdZtLepM,11809
|
|
353
|
+
devsecops_engine_tools-1.58.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
354
|
+
devsecops_engine_tools-1.58.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
|
|
355
|
+
devsecops_engine_tools-1.58.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
356
|
+
devsecops_engine_tools-1.58.0.dist-info/RECORD,,
|
|
File without changes
|
{devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.56.5.dist-info → devsecops_engine_tools-1.58.0.dist-info}/top_level.txt
RENAMED
|
File without changes
|