devsecops-engine-tools 1.14.1__py3-none-any.whl → 1.14.3__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/domain/model/gateway/vulnerability_management_gateway.py +4 -0
- devsecops_engine_tools/engine_core/src/domain/model/threshold.py +1 -4
- devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -3
- devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +61 -9
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +37 -2
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +1 -1
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +3 -6
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +1 -2
- devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +2 -1
- devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +4 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +30 -9
- devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py +14 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +7 -1
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +1 -1
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py +9 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +7 -6
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/METADATA +1 -1
- {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/RECORD +22 -21
- devsecops_engine_tools/engine_core/src/domain/model/custom_level_vulnerability.py +0 -8
- {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/WHEEL +0 -0
- {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/top_level.txt +0 -0
devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py
CHANGED
|
@@ -10,6 +10,10 @@ class VulnerabilityManagementGateway(metaclass=ABCMeta):
|
|
|
10
10
|
):
|
|
11
11
|
"send_vulnerability_management"
|
|
12
12
|
|
|
13
|
+
@abstractmethod
|
|
14
|
+
def get_product_type_service(self, service, dict_args, secret_tool, config_tool):
|
|
15
|
+
"get_product_type_service"
|
|
16
|
+
|
|
13
17
|
@abstractmethod
|
|
14
18
|
def get_findings_excepted(
|
|
15
19
|
self, service, dict_args, secret_tool, config_tool
|
|
@@ -4,13 +4,10 @@ from devsecops_engine_tools.engine_core.src.domain.model.level_vulnerability imp
|
|
|
4
4
|
from devsecops_engine_tools.engine_core.src.domain.model.level_compliance import (
|
|
5
5
|
LevelCompliance,
|
|
6
6
|
)
|
|
7
|
-
from devsecops_engine_tools.engine_core.src.domain.model.custom_level_vulnerability import (
|
|
8
|
-
CustomLevelVulnerability,
|
|
9
|
-
)
|
|
10
7
|
|
|
11
8
|
class Threshold:
|
|
12
9
|
def __init__(self, data):
|
|
13
10
|
self.vulnerability = LevelVulnerability(data.get("VULNERABILITY"))
|
|
14
11
|
self.compliance = LevelCompliance(data.get("COMPLIANCE"))
|
|
15
12
|
self.cve = data.get("CVE",[])
|
|
16
|
-
self.
|
|
13
|
+
self.quality_vulnerability_management = data.get("QUALITY_VULNERABILITY_MANAGEMENT") if data.get("QUALITY_VULNERABILITY_MANAGEMENT") else None
|
|
@@ -67,9 +67,6 @@ class BreakBuild:
|
|
|
67
67
|
"compliances": {},
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
if threshold.custom_vulnerability and bool(re.match(threshold.custom_vulnerability.pattern_apps, input_core.scope_pipeline, re.IGNORECASE)):
|
|
71
|
-
threshold.vulnerability = threshold.custom_vulnerability.vulnerability
|
|
72
|
-
|
|
73
70
|
if len(findings_list) != 0:
|
|
74
71
|
self._apply_policie_exception_new_vulnerability_industry(
|
|
75
72
|
findings_list, exclusions, args
|
|
@@ -19,6 +19,10 @@ from devsecops_engine_tools.engine_core.src.domain.model.gateway.devops_platform
|
|
|
19
19
|
from devsecops_engine_tools.engine_core.src.domain.model.vulnerability_management import (
|
|
20
20
|
VulnerabilityManagement,
|
|
21
21
|
)
|
|
22
|
+
from devsecops_engine_tools.engine_core.src.domain.model.input_core import InputCore
|
|
23
|
+
from devsecops_engine_tools.engine_core.src.domain.model.level_vulnerability import (
|
|
24
|
+
LevelVulnerability,
|
|
25
|
+
)
|
|
22
26
|
from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions import (
|
|
23
27
|
ExceptionVulnerabilityManagement,
|
|
24
28
|
ExceptionFindingsExcepted,
|
|
@@ -52,6 +56,37 @@ class HandleScan:
|
|
|
52
56
|
self.secrets_manager_gateway = secrets_manager_gateway
|
|
53
57
|
self.devops_platform_gateway = devops_platform_gateway
|
|
54
58
|
|
|
59
|
+
def _define_threshold_quality_vuln(
|
|
60
|
+
self, input_core: InputCore, dict_args, secret_tool, config_tool
|
|
61
|
+
):
|
|
62
|
+
quality_vulnerability_management = (
|
|
63
|
+
input_core.threshold_defined.quality_vulnerability_management
|
|
64
|
+
)
|
|
65
|
+
if quality_vulnerability_management:
|
|
66
|
+
product_type = self.vulnerability_management.get_product_type_service(
|
|
67
|
+
input_core.scope_pipeline, dict_args, secret_tool, config_tool
|
|
68
|
+
)
|
|
69
|
+
if product_type:
|
|
70
|
+
pt_name = product_type.name
|
|
71
|
+
apply_qualitypt = next(
|
|
72
|
+
filter(
|
|
73
|
+
lambda qapt: pt_name in qapt,
|
|
74
|
+
quality_vulnerability_management["PTS"],
|
|
75
|
+
),
|
|
76
|
+
None,
|
|
77
|
+
)
|
|
78
|
+
if apply_qualitypt:
|
|
79
|
+
pt_info = apply_qualitypt[pt_name]
|
|
80
|
+
pt_profile = pt_info["PROFILE"]
|
|
81
|
+
pt_apps = pt_info["APPS"]
|
|
82
|
+
|
|
83
|
+
input_core.threshold_defined.vulnerability = (
|
|
84
|
+
LevelVulnerability(quality_vulnerability_management[pt_profile])
|
|
85
|
+
if pt_apps == "ALL"
|
|
86
|
+
or any(map(lambda pd: pd in input_core.scope_pipeline, pt_apps))
|
|
87
|
+
else input_core.threshold_defined.vulnerability
|
|
88
|
+
)
|
|
89
|
+
|
|
55
90
|
def _use_vulnerability_management(
|
|
56
91
|
self, config_tool, input_core, dict_args, secret_tool, env
|
|
57
92
|
):
|
|
@@ -72,9 +107,14 @@ class HandleScan:
|
|
|
72
107
|
self.devops_platform_gateway.get_variable("build_id"),
|
|
73
108
|
self.devops_platform_gateway.get_variable("branch_tag"),
|
|
74
109
|
self.devops_platform_gateway.get_variable("commit_hash"),
|
|
75
|
-
env
|
|
110
|
+
env,
|
|
76
111
|
)
|
|
77
112
|
)
|
|
113
|
+
|
|
114
|
+
self._define_threshold_quality_vuln(
|
|
115
|
+
input_core, dict_args, secret_tool, config_tool
|
|
116
|
+
)
|
|
117
|
+
|
|
78
118
|
except ExceptionVulnerabilityManagement as ex1:
|
|
79
119
|
logger.error(str(ex1))
|
|
80
120
|
try:
|
|
@@ -92,23 +132,33 @@ class HandleScan:
|
|
|
92
132
|
def process(self, dict_args: any, config_tool: any):
|
|
93
133
|
secret_tool = None
|
|
94
134
|
env = define_env(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
135
|
+
self.devops_platform_gateway.get_variable("environment"),
|
|
136
|
+
self.devops_platform_gateway.get_variable("branch_name"),
|
|
137
|
+
)
|
|
98
138
|
if dict_args["use_secrets_manager"] == "true":
|
|
99
139
|
secret_tool = self.secrets_manager_gateway.get_secret(config_tool)
|
|
100
140
|
if "engine_iac" in dict_args["tool"]:
|
|
101
141
|
findings_list, input_core = runner_engine_iac(
|
|
102
|
-
dict_args,
|
|
142
|
+
dict_args,
|
|
143
|
+
config_tool["ENGINE_IAC"]["TOOL"],
|
|
144
|
+
secret_tool,
|
|
145
|
+
self.devops_platform_gateway,
|
|
146
|
+
env,
|
|
103
147
|
)
|
|
104
|
-
if
|
|
148
|
+
if (
|
|
149
|
+
dict_args["use_vulnerability_management"] == "true"
|
|
150
|
+
and input_core.path_file_results
|
|
151
|
+
):
|
|
105
152
|
self._use_vulnerability_management(
|
|
106
153
|
config_tool, input_core, dict_args, secret_tool, env
|
|
107
154
|
)
|
|
108
155
|
return findings_list, input_core
|
|
109
156
|
elif "engine_container" in dict_args["tool"]:
|
|
110
157
|
findings_list, input_core = runner_engine_container(
|
|
111
|
-
dict_args,
|
|
158
|
+
dict_args,
|
|
159
|
+
config_tool["ENGINE_CONTAINER"]["TOOL"],
|
|
160
|
+
secret_tool,
|
|
161
|
+
self.devops_platform_gateway,
|
|
112
162
|
)
|
|
113
163
|
if (
|
|
114
164
|
dict_args["use_vulnerability_management"] == "true"
|
|
@@ -122,7 +172,9 @@ class HandleScan:
|
|
|
122
172
|
print(MESSAGE_ENABLED)
|
|
123
173
|
elif "engine_code" in dict_args["tool"]:
|
|
124
174
|
findings_list, input_core = runner_engine_code(
|
|
125
|
-
dict_args,
|
|
175
|
+
dict_args,
|
|
176
|
+
config_tool["ENGINE_CODE"]["TOOL"],
|
|
177
|
+
self.devops_platform_gateway,
|
|
126
178
|
)
|
|
127
179
|
if (
|
|
128
180
|
dict_args["use_vulnerability_management"] == "true"
|
|
@@ -159,4 +211,4 @@ class HandleScan:
|
|
|
159
211
|
self._use_vulnerability_management(
|
|
160
212
|
config_tool, input_core, dict_args, secret_tool, env
|
|
161
213
|
)
|
|
162
|
-
return findings_list, input_core
|
|
214
|
+
return findings_list, input_core
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py
CHANGED
|
@@ -11,6 +11,7 @@ from devsecops_engine_tools.engine_utilities.defect_dojo import (
|
|
|
11
11
|
Connect,
|
|
12
12
|
Finding,
|
|
13
13
|
Engagement,
|
|
14
|
+
Product,
|
|
14
15
|
)
|
|
15
16
|
from devsecops_engine_tools.engine_core.src.domain.model.exclusions import Exclusions
|
|
16
17
|
from devsecops_engine_tools.engine_core.src.domain.model.report import Report
|
|
@@ -19,7 +20,7 @@ from devsecops_engine_tools.engine_core.src.domain.model.customs_exceptions impo
|
|
|
19
20
|
ExceptionVulnerabilityManagement,
|
|
20
21
|
ExceptionFindingsExcepted,
|
|
21
22
|
ExceptionGettingFindings,
|
|
22
|
-
ExceptionGettingEngagements
|
|
23
|
+
ExceptionGettingEngagements,
|
|
23
24
|
)
|
|
24
25
|
from devsecops_engine_tools.engine_core.src.infrastructure.helpers.util import (
|
|
25
26
|
format_date,
|
|
@@ -142,6 +143,38 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
142
143
|
)
|
|
143
144
|
)
|
|
144
145
|
|
|
146
|
+
def get_product_type_service(self, service, dict_args, secret_tool, config_tool):
|
|
147
|
+
try:
|
|
148
|
+
session_manager = self._get_session_manager(
|
|
149
|
+
dict_args, secret_tool, config_tool
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
dd_max_retries = config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
153
|
+
"MAX_RETRIES_QUERY"
|
|
154
|
+
]
|
|
155
|
+
|
|
156
|
+
def request_func():
|
|
157
|
+
response = Product.get_product(
|
|
158
|
+
session=session_manager,
|
|
159
|
+
request={
|
|
160
|
+
"name": Connect.get_code_app(
|
|
161
|
+
service,
|
|
162
|
+
config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
163
|
+
"REGEX_EXPRESSION_CMDB"
|
|
164
|
+
],
|
|
165
|
+
),
|
|
166
|
+
"prefetch": "prod_type",
|
|
167
|
+
},
|
|
168
|
+
)
|
|
169
|
+
return response.prefetch.prod_type[str(response.results[0].prod_type)] if response.prefetch else None
|
|
170
|
+
|
|
171
|
+
return self._retries_requests(request_func, dd_max_retries, retry_delay=5)
|
|
172
|
+
|
|
173
|
+
except Exception as ex:
|
|
174
|
+
raise ExceptionVulnerabilityManagement(
|
|
175
|
+
"Error getting product type with the following error: {0} ".format(ex)
|
|
176
|
+
)
|
|
177
|
+
|
|
145
178
|
def get_findings_excepted(self, service, dict_args, secret_tool, config_tool):
|
|
146
179
|
try:
|
|
147
180
|
session_manager = self._get_session_manager(
|
|
@@ -252,7 +285,9 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
252
285
|
"Error getting all findings with the following error: {0} ".format(ex)
|
|
253
286
|
)
|
|
254
287
|
|
|
255
|
-
def get_active_engagements(
|
|
288
|
+
def get_active_engagements(
|
|
289
|
+
self, engagement_name, dict_args, secret_tool, config_tool
|
|
290
|
+
):
|
|
256
291
|
try:
|
|
257
292
|
request_is = ImportScanRequest(
|
|
258
293
|
token_defect_dojo=dict_args.get("token_vulnerability_management")
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py
CHANGED
|
@@ -42,7 +42,7 @@ class RuntimeLocal(DevopsPlatformGateway):
|
|
|
42
42
|
return os.environ.get("DET_SOURCE_CODE_MANAGEMENT_URI")
|
|
43
43
|
|
|
44
44
|
def get_base_compact_remote_config_url(self, remote_config_repo):
|
|
45
|
-
return os.environ.get(
|
|
45
|
+
return f"{os.environ.get('DET_BASE_COMPACT_REMOTE_CONFIG_URL')}?path=/"
|
|
46
46
|
|
|
47
47
|
def get_variable(self, variable):
|
|
48
48
|
env_variables = {
|
|
@@ -14,20 +14,17 @@ class SecretScanDeserealizator(DeseralizatorGateway):
|
|
|
14
14
|
|
|
15
15
|
for result in results_scan_list:
|
|
16
16
|
where_text, raw_data = self.get_where_correctly(result, os, path_directory)
|
|
17
|
-
|
|
18
|
-
rule_name = extra_data.get("name") if extra_data else None
|
|
17
|
+
rule_name = result.get("Id", {})
|
|
19
18
|
|
|
20
|
-
if
|
|
19
|
+
if "MISCONFIGURATION_SCANNING" in rule_name:
|
|
21
20
|
description = "Actuator misconfiguration can leak sensitive information"
|
|
22
|
-
finding_id = "MISCONFIGURATION_SCANNING"
|
|
23
21
|
where = f"{where_text}, Misconfiguration: {raw_data}"
|
|
24
22
|
else:
|
|
25
23
|
description = "Sensitive information in source code"
|
|
26
|
-
finding_id = "SECRET_SCANNING"
|
|
27
24
|
where = f"{where_text}, Secret: {raw_data}"
|
|
28
25
|
|
|
29
26
|
vulnerability_open = Finding(
|
|
30
|
-
id=
|
|
27
|
+
id=result.get("Id", {}),
|
|
31
28
|
cvss=None,
|
|
32
29
|
where=where,
|
|
33
30
|
description=description,
|
|
@@ -140,8 +140,7 @@ class TrufflehogRun(ToolGateway):
|
|
|
140
140
|
original_where = original_where.replace("\\", "/")
|
|
141
141
|
where_text = original_where.replace(agent_work_folder, "")
|
|
142
142
|
find["SourceMetadata"]["Data"]["Filesystem"]["file"] = where_text
|
|
143
|
-
|
|
144
|
-
find["Id"] = "MISSCONFIGURATION_SCANNING" if name != None and "Actuator" in name else "SECRET_SCANNING"
|
|
143
|
+
find["Id"] = "MISSCONFIGURATION_SCANNING" if "exposure" in find["Raw"] else "SECRET_SCANNING"
|
|
145
144
|
json_str = json.dumps(find)
|
|
146
145
|
file.write(json_str + '\n')
|
|
147
146
|
return findings, file_findings
|
|
@@ -3,4 +3,5 @@ from .domain.request_objects.finding import FindingRequest
|
|
|
3
3
|
from .applications.defect_dojo import DefectDojo
|
|
4
4
|
from .applications.finding import Finding
|
|
5
5
|
from .applications.connect import Connect
|
|
6
|
-
from .applications.engagement import Engagement
|
|
6
|
+
from .applications.engagement import Engagement
|
|
7
|
+
from .applications.product import Product
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
2
2
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
3
|
-
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.import_scan import
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.import_scan import (
|
|
4
|
+
ImportScanRestConsumer,
|
|
5
|
+
)
|
|
6
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product_type import (
|
|
7
|
+
ProductTypeRestConsumer,
|
|
8
|
+
)
|
|
9
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product import (
|
|
10
|
+
ProductRestConsumer,
|
|
11
|
+
)
|
|
6
12
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.scan_configurations import (
|
|
7
13
|
ScanConfigrationRestConsumer,
|
|
8
14
|
)
|
|
9
|
-
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.engagement import
|
|
10
|
-
|
|
11
|
-
|
|
15
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.engagement import (
|
|
16
|
+
EngagementRestConsumer,
|
|
17
|
+
)
|
|
18
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import (
|
|
19
|
+
ImportScanRequest,
|
|
20
|
+
)
|
|
21
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.user_case.import_scan import (
|
|
22
|
+
ImportScanUserCase,
|
|
23
|
+
)
|
|
12
24
|
from devsecops_engine_tools.engine_utilities.utils.session_manager import SessionManager
|
|
13
25
|
from devsecops_engine_tools.engine_utilities.settings import SETTING_LOGGER
|
|
14
26
|
|
|
@@ -22,11 +34,20 @@ class DefectDojo:
|
|
|
22
34
|
if not isinstance(request, ImportScanRequest):
|
|
23
35
|
return request
|
|
24
36
|
rest_import_scan = ImportScanRestConsumer(request, session=SessionManager())
|
|
25
|
-
rest_product_type = ProductTypeRestConsumer(
|
|
26
|
-
|
|
37
|
+
rest_product_type = ProductTypeRestConsumer(
|
|
38
|
+
request, session=SessionManager()
|
|
39
|
+
)
|
|
40
|
+
rest_product = ProductRestConsumer(
|
|
41
|
+
SessionManager(
|
|
42
|
+
request.token_defect_dojo,
|
|
43
|
+
request.host_defect_dojo,
|
|
44
|
+
)
|
|
45
|
+
)
|
|
27
46
|
rest_engagement = EngagementRestConsumer(request, session=SessionManager())
|
|
28
47
|
|
|
29
|
-
rest_scan_configuration = ScanConfigrationRestConsumer(
|
|
48
|
+
rest_scan_configuration = ScanConfigrationRestConsumer(
|
|
49
|
+
request, session=SessionManager()
|
|
50
|
+
)
|
|
30
51
|
uc = ImportScanUserCase(
|
|
31
52
|
rest_import_scan,
|
|
32
53
|
rest_product_type,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
2
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.user_case.product import ProductUserCase
|
|
3
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product import ProductRestConsumer
|
|
4
|
+
|
|
5
|
+
class Product:
|
|
6
|
+
@staticmethod
|
|
7
|
+
def get_product(session, request: dict):
|
|
8
|
+
try:
|
|
9
|
+
rest_product = ProductRestConsumer(session=session)
|
|
10
|
+
|
|
11
|
+
uc = ProductUserCase(rest_product)
|
|
12
|
+
return uc.execute(request)
|
|
13
|
+
except ApiError as e:
|
|
14
|
+
raise e
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import dataclasses
|
|
2
|
-
from typing import List
|
|
2
|
+
from typing import List, Dict
|
|
3
3
|
from devsecops_engine_tools.engine_utilities.utils.dataclass_classmethod import FromDictMixin
|
|
4
4
|
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.models.product import Product
|
|
5
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.models.product_type import ProductType
|
|
5
6
|
|
|
6
7
|
|
|
8
|
+
@dataclasses.dataclass
|
|
9
|
+
class Prefetch(FromDictMixin):
|
|
10
|
+
prod_type: Dict[str, ProductType]
|
|
11
|
+
|
|
7
12
|
@dataclasses.dataclass
|
|
8
13
|
class ProductList(FromDictMixin):
|
|
9
14
|
count: int = 0
|
|
10
15
|
next = None
|
|
11
16
|
previous = None
|
|
12
17
|
results: List[Product] = dataclasses.field(default_factory=list)
|
|
18
|
+
prefetch: Prefetch = None
|
|
@@ -43,7 +43,7 @@ class ImportScanUserCase:
|
|
|
43
43
|
raise ApiError(log)
|
|
44
44
|
|
|
45
45
|
logger.info(f"Match {request.scan_type}")
|
|
46
|
-
products = self.__rest_product.get_products(request)
|
|
46
|
+
products = self.__rest_product.get_products({"name":request.code_app})
|
|
47
47
|
if len(products.results) > 0:
|
|
48
48
|
product_id = products.results[0].id
|
|
49
49
|
request.product_name = products.results[0].name
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product import ProductRestConsumer
|
|
2
|
+
|
|
3
|
+
class ProductUserCase:
|
|
4
|
+
def __init__(self, rest_product: ProductRestConsumer):
|
|
5
|
+
self.__rest_product = rest_product
|
|
6
|
+
|
|
7
|
+
def execute(self, request):
|
|
8
|
+
response = self.__rest_product.get_products(request)
|
|
9
|
+
return response
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py
CHANGED
|
@@ -11,16 +11,17 @@ logger = MyLogger.__call__(**SETTING_LOGGER).get_logger()
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class ProductRestConsumer:
|
|
14
|
-
def __init__(self,
|
|
15
|
-
self.__token =
|
|
16
|
-
self.__host =
|
|
14
|
+
def __init__(self, session: SessionManager):
|
|
15
|
+
self.__token = session._token
|
|
16
|
+
self.__host = session._host
|
|
17
17
|
self.__session = session._instance
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
|
|
20
|
+
def get_products(self, request) -> ProductList:
|
|
21
|
+
url = f"{self.__host}/api/v2/products/"
|
|
21
22
|
headers = {"Authorization": f"Token {self.__token}", "Content-Type": "application/json"}
|
|
22
23
|
try:
|
|
23
|
-
response = self.__session.get(url, headers=headers,
|
|
24
|
+
response = self.__session.get(url, headers=headers, params=request, verify=VERIFY_CERTIFICATE)
|
|
24
25
|
if response.status_code != 200:
|
|
25
26
|
raise ApiError(response.json())
|
|
26
27
|
products_object = ProductList.from_dict(response.json())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.14.
|
|
1
|
+
version = '1.14.3'
|
|
@@ -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=jCNgTy1lUd0XCm0S_zNPP0-rl8thm2OZhsp51ajMVYc,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
|
|
@@ -8,7 +8,6 @@ devsecops_engine_tools/engine_core/src/deployment/__init__.py,sha256=47DEQpj8HBS
|
|
|
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
|
|
10
10
|
devsecops_engine_tools/engine_core/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
devsecops_engine_tools/engine_core/src/domain/model/custom_level_vulnerability.py,sha256=eO9m76WVslcwhYbF9IAXqhI_iYK6zKLiOVt_3AxsOLY,302
|
|
12
11
|
devsecops_engine_tools/engine_core/src/domain/model/customs_exceptions.py,sha256=YLeOj4O7kNsUx8RD6pwBQdFLYbkm7Eh-F-ohZ3jFGbs,599
|
|
13
12
|
devsecops_engine_tools/engine_core/src/domain/model/exclusions.py,sha256=rFinY7wQsIu4nNPdT9WlvzB-1S1tS3J3oQgb8tDxbZk,499
|
|
14
13
|
devsecops_engine_tools/engine_core/src/domain/model/finding.py,sha256=MntDksQuPt1L-1Ww3nK7NbMLfVwRjxPGCN_oHYXbbWk,383
|
|
@@ -16,18 +15,18 @@ devsecops_engine_tools/engine_core/src/domain/model/input_core.py,sha256=hc1WMzC
|
|
|
16
15
|
devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py,sha256=ntn_UWqHc6sT5g_LozBdjdewTQxFsp7Kt8M0xqw-k_o,98
|
|
17
16
|
devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py,sha256=0sySEnFNkS2Y8uF5GUVAYehXw-i2OglUClkVobnSTPc,257
|
|
18
17
|
devsecops_engine_tools/engine_core/src/domain/model/report.py,sha256=SGo9bxNGVO5ymjjuFlG3Tz1X9uh2JawNaQYyHHN_NL8,1640
|
|
19
|
-
devsecops_engine_tools/engine_core/src/domain/model/threshold.py,sha256=
|
|
18
|
+
devsecops_engine_tools/engine_core/src/domain/model/threshold.py,sha256=TCBECuvoC3-9g8vg3iKWGIixssNecP0iUaZ9Qzv0n7w,596
|
|
20
19
|
devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py,sha256=5RcMHpeqznrTOpkjLuqekA_Bqf2Qr-w6OZ5Eoi3b-bs,465
|
|
21
20
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
21
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py,sha256=ufAe6jd91IX-vKsFtlad2K-WliyY7TiN8wPTNmeHZD0,676
|
|
23
22
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py,sha256=u_ivbmCyymw0Je7gRFg0uD9iDmZfTbteH5UwcgP0JAs,191
|
|
24
23
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py,sha256=ROBsh7Lyu62a5RqZ4KgGQcwrBzbHRwxAJ9Rj3LoupQc,602
|
|
25
24
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/secrets_manager_gateway.py,sha256=CTwUIvUWF0NSSzdCqASUFst6KUysW53NV9eatjLGdl8,170
|
|
26
|
-
devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py,sha256=
|
|
25
|
+
devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py,sha256=dO3BAPovSg9Nz0RJl55yty10Qjtbz5FM3O25DUK_5Ic,1020
|
|
27
26
|
devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
-
devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=
|
|
27
|
+
devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=0JK4U5LGxzrLVZOw68j1PMxmLTDPru7Kts_-RtAG0jA,15965
|
|
29
28
|
devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py,sha256=1vctNN5aSPGsSgrldPiYg2Fq86q6Z9DzFdazjWAm2Do,8133
|
|
30
|
-
devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=
|
|
29
|
+
devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=Li0NDwHwj_g2iM4tKF3wyKqXWYXspTThzKxkSma3S6E,8912
|
|
31
30
|
devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=Xi0iNnPrFgqd2cBdAA5E_tgouhxs-BTo016aolnGgv8,2413
|
|
32
31
|
devsecops_engine_tools/engine_core/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
32
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -37,13 +36,13 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secret
|
|
|
37
36
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
37
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=blI4ZrquRE4y6DJ7N2YRx1nL0wrAXvdpx0fLSUf5qwA,4831
|
|
39
38
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
40
|
-
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=VyL_HpOYbr0dCXGus_Y0Ij5OoVFU3oDCsGjrlZ1hJ6k,17904
|
|
41
40
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
41
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=pxlgjhX4-Dssn-XHKK8AdCOj6Ry6VcQtoDf5q8CxTks,3731
|
|
43
42
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
43
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=oEhsYOS5dmTtNOzpWNurWgLxth6vBhWVvVlKul9Heys,3884
|
|
45
44
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py,sha256=
|
|
45
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py,sha256=qKINENZGbfV8XFF7fzUK6grQ5Jx7Nwv9xOqjjKlXp3o,2475
|
|
47
46
|
devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
47
|
devsecops_engine_tools/engine_core/src/infrastructure/entry_points/entry_point_core.py,sha256=k6WLcv2NQj-OzV8lqmXef-Nyi9MLTzKWSWSM3qPFjvc,2081
|
|
49
48
|
devsecops_engine_tools/engine_core/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -152,8 +151,8 @@ devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_c
|
|
|
152
151
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
153
152
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
154
153
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
155
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py,sha256=
|
|
156
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=
|
|
154
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py,sha256=mrSqPrkMiikxQ_uY-rF2I8QvicsOMdMBzTC8CTV3Wk8,2392
|
|
155
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=bJCl2u0QuMOFi8vxmlb2e3PlrjQCg0ayf6IAV1tmMBI,7268
|
|
157
156
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
158
157
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py,sha256=NiA5-pRL6-tMuOa2Al-wIYq3uIMFBQrJd0w7ur16kgs,1049
|
|
159
158
|
devsecops_engine_tools/engine_sca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -221,20 +220,21 @@ devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_
|
|
|
221
220
|
devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py,sha256=pCwlPDDl-hgvZ9gvceuC8GsKbsMhRm3ykhFFVByVqcI,664
|
|
222
221
|
devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py,sha256=r-PpcKlyuXzKHx6ao4SuVI9dOKMVnjL1U_b-yfJK0o4,2387
|
|
223
222
|
devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
224
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py,sha256=
|
|
223
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py,sha256=rvIEj47FCCeddFPVcOpUX4qSrMLBm60ny3NeJoUO02A,353
|
|
225
224
|
devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py,sha256=WDvgS22lIJJNoIM4b6mrxT8Bu_6hADmrCOZgvf5yGVY,45
|
|
226
225
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
227
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py,sha256=
|
|
228
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=
|
|
226
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py,sha256=tRvNN-zVKBJbHMvfW97SCsZoyjGaKttcQhLOKrbjK9E,2079
|
|
227
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=sx4luEecy7se7S3Q8RR9ZKGo8brCO5SDqcmGPC_VHWk,2555
|
|
229
228
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py,sha256=sPTeQs6QHg07QNthqhY3caVbG54vDkd_E_KJpBvgTk4,878
|
|
230
229
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py,sha256=SBbFawywfvfpqFjFdnK-LaoC05bqJe2-ee6gYntMLUk,1727
|
|
230
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py,sha256=ogJM1AqfW-f_bJP4JWeHHM82PqN7G-jKKTbO8FM2x_Q,598
|
|
231
231
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
232
232
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
233
233
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/cmdb.py,sha256=7EAzKzBJaDqP4Q57cyu_nCpl9WqcTZFjXydkYCh8h-k,320
|
|
234
234
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/engagement.py,sha256=x0mkWoLv8rRHZTh7hhI1aZb2g9XFJ-Gz_gC-f-rZdWM,1372
|
|
235
235
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/finding.py,sha256=0Xj7BOlC30LCdBjIkviB2QmmdSj0GlDvT1-TbnaT8nE,3201
|
|
236
236
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product.py,sha256=KL5ue6icA8HH1xKkmAJzElAat3OOYU3_lt3xuNfo7Mc,1272
|
|
237
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py,sha256=
|
|
237
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py,sha256=yFo8eYOGJiJMkU5pGpW0r1o5uVaNP5iA80-5w_MyWxU,664
|
|
238
238
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type.py,sha256=2KVfRB0qgPO7osY4PBEQSOBOqRnZs0UzUZkS1guisBQ,524
|
|
239
239
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_list.py,sha256=N5m4fHCqdlZs3EM7oaAMYvbzIebkOKzqpZZVn6wpcJQ,464
|
|
240
240
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py,sha256=-uVxaTkxnDmUUGQUdN9x_VKR8KJUagJKnGR6B1emoEU,577
|
|
@@ -248,14 +248,15 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py
|
|
|
248
248
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py,sha256=BUOdvP39bEMQ6Unr2hB28eljVGU2Uv8dDEkzRyEJgyQ,2650
|
|
249
249
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py,sha256=SVX-weFRPT3DK7w6IBrLuWS4L6vboMuZtwXAQmIHfEE,406
|
|
250
250
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py,sha256=TjfpdJtaBwQvT8XNJKBf6tuOASOAw7ZiOxJbqsKadaA,1689
|
|
251
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py,sha256=
|
|
251
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py,sha256=ldgiAo8nDt4-Crdgh7LX_8VRm6P_cR5T6_O06tSups0,6951
|
|
252
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py,sha256=6f6eABdC79zOopMe_Rif3XoGG-yFfq9x_EOkevTuGDY,368
|
|
252
253
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
253
254
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
254
255
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py,sha256=Mx1_ed_-91s6u7roO27g6n5mv1IwniXP9AQdmj7HE-g,2630
|
|
255
256
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py,sha256=39qqmTxECRY5IoFvK_B_R0vfwfJwLbdhGt_pcdvdVIE,3571
|
|
256
257
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py,sha256=k-z2tg_NPKMni7rZgXMZa2-t8_8F35r8YtF1EcjMyDs,2355
|
|
257
258
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py,sha256=68Qd8o0oSxFG-3cRlX97BkX9muS6k64DGslGtX9sx6M,5897
|
|
258
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py,sha256=
|
|
259
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py,sha256=DhiLPv8KyRhHBRhvF0ULhchhGAT8SQyn1ftiuou_aKw,2576
|
|
259
260
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py,sha256=9Lzsh9HCs4rbJ2b6X11renvYU3g6s-1q2NUDwbYX0qY,3051
|
|
260
261
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py,sha256=YVIHiXPkJ8m1nOW7lG8LGbST16eMZoJwFQcrRRU7R6k,3089
|
|
261
262
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -286,8 +287,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
|
|
|
286
287
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
|
|
287
288
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
|
|
288
289
|
devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=esLnDBxP9MQBvV8noVohTrdWSVuljTKRpZgrn2kaD_c,192
|
|
289
|
-
devsecops_engine_tools-1.14.
|
|
290
|
-
devsecops_engine_tools-1.14.
|
|
291
|
-
devsecops_engine_tools-1.14.
|
|
292
|
-
devsecops_engine_tools-1.14.
|
|
293
|
-
devsecops_engine_tools-1.14.
|
|
290
|
+
devsecops_engine_tools-1.14.3.dist-info/METADATA,sha256=i8mY2GA8BKQKwpU8dB17DMJZdTbxYEzNq5XVlINm7z4,10854
|
|
291
|
+
devsecops_engine_tools-1.14.3.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
292
|
+
devsecops_engine_tools-1.14.3.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
|
|
293
|
+
devsecops_engine_tools-1.14.3.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
294
|
+
devsecops_engine_tools-1.14.3.dist-info/RECORD,,
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
from devsecops_engine_tools.engine_core.src.domain.model.level_vulnerability import (
|
|
2
|
-
LevelVulnerability,
|
|
3
|
-
)
|
|
4
|
-
|
|
5
|
-
class CustomLevelVulnerability:
|
|
6
|
-
def __init__(self, data):
|
|
7
|
-
self.pattern_apps = data.get("PATTERN_APPS")
|
|
8
|
-
self.vulnerability = LevelVulnerability(data.get("VULNERABILITY"))
|
|
File without changes
|
{devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/top_level.txt
RENAMED
|
File without changes
|