devsecops-engine-tools 1.35.0__py3-none-any.whl → 1.37.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of devsecops-engine-tools might be problematic. Click here for more details.
- devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py +1 -1
- devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py +4 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py +3 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +3 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +3 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py +3 -0
- devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py +1 -1
- devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py +8 -0
- devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py +1 -0
- devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py +35 -2
- devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py +5 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py +7 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py +3 -2
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py +1 -0
- devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py +70 -34
- devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/reimport_scan.py +74 -0
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/METADATA +2 -2
- {devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/RECORD +22 -21
- {devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/WHEEL +0 -0
- {devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/top_level.txt +0 -0
|
@@ -160,7 +160,7 @@ def get_inputs_from_cli(args):
|
|
|
160
160
|
)
|
|
161
161
|
parser.add_argument(
|
|
162
162
|
"--xray_mode",
|
|
163
|
-
choices=["scan", "audit"],
|
|
163
|
+
choices=["scan", "audit","build-scan"],
|
|
164
164
|
required=False,
|
|
165
165
|
default="scan",
|
|
166
166
|
help="Mode to execute xray, only apply engine_dependencies xray tool",
|
|
@@ -21,6 +21,10 @@ class DevopsPlatformGateway(metaclass=ABCMeta):
|
|
|
21
21
|
@abstractmethod
|
|
22
22
|
def get_base_compact_remote_config_url(self, remote_config_repo):
|
|
23
23
|
"get_base_compact_remote_config_url"
|
|
24
|
+
|
|
25
|
+
@abstractmethod
|
|
26
|
+
def get_build_pipeline_execution_url(self):
|
|
27
|
+
"get_build_pipeline_execution_url"
|
|
24
28
|
|
|
25
29
|
@abstractmethod
|
|
26
30
|
def get_variable(self, variable):
|
|
@@ -70,6 +70,9 @@ class AzureDevops(DevopsPlatformGateway):
|
|
|
70
70
|
f"{remote_config_repo}?path=/"
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
+
def get_build_pipeline_execution_url(self):
|
|
74
|
+
return f"{SystemVariables.System_TeamFoundationCollectionUri.value()}{SystemVariables.System_TeamProject.value()}/_build?buildId={BuildVariables.Build_BuildId.value()}"
|
|
75
|
+
|
|
73
76
|
def get_variable(self, variable):
|
|
74
77
|
|
|
75
78
|
variable_map = {
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py
CHANGED
|
@@ -451,6 +451,7 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
451
451
|
"branch_tag": vulnerability_management.branch_tag,
|
|
452
452
|
"commit_hash": vulnerability_management.commit_hash,
|
|
453
453
|
"service": vulnerability_management.input_core.scope_pipeline,
|
|
454
|
+
"test_title": tags,
|
|
454
455
|
"environment": (
|
|
455
456
|
enviroment_mapping[vulnerability_management.environment.lower()]
|
|
456
457
|
if vulnerability_management.environment is not None
|
|
@@ -464,6 +465,8 @@ class DefectDojoPlatform(VulnerabilityManagementGateway):
|
|
|
464
465
|
"expression": vulnerability_management.config_tool["VULNERABILITY_MANAGER"][
|
|
465
466
|
"DEFECT_DOJO"
|
|
466
467
|
]["CMDB"]["REGEX_EXPRESSION_CMDB"],
|
|
468
|
+
"reimport_scan": vulnerability_management.config_tool["VULNERABILITY_MANAGER"][
|
|
469
|
+
"DEFECT_DOJO"]["REIMPORT_SCAN"]
|
|
467
470
|
}
|
|
468
471
|
|
|
469
472
|
if use_cmdb:
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py
CHANGED
|
@@ -61,6 +61,9 @@ class GithubActions(DevopsPlatformGateway):
|
|
|
61
61
|
owner = split[0]
|
|
62
62
|
return f"{SystemVariables.github_server_url}/{owner}/{remote_config_repo}"
|
|
63
63
|
|
|
64
|
+
def get_build_pipeline_execution_url(self):
|
|
65
|
+
return f"{SystemVariables.github_server_url.value()}/{SystemVariables.github_repository.value()}/actions/runs/{BuildVariables.github_run_id.value()}"
|
|
66
|
+
|
|
64
67
|
def get_variable(self, variable):
|
|
65
68
|
variable_map = {
|
|
66
69
|
"branch_name": BuildVariables.github_ref,
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/runtime_local.py
CHANGED
|
@@ -42,6 +42,9 @@ class RuntimeLocal(DevopsPlatformGateway):
|
|
|
42
42
|
|
|
43
43
|
def get_source_code_management_uri(self):
|
|
44
44
|
return os.environ.get("DET_SOURCE_CODE_MANAGEMENT_URI")
|
|
45
|
+
|
|
46
|
+
def get_build_pipeline_execution_url(self):
|
|
47
|
+
return os.environ.get("DET_BUILD_PIPELINE_EXECUTION_URL")
|
|
45
48
|
|
|
46
49
|
def get_base_compact_remote_config_url(self, remote_config_repo):
|
|
47
50
|
return f"{os.environ.get('DET_BASE_COMPACT_REMOTE_CONFIG_URL')}?path=/"
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py
CHANGED
|
@@ -4,6 +4,6 @@ from abc import ABCMeta, abstractmethod
|
|
|
4
4
|
class ToolGateway(metaclass=ABCMeta):
|
|
5
5
|
@abstractmethod
|
|
6
6
|
def run_tool_dependencies_sca(
|
|
7
|
-
self, remote_config, dict_args,
|
|
7
|
+
self, remote_config, dict_args,to_scan, secret_tool, token_engine_dependencies,**kwargs
|
|
8
8
|
) -> str:
|
|
9
9
|
"run tool dependencies sca"
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py
CHANGED
|
@@ -17,6 +17,9 @@ class DependenciesScan:
|
|
|
17
17
|
pipeline_name,
|
|
18
18
|
to_scan,
|
|
19
19
|
secret_tool,
|
|
20
|
+
build_id,
|
|
21
|
+
build_url
|
|
22
|
+
|
|
20
23
|
):
|
|
21
24
|
self.tool_run = tool_run
|
|
22
25
|
self.tool_deserializator = tool_deserializator
|
|
@@ -26,6 +29,9 @@ class DependenciesScan:
|
|
|
26
29
|
self.dict_args = dict_args
|
|
27
30
|
self.to_scan = to_scan
|
|
28
31
|
self.secret_tool = secret_tool
|
|
32
|
+
self.build_id = build_id
|
|
33
|
+
self.build_url = build_url
|
|
34
|
+
|
|
29
35
|
|
|
30
36
|
def process(self):
|
|
31
37
|
"""
|
|
@@ -41,6 +47,8 @@ class DependenciesScan:
|
|
|
41
47
|
self.to_scan,
|
|
42
48
|
self.secret_tool,
|
|
43
49
|
self.dict_args["token_engine_dependencies"],
|
|
50
|
+
build_id=self.build_id,
|
|
51
|
+
build_url=self.build_url
|
|
44
52
|
)
|
|
45
53
|
|
|
46
54
|
def deserializator(self, dependencies_scanned):
|
|
@@ -105,13 +105,42 @@ class XrayScan(ToolGateway):
|
|
|
105
105
|
if os.path.exists(gradlew_path):
|
|
106
106
|
os.chmod(gradlew_path, 0o755)
|
|
107
107
|
|
|
108
|
-
def scan_dependencies(self, prefix, cwd,
|
|
108
|
+
def scan_dependencies(self, prefix, cwd,pipeline_name,build_id,build_url,config, mode, to_scan):
|
|
109
109
|
command = [
|
|
110
110
|
prefix,
|
|
111
111
|
mode,
|
|
112
112
|
"--format=json",
|
|
113
113
|
f"{to_scan}",
|
|
114
114
|
]
|
|
115
|
+
|
|
116
|
+
if mode == "build-scan":
|
|
117
|
+
#build info execution command
|
|
118
|
+
build_info_command =[
|
|
119
|
+
prefix,
|
|
120
|
+
"rt",
|
|
121
|
+
"bp",
|
|
122
|
+
pipeline_name,
|
|
123
|
+
build_id,
|
|
124
|
+
"--env-exclude=*password*;*psw*;*secret*;*key*;*token*;*auth*;",
|
|
125
|
+
f"--build-url={build_url}"
|
|
126
|
+
]
|
|
127
|
+
build_info_result = subprocess.run(build_info_command, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
|
|
128
|
+
|
|
129
|
+
if not build_info_result.stdout:
|
|
130
|
+
logger.error(f"Build info NOT successfully deployed to Jfrog Arifactory.: {build_info_result.stderr}")
|
|
131
|
+
return None
|
|
132
|
+
print("##[info]Build info successfully deployed.")
|
|
133
|
+
#build-scan execution command
|
|
134
|
+
command = [
|
|
135
|
+
prefix,
|
|
136
|
+
mode,
|
|
137
|
+
pipeline_name,
|
|
138
|
+
build_id,
|
|
139
|
+
"--format=json",
|
|
140
|
+
"--vuln",
|
|
141
|
+
"--fail=false",
|
|
142
|
+
"--rescan=true"
|
|
143
|
+
]
|
|
115
144
|
result = subprocess.run(
|
|
116
145
|
command, cwd=cwd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True
|
|
117
146
|
)
|
|
@@ -153,9 +182,10 @@ class XrayScan(ToolGateway):
|
|
|
153
182
|
to_scan,
|
|
154
183
|
secret_tool,
|
|
155
184
|
token_engine_dependencies,
|
|
185
|
+
**kwargs,
|
|
156
186
|
):
|
|
157
187
|
token = secret_tool["token_xray"] if secret_tool else token_engine_dependencies
|
|
158
|
-
if dict_args["xray_mode"] == "scan":
|
|
188
|
+
if dict_args["xray_mode"] == "scan" or dict_args["xray_mode"] == "build-scan":
|
|
159
189
|
get_artifacts = GetArtifacts()
|
|
160
190
|
pattern = get_artifacts.excluded_files(
|
|
161
191
|
remote_config, pipeline_name, exclusion, "XRAY"
|
|
@@ -192,6 +222,9 @@ class XrayScan(ToolGateway):
|
|
|
192
222
|
results_file = self.scan_dependencies(
|
|
193
223
|
command_prefix,
|
|
194
224
|
cwd,
|
|
225
|
+
pipeline_name,
|
|
226
|
+
kwargs.get("build_id"),
|
|
227
|
+
kwargs.get("build_url"),
|
|
195
228
|
remote_config,
|
|
196
229
|
dict_args["xray_mode"],
|
|
197
230
|
to_scan,
|
|
@@ -42,6 +42,8 @@ def init_engine_dependencies(
|
|
|
42
42
|
dict_args["remote_config_branch"]
|
|
43
43
|
)
|
|
44
44
|
pipeline_name = tool_remote.get_variable("pipeline_name")
|
|
45
|
+
build_id = tool_remote.get_variable("build_id")
|
|
46
|
+
build_url = tool_remote.get_build_pipeline_execution_url()
|
|
45
47
|
|
|
46
48
|
handle_remote_config_patterns = HandleRemoteConfigPatterns(
|
|
47
49
|
remote_config, exclusions, pipeline_name
|
|
@@ -72,6 +74,9 @@ def init_engine_dependencies(
|
|
|
72
74
|
pipeline_name,
|
|
73
75
|
to_scan,
|
|
74
76
|
secret_tool,
|
|
77
|
+
build_id,
|
|
78
|
+
build_url
|
|
79
|
+
|
|
75
80
|
)
|
|
76
81
|
if config_sbom["ENABLED"] and any(
|
|
77
82
|
branch in str(tool_remote.get_variable("branch_tag"))
|
|
@@ -3,6 +3,9 @@ from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
|
3
3
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.import_scan import (
|
|
4
4
|
ImportScanRestConsumer,
|
|
5
5
|
)
|
|
6
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.reimport_scan import (
|
|
7
|
+
ReimportScanRestConsumer,
|
|
8
|
+
)
|
|
6
9
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product_type import (
|
|
7
10
|
ProductTypeRestConsumer,
|
|
8
11
|
)
|
|
@@ -48,12 +51,16 @@ class DefectDojo:
|
|
|
48
51
|
rest_scan_configuration = ScanConfigrationRestConsumer(
|
|
49
52
|
request, session=SessionManager()
|
|
50
53
|
)
|
|
54
|
+
rest_reimport_scan = ReimportScanRestConsumer(
|
|
55
|
+
request, session=SessionManager()
|
|
56
|
+
)
|
|
51
57
|
uc = ImportScanUserCase(
|
|
52
58
|
rest_import_scan,
|
|
53
59
|
rest_product_type,
|
|
54
60
|
rest_product,
|
|
55
61
|
rest_scan_configuration,
|
|
56
62
|
rest_engagement=rest_engagement,
|
|
63
|
+
rest_reimport_scan=rest_reimport_scan
|
|
57
64
|
)
|
|
58
65
|
return uc.execute(request)
|
|
59
66
|
except ApiError as e:
|
|
@@ -52,10 +52,10 @@ class ImportScanRequest:
|
|
|
52
52
|
cmdb_mapping: dict = None
|
|
53
53
|
product_type_name_mapping: dict = None
|
|
54
54
|
compact_remote_config_url: str = None
|
|
55
|
-
# ** Expression
|
|
56
55
|
expression: str = ""
|
|
57
|
-
# ** Test url
|
|
58
56
|
url: str = ""
|
|
57
|
+
reimport_scan: bool = None
|
|
58
|
+
test_title: str = ""
|
|
59
59
|
|
|
60
60
|
@classmethod
|
|
61
61
|
def from_dict(cls, obj):
|
|
@@ -100,6 +100,7 @@ class ImportScanRequest:
|
|
|
100
100
|
product_type_name_mapping=obj.get("product_type_name_mapping"),
|
|
101
101
|
expression=obj.get("expression"),
|
|
102
102
|
compact_remote_config_url=obj.get("compact_remote_config_url"),
|
|
103
|
+
reimport_scan=obj.get("reimport_scan"),
|
|
103
104
|
)
|
|
104
105
|
return obj
|
|
105
106
|
|
|
@@ -219,6 +219,7 @@ class ImportScanSerializer(Schema):
|
|
|
219
219
|
project_remote_config = fields.Str(required=False)
|
|
220
220
|
# regulare expression
|
|
221
221
|
expression = fields.Str(required=True)
|
|
222
|
+
reimport_scan = fields.Bool(required=False, default=False)
|
|
222
223
|
|
|
223
224
|
@post_load
|
|
224
225
|
def make_cmdb(self, data, **kwargs):
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import re
|
|
2
2
|
import os
|
|
3
|
-
|
|
3
|
+
import urllib3
|
|
4
4
|
from devsecops_engine_tools.engine_utilities.settings import SETTING_LOGGER
|
|
5
|
+
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
5
6
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
6
7
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.import_scan import ImportScanRestConsumer
|
|
8
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.reimport_scan import ReimportScanRestConsumer
|
|
7
9
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product_type import ProductTypeRestConsumer
|
|
8
10
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.product import ProductRestConsumer
|
|
9
11
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.scan_configurations import (
|
|
10
|
-
ScanConfigrationRestConsumer
|
|
11
|
-
)
|
|
12
|
+
ScanConfigrationRestConsumer)
|
|
12
13
|
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.engagement import EngagementRestConsumer
|
|
13
14
|
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import ImportScanRequest
|
|
14
|
-
import urllib3
|
|
15
15
|
|
|
16
16
|
logger = MyLogger.__call__(**SETTING_LOGGER).get_logger()
|
|
17
17
|
|
|
@@ -26,15 +26,76 @@ class ImportScanUserCase:
|
|
|
26
26
|
rest_product: ProductRestConsumer,
|
|
27
27
|
rest_scan_configuration: ScanConfigrationRestConsumer,
|
|
28
28
|
rest_engagement: EngagementRestConsumer,
|
|
29
|
+
rest_reimport_scan: ReimportScanRestConsumer,
|
|
29
30
|
):
|
|
30
31
|
self.__rest_import_scan = rest_import_scan
|
|
31
32
|
self.__rest_product_type = rest_product_type
|
|
32
33
|
self.__rest_product = rest_product
|
|
33
34
|
self.__rest_scan_configurations = rest_scan_configuration
|
|
34
35
|
self.__rest_engagement = rest_engagement
|
|
36
|
+
self.__rest_reimport_scan = rest_reimport_scan
|
|
35
37
|
|
|
36
|
-
|
|
38
|
+
|
|
39
|
+
def get_file_type(self, path_file):
|
|
40
|
+
__, extension = os.path.splitext(path_file)
|
|
41
|
+
dict_rule_type_file = {
|
|
42
|
+
".csv": "text/csv",
|
|
43
|
+
".json": "apllication/json",
|
|
44
|
+
".xml": "aplication/xml",
|
|
45
|
+
".sarif": "aplication/json",
|
|
46
|
+
}
|
|
47
|
+
file_type = dict_rule_type_file.get(extension)
|
|
48
|
+
return file_type
|
|
49
|
+
|
|
50
|
+
def import_scan(self, request, api_scan_bool):
|
|
37
51
|
response = None
|
|
52
|
+
|
|
53
|
+
if api_scan_bool:
|
|
54
|
+
response = self.__rest_import_scan.import_scan_api(request)
|
|
55
|
+
logger.info(f"End process Succesfull!!!: {response}")
|
|
56
|
+
else:
|
|
57
|
+
try:
|
|
58
|
+
file_type = self.get_file_type(request.file)
|
|
59
|
+
if file_type is None:
|
|
60
|
+
raise ApiError("File format not allowed")
|
|
61
|
+
|
|
62
|
+
with open(request.file, "rb") as file:
|
|
63
|
+
logger.info(f"read {file_type} file successful !!!")
|
|
64
|
+
files = [("file", (request.file, file, file_type))]
|
|
65
|
+
response = self.__rest_import_scan.import_scan(request, files)
|
|
66
|
+
|
|
67
|
+
except Exception as e:
|
|
68
|
+
raise ApiError(e)
|
|
69
|
+
|
|
70
|
+
response.url = f"{request.host_defect_dojo}/engagement/{str(response.engagement_id)}/finding/open"
|
|
71
|
+
return response
|
|
72
|
+
|
|
73
|
+
def reimport_scan(self, request, api_scan_bool):
|
|
74
|
+
response = None
|
|
75
|
+
|
|
76
|
+
if api_scan_bool:
|
|
77
|
+
logger.debug(f"reimport scan :{self.__rest_reimport_scan}")
|
|
78
|
+
response = self.__rest_reimport_scan.reimport_scan(request)
|
|
79
|
+
logger.info(f"End process Succesfull!!!: {response}")
|
|
80
|
+
else:
|
|
81
|
+
try:
|
|
82
|
+
logger.debug(f"reimport scan file :{self.__rest_reimport_scan}")
|
|
83
|
+
file_type = self.get_file_type(request.file)
|
|
84
|
+
if file_type is None:
|
|
85
|
+
raise ApiError("File format not allowed")
|
|
86
|
+
|
|
87
|
+
with open(request.file, "rb") as file:
|
|
88
|
+
logger.info(f"read {file_type} file successful !!!")
|
|
89
|
+
files = [("file", (request.file, file, file_type))]
|
|
90
|
+
response = self.__rest_reimport_scan.reimport_scan(request, files)
|
|
91
|
+
|
|
92
|
+
except Exception as e:
|
|
93
|
+
raise ApiError(e)
|
|
94
|
+
|
|
95
|
+
response.url = f"{request.host_defect_dojo}/engagement/{str(response.engagement_id)}/finding/open"
|
|
96
|
+
return response
|
|
97
|
+
|
|
98
|
+
def execute(self, request: ImportScanRequest) -> ImportScanRequest:
|
|
38
99
|
product_id = None
|
|
39
100
|
|
|
40
101
|
if (request.product_name or request.product_type_name) == "":
|
|
@@ -101,33 +162,8 @@ class ImportScanUserCase:
|
|
|
101
162
|
engagement = self.__rest_engagement.post_engagement(request.engagement_name, product_id)
|
|
102
163
|
logger.debug(f"Egagement created: {engagement.name} whit product id {engagement.product}")
|
|
103
164
|
|
|
104
|
-
if
|
|
105
|
-
|
|
106
|
-
|
|
165
|
+
if request.reimport_scan is True:
|
|
166
|
+
logger.debug("reimport scan flow")
|
|
167
|
+
return self.reimport_scan(request, api_scan_bool)
|
|
107
168
|
else:
|
|
108
|
-
|
|
109
|
-
file_type = self.get_file_type(request.file)
|
|
110
|
-
if file_type is None:
|
|
111
|
-
raise ApiError("File format not allowed")
|
|
112
|
-
|
|
113
|
-
with open(request.file, "rb") as file:
|
|
114
|
-
logger.info(f"read {file_type} file successful !!!")
|
|
115
|
-
files = [("file", (request.file, file, file_type))]
|
|
116
|
-
response = self.__rest_import_scan.import_scan(request, files)
|
|
117
|
-
|
|
118
|
-
except Exception as e:
|
|
119
|
-
raise ApiError(e)
|
|
120
|
-
|
|
121
|
-
response.url = f"{request.host_defect_dojo}/engagement/{str(response.engagement_id)}/finding/open"
|
|
122
|
-
return response
|
|
123
|
-
|
|
124
|
-
def get_file_type(self, path_file):
|
|
125
|
-
__, extension = os.path.splitext(path_file)
|
|
126
|
-
dict_rule_type_file = {
|
|
127
|
-
".csv": "text/csv",
|
|
128
|
-
".json": "apllication/json",
|
|
129
|
-
".xml": "aplication/xml",
|
|
130
|
-
".sarif": "aplication/json",
|
|
131
|
-
}
|
|
132
|
-
file_type = dict_rule_type_file.get(extension)
|
|
133
|
-
return file_type
|
|
169
|
+
return self.import_scan(request, api_scan_bool)
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/reimport_scan.py
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_utilities.utils.api_error import ApiError
|
|
2
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.domain.request_objects.import_scan import ImportScanRequest
|
|
3
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
4
|
+
from devsecops_engine_tools.engine_utilities.defect_dojo.infraestructure.driver_adapters.settings.settings import VERIFY_CERTIFICATE
|
|
5
|
+
from devsecops_engine_tools.engine_utilities.utils.session_manager import SessionManager
|
|
6
|
+
from devsecops_engine_tools.engine_utilities.settings import SETTING_LOGGER
|
|
7
|
+
|
|
8
|
+
logger = MyLogger.__call__(**SETTING_LOGGER).get_logger()
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class ReimportScanRestConsumer:
|
|
12
|
+
|
|
13
|
+
def __init__(self, request: ImportScanRequest, session: SessionManager):
|
|
14
|
+
self.__token = request.token_defect_dojo
|
|
15
|
+
self.__host = request.host_defect_dojo
|
|
16
|
+
self.__session = session._instance
|
|
17
|
+
|
|
18
|
+
def reimport_scan(self, request: ImportScanRequest, files) -> ImportScanRequest:
|
|
19
|
+
url = f"{self.__host}/api/v2/reimport-scan/"
|
|
20
|
+
logger.debug(f"URL: {url}")
|
|
21
|
+
payload = {
|
|
22
|
+
"scan_date": request.scan_date,
|
|
23
|
+
"minimum_severity": request.minimum_severity,
|
|
24
|
+
"active": request.active,
|
|
25
|
+
"verified": request.verified,
|
|
26
|
+
"scan_type": request.scan_type,
|
|
27
|
+
"endpoint_to_add": request.endpoint_to_add,
|
|
28
|
+
"file": files,
|
|
29
|
+
"product_type_name": request.product_type_name,
|
|
30
|
+
"product_name": request.product_name,
|
|
31
|
+
"engagement_name": request.engagement_name,
|
|
32
|
+
"engagement_end_date": request.engagement_end_date,
|
|
33
|
+
"source_code_management_uri": request.source_code_management_uri,
|
|
34
|
+
"auto_create_context": "true",
|
|
35
|
+
"deduplication_on_engagement": request.deduplication_on_engagement,
|
|
36
|
+
"lead": request.lead,
|
|
37
|
+
"push_to_jira": request.push_to_jira,
|
|
38
|
+
"environment": request.environment,
|
|
39
|
+
"build_id": request.build_id,
|
|
40
|
+
"branch_tag": request.branch_tag,
|
|
41
|
+
"commit_hash": request.commit_hash,
|
|
42
|
+
"api_scan_configuration": str(request.api_scan_configuration)
|
|
43
|
+
if request.api_scan_configuration != 0
|
|
44
|
+
else "",
|
|
45
|
+
"service": request.service,
|
|
46
|
+
"group_by": request.group_by,
|
|
47
|
+
"create_finding_groups_for_all_findings": request.create_finding_groups_for_all_findings,
|
|
48
|
+
"do_not_reactive"
|
|
49
|
+
"scan_type": request.scan_type,
|
|
50
|
+
"close_old_findings": request.close_old_findings,
|
|
51
|
+
"close_old_findings_product_scope": request.close_old_findings_product_scope,
|
|
52
|
+
"version": request.version,
|
|
53
|
+
"tags": request.tags,
|
|
54
|
+
"test_title": request.test_title,
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
headers = {"Authorization": f"Token {self.__token}"}
|
|
58
|
+
try:
|
|
59
|
+
response = self.__session.post(
|
|
60
|
+
url,
|
|
61
|
+
headers=headers,
|
|
62
|
+
data=payload,
|
|
63
|
+
files=files,
|
|
64
|
+
verify=VERIFY_CERTIFICATE
|
|
65
|
+
)
|
|
66
|
+
if response.status_code != 201:
|
|
67
|
+
logger.error(response.json())
|
|
68
|
+
raise ApiError(response.json())
|
|
69
|
+
logger.info(f"Sucessfull {response}")
|
|
70
|
+
response = ImportScanRequest.from_dict(response.json())
|
|
71
|
+
except Exception as e:
|
|
72
|
+
logger.error(f"from dict import Scan: {response.json()}")
|
|
73
|
+
raise ApiError(e)
|
|
74
|
+
return response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.
|
|
1
|
+
version = '1.37.0'
|
{devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.37.0
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -74,7 +74,7 @@ pip3 install devsecops-engine-tools
|
|
|
74
74
|
### Scan running - flags (CLI)
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --remote_config_branch ["remote_config_branch"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code, engine_dependencies and engine_secret"] --platform ["k8s","cloudformation","docker", "openapi", "terraform"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit"] --image_to_scan ["image_to_scan"] --dast_file_path ["dast_file_path"]
|
|
77
|
+
devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_config_repo ["remote_config_repo"] --remote_config_branch ["remote_config_branch"] --tool ["engine_iac", "engine_dast", "engine_secret", "engine_dependencies", "engine_container", "engine_risk", "engine_code"] --folder_path ["Folder path scan engine_iac, engine_code, engine_dependencies and engine_secret"] --platform ["k8s","cloudformation","docker", "openapi", "terraform"] --use_secrets_manager ["false", "true"] --use_vulnerability_management ["false", "true"] --send_metrics ["false", "true"] --token_cmdb ["token_cmdb"] --token_vulnerability_management ["token_vulnerability_management"] --token_engine_container ["token_engine_container"] --token_engine_dependencies ["token_engine_dependencies"] --token_external_checks ["token_external_checks"] --xray_mode ["scan", "audit","build-scan"] --image_to_scan ["image_to_scan"] --dast_file_path ["dast_file_path"]
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
### Structure Remote Config
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
devsecops_engine_tools/version.py,sha256=
|
|
2
|
+
devsecops_engine_tools/version.py,sha256=mKVVNS_mP15gWl2DD7oonpIpaGICZiDbUYmhzIK6Wtw,19
|
|
3
3
|
devsecops_engine_tools/engine_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
devsecops_engine_tools/engine_core/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
devsecops_engine_tools/engine_core/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=
|
|
6
|
+
devsecops_engine_tools/engine_core/src/applications/runner_engine_core.py,sha256=panasPdwMUKZYgcQXQdMqTjOISzx0OQcmsS61EeMucI,8194
|
|
7
7
|
devsecops_engine_tools/engine_core/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
8
|
devsecops_engine_tools/engine_core/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
devsecops_engine_tools/engine_core/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -19,7 +19,7 @@ devsecops_engine_tools/engine_core/src/domain/model/report.py,sha256=09QV_jBQbuc
|
|
|
19
19
|
devsecops_engine_tools/engine_core/src/domain/model/threshold.py,sha256=TCBECuvoC3-9g8vg3iKWGIixssNecP0iUaZ9Qzv0n7w,596
|
|
20
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
|
-
devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py,sha256
|
|
22
|
+
devsecops_engine_tools/engine_core/src/domain/model/gateway/devops_platform_gateway.py,sha256=-L7O48UlUe2wI1DRnpAdZ98SLge7pcvoUOXITgFaBLg,800
|
|
23
23
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/metrics_manager_gateway.py,sha256=u_ivbmCyymw0Je7gRFg0uD9iDmZfTbteH5UwcgP0JAs,191
|
|
24
24
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/printer_table_gateway.py,sha256=ROBsh7Lyu62a5RqZ4KgGQcwrBzbHRwxAJ9Rj3LoupQc,602
|
|
25
25
|
devsecops_engine_tools/engine_core/src/domain/model/gateway/sbom_manager.py,sha256=HpkUZYbmW72r4KDIPWwDmAOU_uawmKaexxmWheR9QAA,321
|
|
@@ -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=lNjYo83p3lovwfW4BeBtHQZckZl9m-9jlcIB-DesqhY,5316
|
|
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=aGwnDyQcI5NSufaQRPZHnXn4r2l_V0RnkWxzUj3hr0I,29560
|
|
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=cn9VGDaD9gUnJrLn9vEkQvfqYHIJftGE9ZACHEUOUxo,4132
|
|
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=uIO3rihY5uBm40dC9pAKaZoKO_606O1ZIgKG7TZCeS4,2867
|
|
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
|
|
@@ -227,21 +227,21 @@ devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/__init__.py,sha
|
|
|
227
227
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
228
228
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
229
229
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/deserializator_gateway.py,sha256=A4WPW-cNMlitI7-P2L-W2hFUPvIU7Ejk6JxRJGATfwc,301
|
|
230
|
-
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py,sha256=
|
|
230
|
+
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/model/gateways/tool_gateway.py,sha256=3DrF1v-E5tUGAj2N9f47o5TqPljCGjurWecUz36vRPY,281
|
|
231
231
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
232
|
-
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py,sha256=
|
|
232
|
+
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/dependencies_sca_scan.py,sha256=jrdWJhy9i6E_JFqXQDDgE7It-wYXjY3o9CgEfSTovsw,1741
|
|
233
233
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/handle_remote_config_patterns.py,sha256=cTM8IQRZJBr5zG5nhCkTxuw2fCHDZ3wrPgQhRjG88pg,968
|
|
234
234
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/domain/usecases/set_input_core.py,sha256=yy-S8nP7KGFUA9e19SaSvX5fnRTH_pjuwAGL-oDfOdM,2251
|
|
235
235
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
236
236
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
237
237
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
238
238
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_deserialize.py,sha256=Na8FSmBODt9XtxTtWvGpLWy3RvhoPJ2i7jneEfvpaHM,7210
|
|
239
|
-
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py,sha256=
|
|
239
|
+
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/dependency_check/dependency_check_tool.py,sha256=JH1GiB11OLfs8nRNOSMgK7VmQBUYC5gA3_XbVMiNX5A,4882
|
|
240
240
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
241
241
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_deserialize_output.py,sha256=ZUk-e1PKzV7uRAT7BpET363pgl2eMnXMCGSpewsOpKg,2236
|
|
242
|
-
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py,sha256=
|
|
242
|
+
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/driven_adapters/xray_tool/xray_manager_scan.py,sha256=Z6PHC5mV14q6yDDQ75qskjtIbV0mUn1LI47yshgY89Q,8910
|
|
243
243
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
244
|
-
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py,sha256=
|
|
244
|
+
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/entry_points/entry_point_tool.py,sha256=1A_KeCVCQN0z17zpvKQVajHAbNDbA7OCZkt8P1dwLK0,3621
|
|
245
245
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
246
246
|
devsecops_engine_tools/engine_sca/engine_dependencies/src/infrastructure/helpers/get_artifacts.py,sha256=CpzyUJyO2bRtv6mZJODV5NL5ea79_VRqsYKC0oYDsNU,4077
|
|
247
247
|
devsecops_engine_tools/engine_utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -257,7 +257,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/hello_world.py,sha256=WDvgS2
|
|
|
257
257
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
258
258
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/component.py,sha256=Y6vA1nRfMCoqJEceRBDQ_QLpIKASqB-t8V1yqao-eUQ,1175
|
|
259
259
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/connect.py,sha256=tRvNN-zVKBJbHMvfW97SCsZoyjGaKttcQhLOKrbjK9E,2079
|
|
260
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=
|
|
260
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/applications/defect_dojo.py,sha256=WKx_nBZV9bZj-Y9UAg-C4SeCapbRhQb7475lcuzlGVg,2943
|
|
261
261
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/engagement.py,sha256=sPTeQs6QHg07QNthqhY3caVbG54vDkd_E_KJpBvgTk4,878
|
|
262
262
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding.py,sha256=Cw5_TElo0D0Ec8X0lu-La2H9Pp1rsrmw-2Wv-0w_9oI,1451
|
|
263
263
|
devsecops_engine_tools/engine_utilities/defect_dojo/applications/finding_exclusion.py,sha256=StnDFV3vGhBffBEs-jfV9nMprzRucm5VJqtZFWKF3Fo,689
|
|
@@ -276,17 +276,17 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/product_type_l
|
|
|
276
276
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/models/scan_configuration.py,sha256=-uVxaTkxnDmUUGQUdN9x_VKR8KJUagJKnGR6B1emoEU,577
|
|
277
277
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
278
278
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/finding.py,sha256=RinG3ISc-u_3VXVqntwdcQvZoQdmHPCvDHWSvnkCkcU,2619
|
|
279
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py,sha256=
|
|
279
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/request_objects/import_scan.py,sha256=bISidRCaCMTXZBMOUlvQWW1yCLMPKRU0MCq2Nk9P7ZY,5085
|
|
280
280
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
281
281
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/finding.py,sha256=4IQLjqgyImVdn8AxoU3UKgXnvU-F-x7Tm2bJdp6nHm4,5265
|
|
282
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py,sha256=
|
|
282
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/serializers/import_scan.py,sha256=CvAxMDQBgqI7sCE8wGL7PYlyhpUQQJT6iU763EngYmc,7354
|
|
283
283
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
284
284
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/cmdb.py,sha256=BUOdvP39bEMQ6Unr2hB28eljVGU2Uv8dDEkzRyEJgyQ,2650
|
|
285
285
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/component.py,sha256=_icc-ZAqw-aVgE5J4VH8Q7fSqpCgEGcfmurgRIN9NqM,448
|
|
286
286
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/engagement.py,sha256=SVX-weFRPT3DK7w6IBrLuWS4L6vboMuZtwXAQmIHfEE,406
|
|
287
287
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py,sha256=TjfpdJtaBwQvT8XNJKBf6tuOASOAw7ZiOxJbqsKadaA,1689
|
|
288
288
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding_exclusion.py,sha256=VqdwBiQGc9XFpatvbXGL837LtTxkWlfhWH46W1cTbCg,455
|
|
289
|
-
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py,sha256=
|
|
289
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py,sha256=N31WBga-wu0inWOuikasSUP9ASemDJtrcHg31whCALM,8573
|
|
290
290
|
devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/product.py,sha256=6f6eABdC79zOopMe_Rif3XoGG-yFfq9x_EOkevTuGDY,368
|
|
291
291
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
292
292
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -298,6 +298,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapt
|
|
|
298
298
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py,sha256=68Qd8o0oSxFG-3cRlX97BkX9muS6k64DGslGtX9sx6M,5897
|
|
299
299
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product.py,sha256=DhiLPv8KyRhHBRhvF0ULhchhGAT8SQyn1ftiuou_aKw,2576
|
|
300
300
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/product_type.py,sha256=x-Gh2BEP6IZccS2m_DLB8xI6aEkS19J0ZUpP2mjY88o,3078
|
|
301
|
+
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/reimport_scan.py,sha256=6Wtg88p9WFdWjEAfNT2qjUcRGRg6wmruvuKcmajG3A8,3469
|
|
301
302
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/scan_configurations.py,sha256=YVIHiXPkJ8m1nOW7lG8LGbST16eMZoJwFQcrRRU7R6k,3089
|
|
302
303
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
303
304
|
devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/settings/settings.py,sha256=5ni59GuAHT-avpWNc4FSedVpoFRTGRNzjQJkAXpWv6c,28
|
|
@@ -347,8 +348,8 @@ devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGax
|
|
|
347
348
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
|
|
348
349
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=Z0fdhB3r-dxU0nGSD9zW_B4r2Qol1rUnUCkhFR0U-HQ,487
|
|
349
350
|
devsecops_engine_tools/engine_utilities/utils/utils.py,sha256=XFap4yOK7ItLWsqbwDhvLd7NpDhs7i-UGJAMD6jjd7w,6687
|
|
350
|
-
devsecops_engine_tools-1.
|
|
351
|
-
devsecops_engine_tools-1.
|
|
352
|
-
devsecops_engine_tools-1.
|
|
353
|
-
devsecops_engine_tools-1.
|
|
354
|
-
devsecops_engine_tools-1.
|
|
351
|
+
devsecops_engine_tools-1.37.0.dist-info/METADATA,sha256=i-HTGiYjg0YQjYwpabkhUQRCNp3Oxa5WAl4oi1_awHM,11605
|
|
352
|
+
devsecops_engine_tools-1.37.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
353
|
+
devsecops_engine_tools-1.37.0.dist-info/entry_points.txt,sha256=MHCTFFs9bdNKo6YcWCcBW2_8X6yTisgLOlmVx-V8Rxc,276
|
|
354
|
+
devsecops_engine_tools-1.37.0.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
355
|
+
devsecops_engine_tools-1.37.0.dist-info/RECORD,,
|
|
File without changes
|
{devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.35.0.dist-info → devsecops_engine_tools-1.37.0.dist-info}/top_level.txt
RENAMED
|
File without changes
|