devsecops-engine-tools 1.27.1__py3-none-any.whl → 1.28.1__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/vulnerability_management.py +3 -0
- devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py +3 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +4 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +81 -39
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +5 -1
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +5 -2
- devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +5 -1
- devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py +5 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +1 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +5 -4
- devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py +81 -30
- devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +6 -0
- devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py +4 -1
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/METADATA +2 -2
- {devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/RECORD +19 -19
- {devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/WHEEL +0 -0
- {devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/top_level.txt +0 -0
|
@@ -196,6 +196,9 @@ class HandleScan:
|
|
|
196
196
|
self.devops_platform_gateway.get_variable("branch_tag"),
|
|
197
197
|
self.devops_platform_gateway.get_variable("commit_hash"),
|
|
198
198
|
env,
|
|
199
|
+
self.devops_platform_gateway.get_variable("vm_product_type_name"),
|
|
200
|
+
self.devops_platform_gateway.get_variable("vm_product_name"),
|
|
201
|
+
self.devops_platform_gateway.get_variable("vm_product_description"),
|
|
199
202
|
)
|
|
200
203
|
)
|
|
201
204
|
|
|
@@ -7,6 +7,7 @@ from devsecops_engine_tools.engine_utilities.azuredevops.models.AzurePredefinedV
|
|
|
7
7
|
SystemVariables,
|
|
8
8
|
ReleaseVariables,
|
|
9
9
|
AgentVariables,
|
|
10
|
+
VMVariables
|
|
10
11
|
)
|
|
11
12
|
from devsecops_engine_tools.engine_utilities.azuredevops.infrastructure.azure_devops_api import (
|
|
12
13
|
AzureDevopsApi,
|
|
@@ -95,6 +96,9 @@ class AzureDevops(DevopsPlatformGateway):
|
|
|
95
96
|
"target_branch": SystemVariables.System_TargetBranchName,
|
|
96
97
|
"source_branch": SystemVariables.System_SourceBranch,
|
|
97
98
|
"repository_provider": BuildVariables.Build_Repository_Provider,
|
|
99
|
+
"vm_product_type_name": VMVariables.Vm_Product_Type_Name,
|
|
100
|
+
"vm_product_name": VMVariables.Vm_Product_Name,
|
|
101
|
+
"vm_product_description": VMVariables.Vm_Product_Description,
|
|
98
102
|
}
|
|
99
103
|
try:
|
|
100
104
|
return variable_map.get(variable).value()
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py
CHANGED
|
@@ -30,6 +30,7 @@ from functools import partial
|
|
|
30
30
|
|
|
31
31
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
32
32
|
from devsecops_engine_tools.engine_utilities import settings
|
|
33
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.serializers.import_scan import ImportScanSerializer
|
|
33
34
|
import time
|
|
34
35
|
import concurrent.futures
|
|
35
36
|
|
|
@@ -87,44 +88,17 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
87
88
|
tags = vulnerability_management.dict_args["tool"]
|
|
88
89
|
if vulnerability_management.dict_args["tool"] == "engine_iac":
|
|
89
90
|
tags = f"{vulnerability_management.dict_args['tool']}_{'_'.join(vulnerability_management.dict_args['platform'])}"
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
host_cmdb=vulnerability_management.config_tool[
|
|
102
|
-
"VULNERABILITY_MANAGER"
|
|
103
|
-
]["DEFECT_DOJO"]["HOST_CMDB"],
|
|
104
|
-
expression=vulnerability_management.config_tool[
|
|
105
|
-
"VULNERABILITY_MANAGER"
|
|
106
|
-
]["DEFECT_DOJO"]["REGEX_EXPRESSION_CMDB"],
|
|
107
|
-
token_defect_dojo=token_dd,
|
|
108
|
-
host_defect_dojo=vulnerability_management.config_tool[
|
|
109
|
-
"VULNERABILITY_MANAGER"
|
|
110
|
-
]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"],
|
|
111
|
-
scan_type=scan_type_mapping[vulnerability_management.scan_type],
|
|
112
|
-
engagement_name=vulnerability_management.input_core.scope_pipeline,
|
|
113
|
-
service=vulnerability_management.input_core.scope_pipeline,
|
|
114
|
-
file=vulnerability_management.input_core.path_file_results,
|
|
115
|
-
version=vulnerability_management.version,
|
|
116
|
-
build_id=vulnerability_management.build_id,
|
|
117
|
-
source_code_management_uri=vulnerability_management.source_code_management_uri,
|
|
118
|
-
branch_tag=vulnerability_management.branch_tag,
|
|
119
|
-
commit_hash=vulnerability_management.commit_hash,
|
|
120
|
-
environment=(
|
|
121
|
-
enviroment_mapping[vulnerability_management.environment.lower()]
|
|
122
|
-
if vulnerability_management.environment is not None
|
|
123
|
-
and vulnerability_management.environment.lower()
|
|
124
|
-
in enviroment_mapping
|
|
125
|
-
else enviroment_mapping["default"]
|
|
126
|
-
),
|
|
127
|
-
tags=tags,
|
|
91
|
+
|
|
92
|
+
use_cmdb = vulnerability_management.config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["CMDB"]["USE_CMDB"]
|
|
93
|
+
|
|
94
|
+
request = self._build_request_importscan(
|
|
95
|
+
vulnerability_management,
|
|
96
|
+
token_cmdb,
|
|
97
|
+
token_dd,
|
|
98
|
+
scan_type_mapping,
|
|
99
|
+
enviroment_mapping,
|
|
100
|
+
tags,
|
|
101
|
+
use_cmdb
|
|
128
102
|
)
|
|
129
103
|
|
|
130
104
|
def request_func():
|
|
@@ -170,7 +144,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
170
144
|
request={
|
|
171
145
|
"name": Connect.get_code_app(
|
|
172
146
|
service,
|
|
173
|
-
config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"][
|
|
147
|
+
config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["CMDB"][
|
|
174
148
|
"REGEX_EXPRESSION_CMDB"
|
|
175
149
|
],
|
|
176
150
|
),
|
|
@@ -387,6 +361,74 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
387
361
|
ex
|
|
388
362
|
)
|
|
389
363
|
)
|
|
364
|
+
|
|
365
|
+
def _build_request_importscan(
|
|
366
|
+
self,
|
|
367
|
+
vulnerability_management: VulnerabilityManagement,
|
|
368
|
+
token_cmdb,
|
|
369
|
+
token_dd,
|
|
370
|
+
scan_type_mapping,
|
|
371
|
+
enviroment_mapping,
|
|
372
|
+
tags,
|
|
373
|
+
use_cmdb: bool
|
|
374
|
+
):
|
|
375
|
+
common_fields = {
|
|
376
|
+
"scan_type": scan_type_mapping[vulnerability_management.scan_type],
|
|
377
|
+
"file": vulnerability_management.input_core.path_file_results,
|
|
378
|
+
"engagement_name": vulnerability_management.input_core.scope_pipeline,
|
|
379
|
+
"source_code_management_uri": vulnerability_management.source_code_management_uri,
|
|
380
|
+
"tags": tags,
|
|
381
|
+
"version": vulnerability_management.version,
|
|
382
|
+
"build_id": vulnerability_management.build_id,
|
|
383
|
+
"branch_tag": vulnerability_management.branch_tag,
|
|
384
|
+
"commit_hash": vulnerability_management.commit_hash,
|
|
385
|
+
"service": vulnerability_management.input_core.scope_pipeline,
|
|
386
|
+
"environment": (
|
|
387
|
+
enviroment_mapping[vulnerability_management.environment.lower()]
|
|
388
|
+
if vulnerability_management.environment is not None
|
|
389
|
+
and vulnerability_management.environment.lower()
|
|
390
|
+
in enviroment_mapping
|
|
391
|
+
else enviroment_mapping["default"]
|
|
392
|
+
),
|
|
393
|
+
"token_defect_dojo": token_dd,
|
|
394
|
+
"host_defect_dojo": vulnerability_management.config_tool[
|
|
395
|
+
"VULNERABILITY_MANAGER"
|
|
396
|
+
]["DEFECT_DOJO"]["HOST_DEFECT_DOJO"],
|
|
397
|
+
"expression": vulnerability_management.config_tool[
|
|
398
|
+
"VULNERABILITY_MANAGER"
|
|
399
|
+
]["DEFECT_DOJO"]["CMDB"]["REGEX_EXPRESSION_CMDB"],
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
if use_cmdb:
|
|
403
|
+
cmdb_mapping = vulnerability_management.config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["CMDB"]["CMDB_MAPPING"]
|
|
404
|
+
return Connect.cmdb(
|
|
405
|
+
cmdb_mapping={
|
|
406
|
+
"product_type_name": cmdb_mapping["PRODUCT_TYPE_NAME"],
|
|
407
|
+
"product_name": cmdb_mapping["PRODUCT_NAME"],
|
|
408
|
+
"tag_product": cmdb_mapping["TAG_PRODUCT"],
|
|
409
|
+
"product_description": cmdb_mapping["PRODUCT_DESCRIPTION"],
|
|
410
|
+
"codigo_app": cmdb_mapping["CODIGO_APP"],
|
|
411
|
+
},
|
|
412
|
+
compact_remote_config_url=f'{vulnerability_management.base_compact_remote_config_url}{vulnerability_management.config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["CMDB"]["CMDB_MAPPING_PATH"]}',
|
|
413
|
+
personal_access_token=vulnerability_management.access_token,
|
|
414
|
+
token_cmdb=token_cmdb,
|
|
415
|
+
host_cmdb=vulnerability_management.config_tool[
|
|
416
|
+
"VULNERABILITY_MANAGER"
|
|
417
|
+
]["DEFECT_DOJO"]["CMDB"]["HOST_CMDB"],
|
|
418
|
+
cmdb_request_response=vulnerability_management.config_tool["VULNERABILITY_MANAGER"]["DEFECT_DOJO"]["CMDB"]["CMDB_REQUEST_RESPONSE"],
|
|
419
|
+
**common_fields,
|
|
420
|
+
)
|
|
421
|
+
else:
|
|
422
|
+
request: ImportScanRequest = ImportScanSerializer().load(
|
|
423
|
+
{
|
|
424
|
+
"product_type_name":vulnerability_management.vm_product_type_name,
|
|
425
|
+
"product_name": vulnerability_management.vm_product_name,
|
|
426
|
+
"product_description":vulnerability_management.vm_product_description,
|
|
427
|
+
"code_app":vulnerability_management.vm_product_name,
|
|
428
|
+
**common_fields,
|
|
429
|
+
}
|
|
430
|
+
)
|
|
431
|
+
return request
|
|
390
432
|
|
|
391
433
|
def _process_component(self, component_sbom, session_manager, engagement):
|
|
392
434
|
request = {
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py
CHANGED
|
@@ -6,7 +6,8 @@ from devsecops_engine_tools.engine_utilities.github.models.GithubPredefinedVaria
|
|
|
6
6
|
BuildVariables,
|
|
7
7
|
SystemVariables,
|
|
8
8
|
ReleaseVariables,
|
|
9
|
-
AgentVariables
|
|
9
|
+
AgentVariables,
|
|
10
|
+
VMVariables
|
|
10
11
|
)
|
|
11
12
|
from devsecops_engine_tools.engine_utilities.github.infrastructure.github_api import (
|
|
12
13
|
GithubApi,
|
|
@@ -85,6 +86,9 @@ class GithubActions(DevopsPlatformGateway):
|
|
|
85
86
|
"target_branch": SystemVariables.github_event_base_ref,
|
|
86
87
|
"source_branch": SystemVariables.github_ref,
|
|
87
88
|
"repository_provider": BuildVariables.GitHub,
|
|
89
|
+
"vm_product_type_name": VMVariables.Vm_Product_Type_Name,
|
|
90
|
+
"vm_product_name": VMVariables.Vm_Product_Name,
|
|
91
|
+
"vm_product_description": VMVariables.Vm_Product_Description,
|
|
88
92
|
}
|
|
89
93
|
try:
|
|
90
94
|
return variable_map.get(variable).value()
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py
CHANGED
|
@@ -21,7 +21,7 @@ class RuntimeLocal(DevopsPlatformGateway):
|
|
|
21
21
|
def get_remote_config(self, repository, path, branch=""):
|
|
22
22
|
remote_config_path = f"{repository}/{path}"
|
|
23
23
|
|
|
24
|
-
with open(remote_config_path) as f:
|
|
24
|
+
with open(remote_config_path, 'r', encoding='utf-8') as f:
|
|
25
25
|
return json.load(f)
|
|
26
26
|
|
|
27
27
|
def message(self, type, message):
|
|
@@ -66,6 +66,9 @@ class RuntimeLocal(DevopsPlatformGateway):
|
|
|
66
66
|
"temp_directory" : "DET_TEMP_DIRECTORY",
|
|
67
67
|
"target_branch" : "DET_TARGET_BRANCH",
|
|
68
68
|
"source_branch" : "DET_SOURCE_BRANCH",
|
|
69
|
-
"repository_provider" : "DET_REPOSITORY_PROVIDER"
|
|
69
|
+
"repository_provider" : "DET_REPOSITORY_PROVIDER",
|
|
70
|
+
"vm_product_type_name" : "DET_VM_PRODUCT_TYPE_NAME",
|
|
71
|
+
"vm_product_name" : "DET_VM_PRODUCT_NAME",
|
|
72
|
+
"vm_product_description" : "DET_VM_PRODUCT_DESCRIPTION",
|
|
70
73
|
}
|
|
71
74
|
return os.environ.get(env_variables[variable], None)
|
|
@@ -29,7 +29,11 @@ class XrayScan(ToolGateway):
|
|
|
29
29
|
if installed.returncode == 1:
|
|
30
30
|
command = ["chmod", "+x", prefix]
|
|
31
31
|
try:
|
|
32
|
-
|
|
32
|
+
architecture = platform.machine()
|
|
33
|
+
if architecture == "aarch64":
|
|
34
|
+
url = f"https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/{version}/jfrog-cli-linux-arm64/jf"
|
|
35
|
+
else:
|
|
36
|
+
url = f"https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/{version}/jfrog-cli-linux-amd64/jf"
|
|
33
37
|
response = requests.get(url, allow_redirects=True)
|
|
34
38
|
with open(prefix, "wb") as archivo:
|
|
35
39
|
archivo.write(response.content)
|
|
@@ -63,3 +63,8 @@ class AgentVariables(BaseEnum):
|
|
|
63
63
|
Agent_WorkFolder = "Agent.WorkFolder"
|
|
64
64
|
Agent_TempDirectory = "Agent.TempDirectory"
|
|
65
65
|
Agent_OS = "Agent.OS"
|
|
66
|
+
|
|
67
|
+
class VMVariables(BaseEnum):
|
|
68
|
+
Vm_Product_Type_Name = "Vm.Product.Type.Name"
|
|
69
|
+
Vm_Product_Name = "Vm.Product.Name"
|
|
70
|
+
Vm_Product_Description = "Vm.Product.Description"
|
|
@@ -198,16 +198,17 @@ class ImportScanSerializer(Schema):
|
|
|
198
198
|
service = fields.Str(required=False)
|
|
199
199
|
group_by = fields.Str(required=False)
|
|
200
200
|
test_title = fields.Str(required=False)
|
|
201
|
-
|
|
201
|
+
product_description = fields.Str(required=False)
|
|
202
202
|
create_finding_groups_for_all_findings = fields.Str(required=False)
|
|
203
203
|
tools_configuration = fields.Int(required=False, load_default=1)
|
|
204
204
|
code_app = fields.Str(required=False)
|
|
205
205
|
# defect-dojo credential
|
|
206
|
-
token_cmdb = fields.Str(required=
|
|
207
|
-
host_cmdb = fields.Url(required=
|
|
206
|
+
token_cmdb = fields.Str(required=False)
|
|
207
|
+
host_cmdb = fields.Url(required=False)
|
|
208
|
+
cmdb_request_response = fields.Dict(required=False)
|
|
208
209
|
token_defect_dojo = fields.Str(required=True)
|
|
209
210
|
host_defect_dojo = fields.Str(required=True)
|
|
210
|
-
cmdb_mapping = fields.Dict(required=
|
|
211
|
+
cmdb_mapping = fields.Dict(required=False)
|
|
211
212
|
product_type_name_mapping = fields.Dict(required=False)
|
|
212
213
|
# Config remote credential
|
|
213
214
|
compact_remote_config_url = fields.Str(required=False)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import ast
|
|
2
3
|
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
3
4
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
4
5
|
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.models.cmdb import Cmdb
|
|
@@ -18,39 +19,89 @@ class CmdbRestConsumer:
|
|
|
18
19
|
self.__session = session._instance
|
|
19
20
|
|
|
20
21
|
def get_product_info(self, request: ImportScanRequest) -> Cmdb:
|
|
21
|
-
|
|
22
|
-
headers =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
22
|
+
method = request.cmdb_request_response.get("METHOD")
|
|
23
|
+
headers = self.prepare_headers(request.cmdb_request_response.get("HEADERS"))
|
|
24
|
+
response_format = request.cmdb_request_response.get("RESPONSE")
|
|
25
|
+
|
|
26
|
+
if method not in ["GET", "POST"]:
|
|
27
|
+
raise ValueError(f"Unsupported method: {method}")
|
|
28
|
+
|
|
29
|
+
return self.handle_request(method, headers, request, response_format)
|
|
30
|
+
|
|
31
|
+
def handle_request(self, method, headers, request: ImportScanRequest, response_format) -> Cmdb:
|
|
32
|
+
cmdb_object = self.initialize_cmdb_object(request)
|
|
33
|
+
|
|
31
34
|
try:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
cmdb_object
|
|
35
|
+
if method == "GET":
|
|
36
|
+
params = self.replace_placeholders(
|
|
37
|
+
request.cmdb_request_response.get("PARAMS", {}),
|
|
38
|
+
request.code_app
|
|
39
|
+
)
|
|
40
|
+
response = self.__session.get(self.__host, headers=headers, params=params, verify=VERIFY_CERTIFICATE)
|
|
41
|
+
elif method == "POST":
|
|
42
|
+
body = self.replace_placeholders(
|
|
43
|
+
request.cmdb_request_response.get("BODY", {}),
|
|
44
|
+
request.code_app
|
|
45
|
+
)
|
|
46
|
+
body_json = json.dumps(body)
|
|
47
|
+
response = self.__session.post(self.__host, headers=headers, data=body_json, verify=VERIFY_CERTIFICATE)
|
|
48
|
+
|
|
49
|
+
return self.process_response(response, response_format, cmdb_object, request.code_app)
|
|
47
50
|
except Exception as e:
|
|
48
51
|
logger.warning(e)
|
|
49
52
|
return cmdb_object
|
|
53
|
+
|
|
54
|
+
def process_response(self, response, response_format, cmdb_object, code_app) -> Cmdb:
|
|
55
|
+
if response.status_code != 200:
|
|
56
|
+
logger.warning(response)
|
|
57
|
+
raise ApiError(f"Error querying cmdb: {response.reason}")
|
|
58
|
+
|
|
59
|
+
if response.json() == []:
|
|
60
|
+
logger.warning(f"Engagement: {code_app} not found")
|
|
61
|
+
return cmdb_object # Producto es Orphan
|
|
62
|
+
|
|
63
|
+
data = self.get_nested_data(response, response_format)
|
|
64
|
+
data_map = self.mapping_cmdb(data)
|
|
65
|
+
logger.info(data_map)
|
|
66
|
+
cmdb_object = Cmdb.from_dict(data_map)
|
|
67
|
+
cmdb_object.codigo_app = code_app
|
|
50
68
|
return cmdb_object
|
|
51
69
|
|
|
52
|
-
def
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
def initialize_cmdb_object(self, request: ImportScanRequest) -> Cmdb:
|
|
71
|
+
return Cmdb(
|
|
72
|
+
product_type_name="ORPHAN_PRODUCT_TYPE",
|
|
73
|
+
product_name=f"{request.code_app}_Product",
|
|
74
|
+
tag_product="ORPHAN",
|
|
75
|
+
product_description="Orphan Product Description",
|
|
76
|
+
codigo_app=str(request.code_app),
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
def mapping_cmdb(self, data: dict) -> dict:
|
|
80
|
+
return {key: data.get(value, "") for key, value in self.__mapping_cmdb.items()}
|
|
81
|
+
|
|
82
|
+
def get_nested_data(self, response, keys: list) -> dict:
|
|
83
|
+
data = response.json()
|
|
84
|
+
for key in keys:
|
|
85
|
+
if isinstance(data, dict) and key in data:
|
|
86
|
+
data = data[key]
|
|
87
|
+
elif isinstance(data, list) and isinstance(key, int):
|
|
88
|
+
key = key if key >=0 else len(data) + key
|
|
89
|
+
if 0 <= key < len(data):
|
|
90
|
+
data = data[key]
|
|
91
|
+
else:
|
|
92
|
+
raise KeyError(f"Index '{key}' out of range in the current context.")
|
|
93
|
+
else:
|
|
94
|
+
raise KeyError(f"Key '{key}' not found or invalid in the current context.")
|
|
95
|
+
return data
|
|
96
|
+
|
|
97
|
+
def prepare_headers(self, headers: dict) -> dict:
|
|
98
|
+
return {key: (self.__token if value == 'tokenvalue' else value) for key, value in headers.items()}
|
|
99
|
+
|
|
100
|
+
def replace_placeholders(self, data, replacements):
|
|
101
|
+
data = str(data)
|
|
102
|
+
data = data.replace("codappvalue", replacements)
|
|
103
|
+
try:
|
|
104
|
+
return ast.literal_eval(data)
|
|
105
|
+
except (SyntaxError, ValueError) as e:
|
|
106
|
+
raise ValueError(f"Error converting string to dictionary: {e}")
|
|
107
|
+
|
|
@@ -54,3 +54,9 @@ class AgentVariables(BaseEnum):
|
|
|
54
54
|
github_workspace = "github.workspace"
|
|
55
55
|
runner_os = "runner.os"
|
|
56
56
|
runner_tool_cache = "runner.tool.cache"
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class VMVariables(BaseEnum):
|
|
60
|
+
Vm_Product_Type_Name = "Vm.Product.Type.Name"
|
|
61
|
+
Vm_Product_Name = "Vm.Product.Name"
|
|
62
|
+
Vm_Product_Description = "Vm.Product.Description"
|
|
@@ -99,7 +99,10 @@ class ReportSonar:
|
|
|
99
99
|
build_id = self.devops_platform_gateway.get_variable("build_id"),
|
|
100
100
|
branch_tag = branch,
|
|
101
101
|
commit_hash = self.devops_platform_gateway.get_variable("commit_hash"),
|
|
102
|
-
environment = environment
|
|
102
|
+
environment = environment,
|
|
103
|
+
vm_product_type_name = self.devops_platform_gateway.get_variable("vm_product_type_name"),
|
|
104
|
+
vm_product_name = self.devops_platform_gateway.get_variable("vm_product_name"),
|
|
105
|
+
vm_product_description = self.devops_platform_gateway.get_variable("vm_product_description"),
|
|
103
106
|
)
|
|
104
107
|
|
|
105
108
|
for project_key in project_keys:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.
|
|
1
|
+
version = '1.28.1'
|
{devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.28.1
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -99,7 +99,7 @@ devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_con
|
|
|
99
99
|
┃ ┗ 📜ConfigTool.json
|
|
100
100
|
┃ ┗ 📜Exclusions.json
|
|
101
101
|
```
|
|
102
|
-
|
|
102
|
+
For more information visit [here](https://github.com/bancolombia/devsecops-engine-tools/blob/trunk/example_remote_config_local/README.md)
|
|
103
103
|
#### Tools available for the modules (Configuration engine_core/ConfigTool.json)
|
|
104
104
|
|
|
105
105
|
|
|
@@ -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=qpSmTI_EN8O9XIYv87VrPrn4yuwbcHDL4fFlyWxyxbg,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
|
|
@@ -17,7 +17,7 @@ devsecops_engine_tools/engine_core/src/domain/model/level_compliance.py,sha256=n
|
|
|
17
17
|
devsecops_engine_tools/engine_core/src/domain/model/level_vulnerability.py,sha256=0sySEnFNkS2Y8uF5GUVAYehXw-i2OglUClkVobnSTPc,257
|
|
18
18
|
devsecops_engine_tools/engine_core/src/domain/model/report.py,sha256=09QV_jBQbucoiGM_PjVzRwWvvnebAx24Vehs2bqEe2o,1929
|
|
19
19
|
devsecops_engine_tools/engine_core/src/domain/model/threshold.py,sha256=TCBECuvoC3-9g8vg3iKWGIixssNecP0iUaZ9Qzv0n7w,596
|
|
20
|
-
devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py,sha256=
|
|
20
|
+
devsecops_engine_tools/engine_core/src/domain/model/vulnerability_management.py,sha256=04ALQoTM4uoea9s505WCDw18J3Cvu6phf54ZTKODN64,552
|
|
21
21
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py,sha256=7u7Qq2fq_QW7PJmGnSKZZyVSjTwnj3Oj-HBpj6nI8jk,684
|
|
23
23
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py,sha256=u_ivbmCyymw0Je7gRFg0uD9iDmZfTbteH5UwcgP0JAs,191
|
|
@@ -28,7 +28,7 @@ devsecops_engine_tools/engine_core/src/domain/model/gateway/vulnerability_manage
|
|
|
28
28
|
devsecops_engine_tools/engine_core/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
29
|
devsecops_engine_tools/engine_core/src/domain/usecases/break_build.py,sha256=0JK4U5LGxzrLVZOw68j1PMxmLTDPru7Kts_-RtAG0jA,15965
|
|
30
30
|
devsecops_engine_tools/engine_core/src/domain/usecases/handle_risk.py,sha256=RirHqsW5AhGjV7ITa13bW_BfM6VE99DffrPASoB9SN0,9403
|
|
31
|
-
devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=
|
|
31
|
+
devsecops_engine_tools/engine_core/src/domain/usecases/handle_scan.py,sha256=q1RGSDT7LSpPn7NyA9Pl4QGeQLQ3kvawzqmXrVQIKTs,9694
|
|
32
32
|
devsecops_engine_tools/engine_core/src/domain/usecases/metrics_manager.py,sha256=Xi0iNnPrFgqd2cBdAA5E_tgouhxs-BTo016aolnGgv8,2413
|
|
33
33
|
devsecops_engine_tools/engine_core/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
34
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -36,17 +36,17 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/__init
|
|
|
36
36
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/s3_manager.py,sha256=4h1k5EQnL_3NoGI6oRyVibkN5u3s4j5VUthNU1m1zQc,2206
|
|
37
37
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secrets_manager.py,sha256=ELihQBgSPH4f9QCyg2dgjudsFitaqgdsljnVOmaA_v4,1972
|
|
38
38
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=
|
|
39
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=buCBJ6kAg-5b_7P-gWzem6NEMbk5lK9Hx0Zuf-BQfXQ,5090
|
|
40
40
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=
|
|
41
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=Ymr2Xk1BUvRO6mzgmApdKLbx_R-0J6nbTYUa9SlFEk4,24420
|
|
42
42
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=
|
|
43
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=KCg6tTDncasrRZbB20QiLZNE6TKYkfgQ9zP0wPd3xe0,3925
|
|
44
44
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
45
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=NkXu7JYoCHXIx0HzHl4DhdLGEpocPMIqs2L0ADS-RcI,5369
|
|
46
46
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_rich_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
47
47
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_rich_table/printer_rich_table.py,sha256=LPr3xSv0I7ENEdu1xj8ve5PXzpUohs7hbQvHjDSaUuE,3028
|
|
48
48
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py,sha256=
|
|
49
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py,sha256=O1ZstzA7JHoFvNCNA_mHK1w7ZWCfMEXz-CZa48tDQqg,2748
|
|
50
50
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/syft/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
51
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/syft/syft.py,sha256=hP5MitHTeZf3Ia-xwi5bUdIU5hIwbUNuDSzcsqlxG5c,4457
|
|
52
52
|
devsecops_engine_tools/engine_core/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -213,7 +213,7 @@ devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_
|
|
|
213
213
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py,sha256=bU2u__bgV_MmwB8JCVAq1NHvkKfMV2-mFkteQ2iA-j8,4864
|
|
214
214
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
215
215
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py,sha256=ZUk-e1PKzV7uRAT7BpET363pgl2eMnXMCGSpewsOpKg,2236
|
|
216
|
-
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py,sha256=
|
|
216
|
+
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py,sha256=xFNvfPd0L-dc4Ghm-1PtKEU0ueR_XCRZEaJNggug_9U,7648
|
|
217
217
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
218
218
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py,sha256=gZZRX1oGg1tyZD3yikBXBbH7u33v-nzz6tuSJH5TApk,3453
|
|
219
219
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -224,7 +224,7 @@ devsecops_engine_tools/engine_utilities/azuredevops/__init__.py,sha256=47DEQpj8H
|
|
|
224
224
|
devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
225
225
|
devsecops_engine_tools/engine_utilities/azuredevops/infrastructure/azure_devops_api.py,sha256=l_sRaktn51NEeJowtEJWfUnUmjaU9uRTqXo4jcNR24E,2968
|
|
226
226
|
devsecops_engine_tools/engine_utilities/azuredevops/models/AzureMessageLoggingPipeline.py,sha256=pCwlPDDl-hgvZ9gvceuC8GsKbsMhRm3ykhFFVByVqcI,664
|
|
227
|
-
devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py,sha256=
|
|
227
|
+
devsecops_engine_tools/engine_utilities/azuredevops/models/AzurePredefinedVariables.py,sha256=z9AGtc64o-BNTngiowRJFBlXmo_JmWqenL8YxdLs0aE,2561
|
|
228
228
|
devsecops_engine_tools/engine_utilities/azuredevops/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
229
|
devsecops_engine_tools/engine_utilities/defect_dojo/__init__.py,sha256=pVSjIx2caIhX0E67TbXtual0Jz3Ha28aNFnSJKeRsts,400
|
|
230
230
|
devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py,sha256=WDvgS22lIJJNoIM4b6mrxT8Bu_6hADmrCOZgvf5yGVY,45
|
|
@@ -248,10 +248,10 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_l
|
|
|
248
248
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py,sha256=-uVxaTkxnDmUUGQUdN9x_VKR8KJUagJKnGR6B1emoEU,577
|
|
249
249
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
250
250
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py,sha256=RinG3ISc-u_3VXVqntwdcQvZoQdmHPCvDHWSvnkCkcU,2619
|
|
251
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py,sha256=
|
|
251
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py,sha256=UfvICLF-Wjii3iqvsRq0Tpc-quK4t3oS8U79tozzjfA,5014
|
|
252
252
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
253
253
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py,sha256=HNkA_sHSMfQKAcZht-rRPdwm0eHYK2wxM6u61_bl2uE,5233
|
|
254
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py,sha256=
|
|
254
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py,sha256=AYYPtuAOKagT5qmFvdwuGQ_GupZfQNdMCyMaKzCkTDE,7290
|
|
255
255
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
256
256
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py,sha256=BUOdvP39bEMQ6Unr2hB28eljVGU2Uv8dDEkzRyEJgyQ,2650
|
|
257
257
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/component.py,sha256=_icc-ZAqw-aVgE5J4VH8Q7fSqpCgEGcfmurgRIN9NqM,448
|
|
@@ -261,7 +261,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan
|
|
|
261
261
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py,sha256=6f6eABdC79zOopMe_Rif3XoGG-yFfq9x_EOkevTuGDY,368
|
|
262
262
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
263
263
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
264
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py,sha256=
|
|
264
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py,sha256=waucNjkwT9eo-ykeZKxAMZHQCnI-R9Keu0091wVfyOQ,4942
|
|
265
265
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/component.py,sha256=-J0Sv7z709Hctb-tgM0wmp5ofE4WKEIA_uJwzvMnStE,2132
|
|
266
266
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py,sha256=39qqmTxECRY5IoFvK_B_R0vfwfJwLbdhGt_pcdvdVIE,3571
|
|
267
267
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py,sha256=k-z2tg_NPKMni7rZgXMZa2-t8_8F35r8YtF1EcjMyDs,2355
|
|
@@ -281,7 +281,7 @@ devsecops_engine_tools/engine_utilities/git_cli/model/gateway/git_gateway.py,sha
|
|
|
281
281
|
devsecops_engine_tools/engine_utilities/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
282
282
|
devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
283
283
|
devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py,sha256=6c4YXGsKZEYPSy6AtMx9arxR4JpYPz1C0VleIV2n2Ms,2779
|
|
284
|
-
devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py,sha256=
|
|
284
|
+
devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py,sha256=8V7rX3jhADkE7wvI4XXWNiIdD8tI_U6JScrd9BY3RqU,1764
|
|
285
285
|
devsecops_engine_tools/engine_utilities/github/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
286
286
|
devsecops_engine_tools/engine_utilities/input_validations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
287
287
|
devsecops_engine_tools/engine_utilities/input_validations/env_utils.py,sha256=nHp9YIuG1k-IvxssQslrE9ny62juJMovmBTzcM7PPk0,258
|
|
@@ -297,7 +297,7 @@ devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/__init__.py,s
|
|
|
297
297
|
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
298
298
|
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/model/gateways/sonar_gateway.py,sha256=PCrGq7NOINAFPvmX-5V5191MGhahsnQeWXUB1-xL4Xw,1279
|
|
299
299
|
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
300
|
-
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py,sha256=
|
|
300
|
+
devsecops_engine_tools/engine_utilities/sonarqube/src/domain/usecases/report_sonar.py,sha256=kC1GzbVA8mX3N1Rp7gX9P-emb6gcbQbXEEspYROOmXs,9193
|
|
301
301
|
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
302
302
|
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
303
303
|
devsecops_engine_tools/engine_utilities/sonarqube/src/infrastructure/driven_adapters/sonarqube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -317,8 +317,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
|
|
|
317
317
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
|
|
318
318
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=Z0fdhB3r-dxU0nGSD9zW_B4r2Qol1rUnUCkhFR0U-HQ,487
|
|
319
319
|
devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=_yaXWHN1pi2xFFKg0yKbb4fsK_ZRv7Dk_9N1FtPS72k,5964
|
|
320
|
-
devsecops_engine_tools-1.
|
|
321
|
-
devsecops_engine_tools-1.
|
|
322
|
-
devsecops_engine_tools-1.
|
|
323
|
-
devsecops_engine_tools-1.
|
|
324
|
-
devsecops_engine_tools-1.
|
|
320
|
+
devsecops_engine_tools-1.28.1.dist-info/METADATA,sha256=1sF3pay4XmB2OKiYGmlo8XPYITisxAHru_P375F41ow,11162
|
|
321
|
+
devsecops_engine_tools-1.28.1.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
322
|
+
devsecops_engine_tools-1.28.1.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
|
|
323
|
+
devsecops_engine_tools-1.28.1.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
324
|
+
devsecops_engine_tools-1.28.1.dist-info/RECORD,,
|
|
File without changes
|
{devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.27.1.dist-info → devsecops_engine_tools-1.28.1.dist-info}/top_level.txt
RENAMED
|
File without changes
|