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.

Files changed (23) hide show
  1. devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_management_gateway.py +4 -0
  2. devsecops_engine_tools/engine_core/src/domain/model/threshold.py +1 -4
  3. devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py +0 -3
  4. devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +61 -9
  5. devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +37 -2
  6. devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +1 -1
  7. devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py +3 -6
  8. devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +1 -2
  9. devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py +2 -1
  10. devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py +4 -0
  11. devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +30 -9
  12. devsecops_engine_tools/engine_utilities/defect_dojo/applications/product.py +14 -0
  13. devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_list.py +7 -1
  14. devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +1 -1
  15. devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py +9 -0
  16. devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py +7 -6
  17. devsecops_engine_tools/version.py +1 -1
  18. {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/METADATA +1 -1
  19. {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/RECORD +22 -21
  20. devsecops_engine_tools/engine_core/src/domain/model/custom_level_vulnerability.py +0 -8
  21. {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/WHEEL +0 -0
  22. {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/entry_points.txt +0 -0
  23. {devsecops_engine_tools-1.14.1.dist-info → devsecops_engine_tools-1.14.3.dist-info}/top_level.txt +0 -0
@@ -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.custom_vulnerability = CustomLevelVulnerability(data.get("CUSTOM_VULNERABILITY")) if data.get("CUSTOM_VULNERABILITY") else None
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
- self.devops_platform_gateway.get_variable("environment"),
96
- self.devops_platform_gateway.get_variable("branch_name"),
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, config_tool["ENGINE_IAC"]["TOOL"], secret_tool,self.devops_platform_gateway, env
142
+ dict_args,
143
+ config_tool["ENGINE_IAC"]["TOOL"],
144
+ secret_tool,
145
+ self.devops_platform_gateway,
146
+ env,
103
147
  )
104
- if dict_args["use_vulnerability_management"] == "true" and input_core.path_file_results:
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, config_tool["ENGINE_CONTAINER"]["TOOL"], secret_tool, self.devops_platform_gateway
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, config_tool["ENGINE_CODE"]["TOOL"], self.devops_platform_gateway
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
@@ -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(self, engagement_name, dict_args, secret_tool, config_tool):
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")
@@ -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("DET_BASE_COMPACT_REMOTE_CONFIG_URL")
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
- extra_data = result.get("ExtraData", {})
18
- rule_name = extra_data.get("name") if extra_data else None
17
+ rule_name = result.get("Id", {})
19
18
 
20
- if rule_name and "Actuator" in rule_name:
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=finding_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
- name = find["ExtraData"]["name"] if find["ExtraData"] != None else None
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
@@ -35,3 +35,7 @@ class Connect:
35
35
  return e
36
36
 
37
37
  return response
38
+
39
+ def get_code_app(engagement_name, expression):
40
+ uc = CmdbUserCase(rest_consumer_cmdb=None, utils_azure=None, expression=expression)
41
+ return uc.get_code_app(engagement_name)
@@ -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 ImportScanRestConsumer
4
- from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product_type import ProductTypeRestConsumer
5
- from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product import ProductRestConsumer
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 EngagementRestConsumer
10
- from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import ImportScanRequest
11
- from devsecops_engine_tools.engine_utilities.defect_dojo.domain.user_case.import_scan import ImportScanUserCase
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(request, session=SessionManager())
26
- rest_product = ProductRestConsumer(request, session=SessionManager())
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(request, session=SessionManager())
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
@@ -11,16 +11,17 @@ logger = MyLogger.__call__(**SETTING_LOGGER).get_logger()
11
11
 
12
12
 
13
13
  class ProductRestConsumer:
14
- def __init__(self, request: ImportScanRequest, session: SessionManager):
15
- self.__token = request.token_defect_dojo
16
- self.__host = request.host_defect_dojo
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
- def get_products(self, request: ImportScanRequest) -> ProductList:
20
- url = f"{self.__host}/api/v2/products/?name={request.code_app}"
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, data={}, verify=VERIFY_CERTIFICATE)
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'
1
+ version = '1.14.3'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.14.1
3
+ Version: 1.14.3
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team
@@ -1,5 +1,5 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=xv2wmLelfn460ABKZW6zS5-YHtS6u54h1jksuJQyBJw,19
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=jWgmla7_2kqCRD1TDUHLKZ8NS2A5_qEkQ1i3kjCiY94,711
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=c98JSdYYPyr82VZR4MRy49xSBVxueERbAS1mWwKqV6g,878
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=JP-i5SFaMN7Yi4uDCe_AE1kJ197g1IJGcwQdq-RYbk4,16198
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=yrPQdNvFNDeS4g4UxdxFDj-yw17K_OZ3T-HDEiePknE,7041
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=bqtDUeaEqdecvyJ6cRx9CCiCG3F-Y6FPM74xHcW6o3o,16596
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=2-BRh0BVuJp-IYpX5ah5uv3Tf0txm4y-tIwdo4fPH6Q,2463
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=MdE76XrltkegHjVnDdHWJptUNUZg_bJnsUynVG0MEKI,2565
156
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=r3JvkTE8injqbFcymevPw4rn-5w6dsOGxWz0NRKx4kg,7367
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=jDEfwz998pwqOZW6p7ZHBrfi8jbpYYR9N0SpekaqtdQ,310
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=RfHBfE0TFV9kEI21FIlfodqYIXNRCcux4h0sLgCkqhA,1879
228
- devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=xC4rOfTv66uaBqbsP3Xe5_BfG84b8lgLq68-3Al9yag,2297
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=ExoZSaOLRVioy85EMyDSl2ktSw8f1gp30mxacQCpP74,426
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=EefQbSJSWgVSlxZCh5hiGRfFO9yx3TBCI5sx_UNqN18,6933
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=viYd3_x-KAXGJE7b-AmLCRnfARTZ_1haLprEWcROcLc,2660
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.1.dist-info/METADATA,sha256=dFexub6hqzGqPL3h5tGnPpGj14w0D3WJZi034J0tZrE,10854
290
- devsecops_engine_tools-1.14.1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
291
- devsecops_engine_tools-1.14.1.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
292
- devsecops_engine_tools-1.14.1.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
293
- devsecops_engine_tools-1.14.1.dist-info/RECORD,,
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"))