devsecops-engine-tools 1.7.33__py3-none-any.whl → 1.7.35__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/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +71 -27
- devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +2 -3
- devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +1 -1
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/METADATA +51 -18
- {devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/RECORD +9 -9
- {devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/WHEEL +1 -1
- {devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/top_level.txt +0 -0
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py
CHANGED
|
@@ -24,6 +24,12 @@ from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
|
24
24
|
)
|
|
25
25
|
from functools import partial
|
|
26
26
|
|
|
27
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
28
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
29
|
+
import time
|
|
30
|
+
|
|
31
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
32
|
+
|
|
27
33
|
|
|
28
34
|
@dataclass
|
|
29
35
|
class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
@@ -56,7 +62,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
56
62
|
"TRUFFLEHOG": "Trufflehog Scan",
|
|
57
63
|
"TRIVY": "Trivy Scan",
|
|
58
64
|
"KUBESCAPE": "Kubescape Scanner",
|
|
59
|
-
"KICS": "KICS Scanner"
|
|
65
|
+
"KICS": "KICS Scanner",
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
if any(
|
|
@@ -64,7 +70,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
64
70
|
for branch in vulnerability_management.config_tool[
|
|
65
71
|
"VULNERABILITY_MANAGER"
|
|
66
72
|
]["BRANCH_FILTER"].split(",")
|
|
67
|
-
) or (vulnerability_management.dict_args["tool"] ==
|
|
73
|
+
) or (vulnerability_management.dict_args["tool"] == "engine_secret"):
|
|
68
74
|
request: ImportScanRequest = Connect.cmdb(
|
|
69
75
|
cmdb_mapping={
|
|
70
76
|
"product_type_name": "nombreevc",
|
|
@@ -105,7 +111,17 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
105
111
|
tags=vulnerability_management.dict_args["tool"],
|
|
106
112
|
)
|
|
107
113
|
|
|
108
|
-
|
|
114
|
+
def request_func():
|
|
115
|
+
return DefectDojo.send_import_scan(request)
|
|
116
|
+
|
|
117
|
+
response = self._retries_requests(
|
|
118
|
+
request_func,
|
|
119
|
+
vulnerability_management.config_tool["VULNERABILITY_MANAGER"][
|
|
120
|
+
"DEFECT_DOJO"
|
|
121
|
+
]["MAX_RETRIES_QUERY"],
|
|
122
|
+
retry_delay=5,
|
|
123
|
+
)
|
|
124
|
+
|
|
109
125
|
if hasattr(response, "url"):
|
|
110
126
|
url_parts = response.url.split("//")
|
|
111
127
|
test_string = "//".join([url_parts[0] + "/", url_parts[1]])
|
|
@@ -124,11 +140,17 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
124
140
|
|
|
125
141
|
def get_findings_excepted(self, service, dict_args, secret_tool, config_tool):
|
|
126
142
|
try:
|
|
127
|
-
session_manager = self._get_session_manager(
|
|
143
|
+
session_manager = self._get_session_manager(
|
|
144
|
+
dict_args, secret_tool, config_tool
|
|
145
|
+
)
|
|
128
146
|
|
|
129
147
|
dd_limits_query = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
130
148
|
"LIMITS_QUERY"
|
|
131
149
|
]
|
|
150
|
+
dd_max_retries = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
151
|
+
"MAX_RETRIES_QUERY"
|
|
152
|
+
]
|
|
153
|
+
|
|
132
154
|
tool = dict_args["tool"]
|
|
133
155
|
|
|
134
156
|
risk_accepted_query_params = {
|
|
@@ -145,6 +167,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
145
167
|
exclusions_risk_accepted = self._get_findings_with_exclusions(
|
|
146
168
|
session_manager,
|
|
147
169
|
service,
|
|
170
|
+
dd_max_retries,
|
|
148
171
|
risk_accepted_query_params,
|
|
149
172
|
tool,
|
|
150
173
|
self._format_date_to_dd_format,
|
|
@@ -154,6 +177,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
154
177
|
exclusions_false_positive = self._get_findings_with_exclusions(
|
|
155
178
|
session_manager,
|
|
156
179
|
service,
|
|
180
|
+
dd_max_retries,
|
|
157
181
|
false_positive_query_params,
|
|
158
182
|
tool,
|
|
159
183
|
self._format_date_to_dd_format,
|
|
@@ -168,23 +192,29 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
168
192
|
)
|
|
169
193
|
)
|
|
170
194
|
|
|
171
|
-
def get_all_findings(
|
|
172
|
-
self, service, dict_args, secret_tool, config_tool
|
|
173
|
-
):
|
|
195
|
+
def get_all_findings(self, service, dict_args, secret_tool, config_tool):
|
|
174
196
|
try:
|
|
175
197
|
all_findings_query_params = {
|
|
176
|
-
"limit": config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
198
|
+
"limit": config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
199
|
+
"LIMITS_QUERY"
|
|
200
|
+
]
|
|
177
201
|
}
|
|
202
|
+
max_retries = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
203
|
+
"MAX_RETRIES_QUERY"
|
|
204
|
+
]
|
|
178
205
|
|
|
179
206
|
findings = self._get_findings(
|
|
180
207
|
self._get_session_manager(dict_args, secret_tool, config_tool),
|
|
181
|
-
service,
|
|
182
|
-
|
|
208
|
+
service,
|
|
209
|
+
max_retries,
|
|
210
|
+
all_findings_query_params,
|
|
183
211
|
)
|
|
184
212
|
|
|
185
213
|
maped_list = list(
|
|
186
214
|
map(
|
|
187
|
-
partial(
|
|
215
|
+
partial(
|
|
216
|
+
self._create_report, date_fn=self._format_date_to_dd_format
|
|
217
|
+
),
|
|
188
218
|
findings,
|
|
189
219
|
)
|
|
190
220
|
)
|
|
@@ -193,33 +223,49 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
193
223
|
|
|
194
224
|
except Exception as ex:
|
|
195
225
|
raise ExceptionGettingFindings(
|
|
196
|
-
"Error getting all findings with the following error: {0} ".format(
|
|
197
|
-
ex
|
|
198
|
-
)
|
|
226
|
+
"Error getting all findings with the following error: {0} ".format(ex)
|
|
199
227
|
)
|
|
200
228
|
|
|
201
229
|
def _get_session_manager(self, dict_args, secret_tool, config_tool):
|
|
202
|
-
token_dd = dict_args.get(
|
|
203
|
-
|
|
204
|
-
|
|
230
|
+
token_dd = dict_args.get("token_vulnerability_management") or secret_tool.get(
|
|
231
|
+
"token_defect_dojo"
|
|
232
|
+
)
|
|
205
233
|
return SessionManager(
|
|
206
234
|
token_dd,
|
|
207
235
|
config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"],
|
|
208
236
|
)
|
|
209
237
|
|
|
210
238
|
def _get_findings_with_exclusions(
|
|
211
|
-
self, session_manager, service, query_params, tool, date_fn, reason
|
|
239
|
+
self, session_manager, service, max_retries, query_params, tool, date_fn, reason
|
|
212
240
|
):
|
|
213
|
-
findings = self._get_findings(
|
|
241
|
+
findings = self._get_findings(
|
|
242
|
+
session_manager, service, max_retries, query_params
|
|
243
|
+
)
|
|
214
244
|
return map(
|
|
215
245
|
partial(self._create_exclusion, date_fn=date_fn, tool=tool, reason=reason),
|
|
216
246
|
findings,
|
|
217
247
|
)
|
|
218
248
|
|
|
219
|
-
def _get_findings(self, session_manager, service, query_params):
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
249
|
+
def _get_findings(self, session_manager, service, max_retries, query_params):
|
|
250
|
+
def request_func():
|
|
251
|
+
return Finding.get_finding(
|
|
252
|
+
session=session_manager, service=service, **query_params
|
|
253
|
+
).results
|
|
254
|
+
|
|
255
|
+
return self._retries_requests(request_func, max_retries, retry_delay=5)
|
|
256
|
+
|
|
257
|
+
def _retries_requests(self, request_func, max_retries, retry_delay):
|
|
258
|
+
for attempt in range(max_retries):
|
|
259
|
+
try:
|
|
260
|
+
return request_func()
|
|
261
|
+
except Exception as e:
|
|
262
|
+
logger.error(f"Error making the request: {e}")
|
|
263
|
+
if attempt < max_retries - 1:
|
|
264
|
+
logger.warning(f"Retry in {retry_delay} seconds...")
|
|
265
|
+
time.sleep(retry_delay)
|
|
266
|
+
else:
|
|
267
|
+
logger.error("Maximum number of retries reached, aborting.")
|
|
268
|
+
raise e
|
|
223
269
|
|
|
224
270
|
def _create_exclusion(self, finding, date_fn, tool, reason):
|
|
225
271
|
return Exclusions(
|
|
@@ -241,9 +287,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
241
287
|
def _create_report(self, finding, date_fn):
|
|
242
288
|
return Report(
|
|
243
289
|
id=finding.vuln_id_from_tool,
|
|
244
|
-
date=date_fn(
|
|
245
|
-
finding.date
|
|
246
|
-
),
|
|
290
|
+
date=date_fn(finding.date),
|
|
247
291
|
status=finding.display_status,
|
|
248
292
|
where=self._get_where_report(finding),
|
|
249
293
|
tags=finding.tags,
|
|
@@ -257,7 +301,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
257
301
|
if date_string
|
|
258
302
|
else None
|
|
259
303
|
)
|
|
260
|
-
|
|
304
|
+
|
|
261
305
|
def _get_where_report(self, finding):
|
|
262
306
|
for tag in finding.tags:
|
|
263
307
|
return self._get_where(finding, tag)
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py
CHANGED
|
@@ -25,7 +25,7 @@ class ProductRestConsumer:
|
|
|
25
25
|
raise ApiError(response.json())
|
|
26
26
|
products_object = ProductList.from_dict(response.json())
|
|
27
27
|
except Exception as e:
|
|
28
|
-
logger.error(f"from dict product: {
|
|
28
|
+
logger.error(f"from dict product: {e}")
|
|
29
29
|
raise ApiError(e)
|
|
30
30
|
return products_object
|
|
31
31
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.7.
|
|
1
|
+
version = '1.7.35'
|
{devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.35
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -10,20 +10,20 @@ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or l
|
|
|
10
10
|
Classifier: Operating System :: OS Independent
|
|
11
11
|
Requires-Python: >=3.8
|
|
12
12
|
Description-Content-Type: text/markdown
|
|
13
|
-
Requires-Dist: requests
|
|
14
|
-
Requires-Dist: multipledispatch
|
|
15
|
-
Requires-Dist: PyYAML
|
|
16
|
-
Requires-Dist: checkov
|
|
17
|
-
Requires-Dist: pyfiglet
|
|
18
|
-
Requires-Dist: prettytable
|
|
19
|
-
Requires-Dist: azure-devops
|
|
20
|
-
Requires-Dist: marshmallow
|
|
21
|
-
Requires-Dist: pytz
|
|
22
|
-
Requires-Dist: python-decouple
|
|
23
|
-
Requires-Dist: requests-toolbelt
|
|
24
|
-
Requires-Dist: python-dateutil
|
|
25
|
-
Requires-Dist: pexpect
|
|
26
|
-
Requires-Dist: PyGithub
|
|
13
|
+
Requires-Dist: requests==2.31.0
|
|
14
|
+
Requires-Dist: multipledispatch==0.6.0
|
|
15
|
+
Requires-Dist: PyYAML==6.0.1
|
|
16
|
+
Requires-Dist: checkov==2.3.296
|
|
17
|
+
Requires-Dist: pyfiglet==0.7
|
|
18
|
+
Requires-Dist: prettytable==3.8.0
|
|
19
|
+
Requires-Dist: azure-devops==7.1.0b3
|
|
20
|
+
Requires-Dist: marshmallow==3.19.0
|
|
21
|
+
Requires-Dist: pytz==2023.3
|
|
22
|
+
Requires-Dist: python-decouple==3.8
|
|
23
|
+
Requires-Dist: requests-toolbelt==1.0.0
|
|
24
|
+
Requires-Dist: python-dateutil==2.8.2
|
|
25
|
+
Requires-Dist: pexpect==4.9.0
|
|
26
|
+
Requires-Dist: PyGithub==2.3.0
|
|
27
27
|
|
|
28
28
|
# DevSecOps Engine Tools
|
|
29
29
|
|
|
@@ -150,9 +150,42 @@ $ set +a
|
|
|
150
150
|
devsecops-engine-tools --platform_devops local --remote_config_repo DevSecOps_Remote_Config --tool engine_iac
|
|
151
151
|
|
|
152
152
|
```
|
|
153
|
-
### Scan result sample (CLI)
|
|
154
153
|
|
|
155
|
-

|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
### Scan running sample - Azure Pipelines
|
|
158
|
+
|
|
159
|
+
The remote config should be in a Azure Devops repository.
|
|
160
|
+
|
|
161
|
+
Note: By default the tool gets the token from the SYSTEM_ACCESSTOKEN variable to get the remote configuration repository. You must ensure that this token has permission to access this resource.
|
|
162
|
+
|
|
163
|
+
```yaml
|
|
164
|
+
name: $(Build.SourceBranchName).$(date:yyyyMMdd)$(rev:.r)
|
|
165
|
+
|
|
166
|
+
trigger:
|
|
167
|
+
branches:
|
|
168
|
+
include:
|
|
169
|
+
- trunk
|
|
170
|
+
- feature/*
|
|
171
|
+
|
|
172
|
+
stages:
|
|
173
|
+
- stage: engine_tools
|
|
174
|
+
displayName: Example Engine Tools
|
|
175
|
+
jobs:
|
|
176
|
+
- job: engine_tools
|
|
177
|
+
pool:
|
|
178
|
+
name: Azure Pipelines
|
|
179
|
+
steps:
|
|
180
|
+
- script: |
|
|
181
|
+
# Install devsecops-engine-tools
|
|
182
|
+
pip3 install -q devsecops-engine-tools
|
|
183
|
+
devsecops-engine-tools --platform_devops azure --remote_config_repo remote_config --tool engine_iac
|
|
184
|
+
displayName: "Engine Tools"
|
|
185
|
+
env:
|
|
186
|
+
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
|
|
187
|
+
|
|
188
|
+
```
|
|
156
189
|
|
|
157
190
|
### Scan running sample - Github Actions
|
|
158
191
|
|
|
@@ -167,7 +200,7 @@ For more information, refer to [Automatic token authentication](https://docs.git
|
|
|
167
200
|
|
|
168
201
|
1. Create a personal access token with the necessary permissions to access the repository.
|
|
169
202
|
2. Add the token as a secret in the GitHub repository.
|
|
170
|
-

|
|
171
204
|
|
|
172
205
|
3. Configure the yml file containing the workflow using the created secret.
|
|
173
206
|
|
|
@@ -1,5 +1,5 @@
|
|
|
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=OhfuJ_hT9u5zxcpsZ-frhGCe3RVrLT8Y3u7VfOtZMC8,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
|
|
@@ -36,7 +36,7 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secret
|
|
|
36
36
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
37
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=Ot1j5my-iEpU-ZYy9yNXkwmwLOmJ3f95JyyAUcpFN5g,4967
|
|
38
38
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=
|
|
39
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=DCHx5xadwtuXf8dqjOOw_2Ssb9In-PikfwbWCW7oIww,12676
|
|
40
40
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
41
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=JhTfHCR4G29VByrS7ntKZwXbfCHpO0C3D8vIQlBD4rQ,3855
|
|
42
42
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -197,7 +197,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py,sha256=RXqe3J12f
|
|
|
197
197
|
devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py,sha256=WDvgS22lIJJNoIM4b6mrxT8Bu_6hADmrCOZgvf5yGVY,45
|
|
198
198
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
199
199
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py,sha256=RfHBfE0TFV9kEI21FIlfodqYIXNRCcux4h0sLgCkqhA,1879
|
|
200
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=
|
|
200
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=xC4rOfTv66uaBqbsP3Xe5_BfG84b8lgLq68-3Al9yag,2297
|
|
201
201
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py,sha256=SBbFawywfvfpqFjFdnK-LaoC05bqJe2-ee6gYntMLUk,1727
|
|
202
202
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
203
203
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -225,7 +225,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapt
|
|
|
225
225
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py,sha256=A4sTRzEN16c70wgxLbdBepRZ3acrOEzBnQXRJdpUBBc,2673
|
|
226
226
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py,sha256=_908m1MLeN77grEKzAQnZ9JFGtpFzT8T6B64YDlspMg,1913
|
|
227
227
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py,sha256=68Qd8o0oSxFG-3cRlX97BkX9muS6k64DGslGtX9sx6M,5897
|
|
228
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py,sha256=
|
|
228
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py,sha256=viYd3_x-KAXGJE7b-AmLCRnfARTZ_1haLprEWcROcLc,2660
|
|
229
229
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py,sha256=9Lzsh9HCs4rbJ2b6X11renvYU3g6s-1q2NUDwbYX0qY,3051
|
|
230
230
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py,sha256=YVIHiXPkJ8m1nOW7lG8LGbST16eMZoJwFQcrRRU7R6k,3089
|
|
231
231
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -249,8 +249,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
|
|
|
249
249
|
devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
|
|
250
250
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=GAslbWaBpwP3mP6fBsgVl07TTBgcCggQTy8h2M9ibeo,612
|
|
251
251
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
|
|
252
|
-
devsecops_engine_tools-1.7.
|
|
253
|
-
devsecops_engine_tools-1.7.
|
|
254
|
-
devsecops_engine_tools-1.7.
|
|
255
|
-
devsecops_engine_tools-1.7.
|
|
256
|
-
devsecops_engine_tools-1.7.
|
|
252
|
+
devsecops_engine_tools-1.7.35.dist-info/METADATA,sha256=PUNsb3dgI67eUI69PMGMgLPQfSdDjJXUCZonuh8hR4E,8614
|
|
253
|
+
devsecops_engine_tools-1.7.35.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
254
|
+
devsecops_engine_tools-1.7.35.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
|
|
255
|
+
devsecops_engine_tools-1.7.35.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
256
|
+
devsecops_engine_tools-1.7.35.dist-info/RECORD,,
|
{devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.7.33.dist-info → devsecops_engine_tools-1.7.35.dist-info}/top_level.txt
RENAMED
|
File without changes
|