devsecops-engine-tools 1.7.29__py3-none-any.whl → 1.7.31__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of devsecops-engine-tools might be problematic. Click here for more details.
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py +2 -0
- devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py +5 -4
- devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py +4 -0
- devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py +10 -0
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py +0 -0
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py +57 -0
- devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py +140 -0
- devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py +1 -1
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/METADATA +57 -2
- {devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/RECORD +14 -11
- {devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/WHEEL +1 -1
- {devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/top_level.txt +0 -0
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py
CHANGED
|
@@ -11,12 +11,12 @@ from devsecops_engine_tools.engine_utilities.github.models.GithubPredefinedVaria
|
|
|
11
11
|
from devsecops_engine_tools.engine_utilities.github.infrastructure.github_api import (
|
|
12
12
|
GithubApi,
|
|
13
13
|
)
|
|
14
|
-
import os
|
|
15
14
|
|
|
16
15
|
|
|
17
16
|
@dataclass
|
|
18
17
|
class GithubActions(DevopsPlatformGateway):
|
|
19
18
|
OKGREEN = "\033[92m"
|
|
19
|
+
WARNING = "\033[93m"
|
|
20
20
|
FAIL = "\033[91m"
|
|
21
21
|
ENDC = "\033[0m"
|
|
22
22
|
ICON_FAIL = "\u2718"
|
|
@@ -49,7 +49,8 @@ class GithubActions(DevopsPlatformGateway):
|
|
|
49
49
|
def result_pipeline(self, type):
|
|
50
50
|
results = {
|
|
51
51
|
"failed": f"{self.FAIL}{self.ICON_FAIL}Failed{self.ENDC}",
|
|
52
|
-
"succeeded": f"{self.OKGREEN}{self.ICON_SUCCESS}Succeeded{self.ENDC}"
|
|
52
|
+
"succeeded": f"{self.OKGREEN}{self.ICON_SUCCESS}Succeeded{self.ENDC}",
|
|
53
|
+
"succeeded_with_issues": f"{self.WARNING}{self.ICON_SUCCESS}Succeeded with issues{self.ENDC}"
|
|
53
54
|
}
|
|
54
55
|
return results.get(type)
|
|
55
56
|
|
|
@@ -77,10 +78,10 @@ class GithubActions(DevopsPlatformGateway):
|
|
|
77
78
|
"repository": BuildVariables.github_repository,
|
|
78
79
|
"pipeline_name": (
|
|
79
80
|
BuildVariables.github_workflow
|
|
80
|
-
if SystemVariables.
|
|
81
|
+
if SystemVariables.github_job.value() == "build"
|
|
81
82
|
else ReleaseVariables.github_workflow
|
|
82
83
|
),
|
|
83
|
-
"stage": SystemVariables.
|
|
84
|
+
"stage": SystemVariables.github_job,
|
|
84
85
|
"path_directory": SystemVariables.github_workspace,
|
|
85
86
|
"os": AgentVariables.runner_os,
|
|
86
87
|
"work_folder": AgentVariables.github_workspace,
|
|
@@ -7,6 +7,9 @@ from devsecops_engine_tools.engine_sast.engine_iac.src.infrastructure.driven_ada
|
|
|
7
7
|
from devsecops_engine_tools.engine_sast.engine_iac.src.infrastructure.driven_adapters.kubescape.kubescape_tool import (
|
|
8
8
|
KubescapeTool
|
|
9
9
|
)
|
|
10
|
+
from devsecops_engine_tools.engine_sast.engine_iac.src.infrastructure.driven_adapters.kics.kics_tool import (
|
|
11
|
+
KicsTool
|
|
12
|
+
)
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
def runner_engine_iac(dict_args, tool, secret_tool, devops_platform_gateway, env):
|
|
@@ -17,6 +20,7 @@ def runner_engine_iac(dict_args, tool, secret_tool, devops_platform_gateway, env
|
|
|
17
20
|
tools = {
|
|
18
21
|
"CHECKOV": CheckovTool(),
|
|
19
22
|
"KUBESCAPE": KubescapeTool(),
|
|
23
|
+
"KICS": KicsTool()
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
if tool in tools:
|
|
@@ -21,3 +21,13 @@ class ConfigTool:
|
|
|
21
21
|
self.exclusions_all = None
|
|
22
22
|
self.exclusions_scope = None
|
|
23
23
|
self.rules_all = {}
|
|
24
|
+
if "KICS_LINUX" in json_data[tool]:
|
|
25
|
+
self.kics_linux = json_data[tool]["KICS_LINUX"]
|
|
26
|
+
if "KICS_WINDOWS" in json_data[tool]:
|
|
27
|
+
self.kics_windows = json_data[tool]["KICS_WINDOWS"]
|
|
28
|
+
if "KICS_MAC" in json_data[tool]:
|
|
29
|
+
self.kics_mac = json_data[tool]["KICS_MAC"]
|
|
30
|
+
if "PATH_KICS" in json_data[tool]:
|
|
31
|
+
self.path_kics = json_data[tool]["PATH_KICS"]
|
|
32
|
+
if "DOWNLOAD_KICS_ASSETS" in json_data[tool]:
|
|
33
|
+
self.download_kics_assets = json_data[tool]["DOWNLOAD_KICS_ASSETS"]
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py
ADDED
|
File without changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
from devsecops_engine_tools.engine_core.src.domain.model.finding import (
|
|
2
|
+
Category,
|
|
3
|
+
Finding,
|
|
4
|
+
)
|
|
5
|
+
from datetime import datetime
|
|
6
|
+
from dataclasses import dataclass
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@dataclass
|
|
10
|
+
class KicsDeserealizator:
|
|
11
|
+
def get_list_finding(self, results_scan_list: list) -> "list[Finding]":
|
|
12
|
+
list_open_findings = []
|
|
13
|
+
|
|
14
|
+
for result in results_scan_list:
|
|
15
|
+
finding_open = Finding(
|
|
16
|
+
id=result.get("id"),
|
|
17
|
+
cvss=None,
|
|
18
|
+
where=result.get("file_name"),
|
|
19
|
+
description=result.get("description"),
|
|
20
|
+
severity=result.get("severity").lower(),
|
|
21
|
+
identification_date=datetime.now().strftime("%d%m%Y"),
|
|
22
|
+
published_date_cve=None,
|
|
23
|
+
module="engine_iac",
|
|
24
|
+
category=Category.VULNERABILITY,
|
|
25
|
+
requirements=None,
|
|
26
|
+
tool="Kics"
|
|
27
|
+
)
|
|
28
|
+
list_open_findings.append(finding_open)
|
|
29
|
+
|
|
30
|
+
return list_open_findings
|
|
31
|
+
|
|
32
|
+
def get_findings(self, data):
|
|
33
|
+
filtered_results = []
|
|
34
|
+
for query in data.get("queries", []):
|
|
35
|
+
severity = query.get("severity", "").upper()
|
|
36
|
+
if severity in {"LOW", "MEDIUM", "HIGH", "CRITICAL"}:
|
|
37
|
+
description = query.get("query_name", "")
|
|
38
|
+
query_id = query.get("query_id", "")
|
|
39
|
+
for file in query.get("files", []):
|
|
40
|
+
file_name = file.get("file_name", "")
|
|
41
|
+
filtered_results.append({
|
|
42
|
+
"severity": severity,
|
|
43
|
+
"description": description,
|
|
44
|
+
"file_name": file_name,
|
|
45
|
+
"id": query_id
|
|
46
|
+
})
|
|
47
|
+
return filtered_results
|
|
48
|
+
|
|
49
|
+
def calculate_total_vulnerabilities(self, data):
|
|
50
|
+
severity_counters = data.get("severity_counters", {})
|
|
51
|
+
|
|
52
|
+
critical = severity_counters.get("CRITICAL", 0)
|
|
53
|
+
high = severity_counters.get("HIGH", 0)
|
|
54
|
+
medium = severity_counters.get("MEDIUM", 0)
|
|
55
|
+
low = severity_counters.get("LOW", 0)
|
|
56
|
+
|
|
57
|
+
return critical + high + medium + low
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import subprocess
|
|
2
|
+
import json
|
|
3
|
+
import platform
|
|
4
|
+
import requests
|
|
5
|
+
import os
|
|
6
|
+
from devsecops_engine_tools.engine_sast.engine_iac.src.domain.model.gateways.tool_gateway import (
|
|
7
|
+
ToolGateway,
|
|
8
|
+
)
|
|
9
|
+
from devsecops_engine_tools.engine_sast.engine_iac.src.domain.model.config_tool import (
|
|
10
|
+
ConfigTool,
|
|
11
|
+
)
|
|
12
|
+
from devsecops_engine_tools.engine_sast.engine_iac.src.infrastructure.driven_adapters.kics.kics_deserealizator import (
|
|
13
|
+
KicsDeserealizator
|
|
14
|
+
)
|
|
15
|
+
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
16
|
+
from devsecops_engine_tools.engine_utilities import settings
|
|
17
|
+
from devsecops_engine_tools.engine_utilities.github.infrastructure.github_api import GithubApi
|
|
18
|
+
|
|
19
|
+
logger = MyLogger.__call__(**settings.SETTING_LOGGER).get_logger()
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class KicsTool(ToolGateway):
|
|
23
|
+
|
|
24
|
+
def download(self, file, url):
|
|
25
|
+
try:
|
|
26
|
+
response = requests.get(url)
|
|
27
|
+
with open(file, "wb") as f:
|
|
28
|
+
f.write(response.content)
|
|
29
|
+
except Exception as ex:
|
|
30
|
+
logger.error(f"An error ocurred downloading {file} {ex}")
|
|
31
|
+
|
|
32
|
+
def install_tool(self, file, url, command_prefix):
|
|
33
|
+
github_api = GithubApi()
|
|
34
|
+
kics = f"./{command_prefix}/kics"
|
|
35
|
+
installed = subprocess.run(
|
|
36
|
+
["which", command_prefix],
|
|
37
|
+
stdout=subprocess.PIPE,
|
|
38
|
+
stderr=subprocess.PIPE,
|
|
39
|
+
)
|
|
40
|
+
if installed.returncode == 1:
|
|
41
|
+
try:
|
|
42
|
+
self.download(file, url)
|
|
43
|
+
github_api.unzip_file(file, command_prefix)
|
|
44
|
+
subprocess.run(["chmod", "+x", kics])
|
|
45
|
+
return kics
|
|
46
|
+
except Exception as e:
|
|
47
|
+
logger.error(f"Error installing KICS: {e}")
|
|
48
|
+
else:
|
|
49
|
+
return command_prefix
|
|
50
|
+
|
|
51
|
+
def install_tool_windows(self, file, url, command_prefix):
|
|
52
|
+
try:
|
|
53
|
+
subprocess.run(
|
|
54
|
+
[command_prefix, "version"],
|
|
55
|
+
stdout=subprocess.PIPE,
|
|
56
|
+
stderr=subprocess.PIPE,
|
|
57
|
+
)
|
|
58
|
+
return command_prefix
|
|
59
|
+
except:
|
|
60
|
+
try:
|
|
61
|
+
github_api = GithubApi()
|
|
62
|
+
self.download(file, url)
|
|
63
|
+
github_api.unzip_file(file, command_prefix)
|
|
64
|
+
return f"./{command_prefix}/kics"
|
|
65
|
+
|
|
66
|
+
except Exception as e:
|
|
67
|
+
logger.error(f"Error installing KICS: {e}")
|
|
68
|
+
|
|
69
|
+
def execute_kics(self, folders_to_scan, prefix):
|
|
70
|
+
folders = ','.join(folders_to_scan)
|
|
71
|
+
command = [prefix, "scan", "-p", folders, "-q", "./kics_assets/assets", "--report-formats", "json", "-o", "./"]
|
|
72
|
+
try:
|
|
73
|
+
subprocess.run(command, capture_output=True)
|
|
74
|
+
except subprocess.CalledProcessError as e:
|
|
75
|
+
logger.error(f"Error during KICS execution: {e}")
|
|
76
|
+
|
|
77
|
+
def load_results(self):
|
|
78
|
+
try:
|
|
79
|
+
with open('results.json') as f:
|
|
80
|
+
data = json.load(f)
|
|
81
|
+
return data
|
|
82
|
+
except Exception as ex:
|
|
83
|
+
logger.error(f"An error ocurred loading KICS results {ex}")
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
def select_operative_system(self, os_platform, folders_to_scan, config_tool: ConfigTool, path_kics):
|
|
87
|
+
command_prefix = path_kics
|
|
88
|
+
if os_platform == "Linux":
|
|
89
|
+
kics_zip = "kics_linux.zip"
|
|
90
|
+
url_kics = config_tool.kics_linux
|
|
91
|
+
command_prefix = self.install_tool(kics_zip, url_kics, command_prefix)
|
|
92
|
+
elif os_platform == "Windows":
|
|
93
|
+
kics_zip = "kics_windows.zip"
|
|
94
|
+
url_kics = config_tool.kics_windows
|
|
95
|
+
command_prefix = self.install_tool_windows(kics_zip, url_kics, command_prefix)
|
|
96
|
+
elif os_platform == "Darwin":
|
|
97
|
+
kics_zip = "kics_macos.zip"
|
|
98
|
+
url_kics = config_tool.kics_mac
|
|
99
|
+
command_prefix = self.install_tool(kics_zip, url_kics, command_prefix)
|
|
100
|
+
else:
|
|
101
|
+
logger.warning(f"{os_platform} is not supported.")
|
|
102
|
+
return [], None
|
|
103
|
+
|
|
104
|
+
self.execute_kics(folders_to_scan, command_prefix)
|
|
105
|
+
|
|
106
|
+
def get_assets(self, kics_version):
|
|
107
|
+
name_zip = "assets_compressed.zip"
|
|
108
|
+
assets_url = f"https://github.com/Checkmarx/kics/releases/download/v{kics_version}/extracted-info.zip"
|
|
109
|
+
self.download(name_zip, assets_url)
|
|
110
|
+
|
|
111
|
+
directory_assets = "kics_assets"
|
|
112
|
+
github_api = GithubApi()
|
|
113
|
+
github_api.unzip_file(name_zip, directory_assets)
|
|
114
|
+
|
|
115
|
+
def run_tool(
|
|
116
|
+
self, config_tool: ConfigTool, folders_to_scan, environment, platform_to_scan, secret_tool
|
|
117
|
+
):
|
|
118
|
+
kics_version = config_tool.version
|
|
119
|
+
path_kics = config_tool.path_kics
|
|
120
|
+
download_kics_assets = config_tool.download_kics_assets
|
|
121
|
+
if download_kics_assets:
|
|
122
|
+
self.get_assets(kics_version)
|
|
123
|
+
|
|
124
|
+
os_platform = platform.system()
|
|
125
|
+
self.select_operative_system(os_platform, folders_to_scan, config_tool, path_kics)
|
|
126
|
+
|
|
127
|
+
data = self.load_results()
|
|
128
|
+
if data:
|
|
129
|
+
kics_deserealizator = KicsDeserealizator()
|
|
130
|
+
total_vulnerabilities = kics_deserealizator.calculate_total_vulnerabilities(data)
|
|
131
|
+
path_file = os.path.abspath("results.json")
|
|
132
|
+
|
|
133
|
+
if total_vulnerabilities == 0:
|
|
134
|
+
return [], path_file
|
|
135
|
+
|
|
136
|
+
filtered_results = kics_deserealizator.get_findings(data)
|
|
137
|
+
finding_list = kics_deserealizator.get_list_finding(filtered_results)
|
|
138
|
+
|
|
139
|
+
return finding_list, path_file
|
|
140
|
+
return [], None
|
|
@@ -24,7 +24,7 @@ class BaseEnum(Enum):
|
|
|
24
24
|
class SystemVariables(BaseEnum):
|
|
25
25
|
github_access_token = "github.access.token"
|
|
26
26
|
github_workspace = "github.workspace"
|
|
27
|
-
|
|
27
|
+
github_job = "github.job"
|
|
28
28
|
github_server_url = "github.server.url"
|
|
29
29
|
github_repository = "github.repository"
|
|
30
30
|
github_event_number = "github.event.number"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.7.
|
|
1
|
+
version = '1.7.31'
|
{devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: devsecops-engine-tools
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.31
|
|
4
4
|
Summary: Tool for DevSecOps strategy
|
|
5
5
|
Home-page: https://github.com/bancolombia/devsecops-engine-tools
|
|
6
6
|
Author: Bancolombia DevSecOps Team
|
|
@@ -98,13 +98,17 @@ devsecops-engine-tools --platform_devops ["local","azure","github"] --remote_con
|
|
|
98
98
|
<th>Type</th>
|
|
99
99
|
</tr>
|
|
100
100
|
<tr>
|
|
101
|
-
<td rowspan="
|
|
101
|
+
<td rowspan="3">ENGINE_IAC</td>
|
|
102
102
|
<td><a href="https://www.checkov.io/">CHECKOV</a></td>
|
|
103
103
|
<td>Free</td>
|
|
104
104
|
</tr>
|
|
105
105
|
<tr>
|
|
106
106
|
<td><a href="https://kubescape.io/">KUBESCAPE</a></td>
|
|
107
107
|
<td>Free</td>
|
|
108
|
+
</tr>
|
|
109
|
+
<tr>
|
|
110
|
+
<td><a href="https://www.kics.io/">KICS</a></td>
|
|
111
|
+
<td>Free</td>
|
|
108
112
|
</tr>
|
|
109
113
|
<tr>
|
|
110
114
|
<td>ENGINE_DAST</td>
|
|
@@ -150,6 +154,57 @@ devsecops-engine-tools --platform_devops local --remote_config_repo DevSecOps_Re
|
|
|
150
154
|
|
|
151
155
|

|
|
152
156
|
|
|
157
|
+
### Scan running sample - Github Actions
|
|
158
|
+
|
|
159
|
+
The remote config should be in a GitHub repository, either public or private.
|
|
160
|
+
|
|
161
|
+
**If the repository is public:**
|
|
162
|
+
|
|
163
|
+
1. The yml file containing the workflow should be configured using the default secret **GITHUB_TOKEN**.
|
|
164
|
+
For more information, refer to [Automatic token authentication](https://docs.github.com/en/actions/security-guides/automatic-token-authentication).
|
|
165
|
+
|
|
166
|
+
**If the repository is private:**
|
|
167
|
+
|
|
168
|
+
1. Create a personal access token with the necessary permissions to access the repository.
|
|
169
|
+
2. Add the token as a secret in the GitHub repository.
|
|
170
|
+

|
|
171
|
+
|
|
172
|
+
3. Configure the yml file containing the workflow using the created secret.
|
|
173
|
+
|
|
174
|
+
**Example of the workflow yml:**
|
|
175
|
+
|
|
176
|
+
```yaml
|
|
177
|
+
name: DevSecOps Engine Tools
|
|
178
|
+
on:
|
|
179
|
+
push:
|
|
180
|
+
branches:
|
|
181
|
+
- feature/*
|
|
182
|
+
env:
|
|
183
|
+
GITHUB_ACCESS_TOKEN: ${{ secrets.GH_ACCESSTOKEN }} #In this case, the remote config repository is private
|
|
184
|
+
# When the remote config repository is public, the secret should be like this: ${{ secrets.GITHUB_TOKEN }}
|
|
185
|
+
|
|
186
|
+
jobs:
|
|
187
|
+
release:
|
|
188
|
+
runs-on: ubuntu-latest
|
|
189
|
+
steps:
|
|
190
|
+
- uses: actions/checkout@v4
|
|
191
|
+
|
|
192
|
+
- name: Set up Python
|
|
193
|
+
uses: actions/setup-python@v5
|
|
194
|
+
with:
|
|
195
|
+
python-version: "3.12"
|
|
196
|
+
|
|
197
|
+
- name: Set up Python
|
|
198
|
+
run: |
|
|
199
|
+
# Install devsecops-engine-tools
|
|
200
|
+
pip3 install -q devsecops-engine-tools
|
|
201
|
+
output=$(devsecops-engine-tools --platform_devops github --remote_config_repo remote_config --tool engine_iac)
|
|
202
|
+
echo "$output"
|
|
203
|
+
if [[ $output == *"✘Failed"* ]]; then
|
|
204
|
+
exit 1
|
|
205
|
+
fi
|
|
206
|
+
```
|
|
207
|
+
|
|
153
208
|
# Metrics
|
|
154
209
|
|
|
155
210
|
With the flag **--send_metrics true** and the configuration of the AWS-METRICS_MANAGER driven adapter in ConfigTool.json of the engine_core the tool will send the report to bucket s3. In the [metrics](https://github.com/bancolombia/devsecops-engine-tools/blob/trunk/metrics/) folder you will find the base of the cloud formation template to deploy the infra and dashboard in grafana.
|
|
@@ -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=Tca23yRPfWkiFCGCli2_DjySHpzpH0VrKME5ge3f-9w,19
|
|
3
3
|
devsecops_engine_tools/engine_core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
devsecops_engine_tools/engine_core/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
devsecops_engine_tools/engine_core/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -36,9 +36,9 @@ devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/aws/secret
|
|
|
36
36
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
37
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/azure/azure_devops.py,sha256=Ot1j5my-iEpU-ZYy9yNXkwmwLOmJ3f95JyyAUcpFN5g,4967
|
|
38
38
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=
|
|
39
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/defect_dojo/defect_dojo.py,sha256=6xQ9coU37r9g3lYlxWEVGiM8WBWSL_5TP-6EVr8BWAY,10992
|
|
40
40
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=
|
|
41
|
+
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/github/github_actions.py,sha256=JhTfHCR4G29VByrS7ntKZwXbfCHpO0C3D8vIQlBD4rQ,3855
|
|
42
42
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
43
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/printer_pretty_table/printer_pretty_table.py,sha256=O1waYz_6ElcOkU3Nb4suJs2ZJIo0YLoFuNXi9-j-wSs,3811
|
|
44
44
|
devsecops_engine_tools/engine_core/src/infrastructure/driven_adapters/runtime_local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -81,12 +81,12 @@ devsecops_engine_tools/engine_sast/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
|
|
|
81
81
|
devsecops_engine_tools/engine_sast/engine_iac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
82
|
devsecops_engine_tools/engine_sast/engine_iac/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
83
|
devsecops_engine_tools/engine_sast/engine_iac/src/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
-
devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py,sha256=
|
|
84
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/applications/runner_iac_scan.py,sha256=lN5bywQHIBmKeQ8HV_pGha29lZQ8Dl0IuhXxqeRCZd0,1307
|
|
85
85
|
devsecops_engine_tools/engine_sast/engine_iac/src/deployment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
86
|
devsecops_engine_tools/engine_sast/engine_iac/src/deployment/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
87
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
88
88
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
|
-
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py,sha256=
|
|
89
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/config_tool.py,sha256=K8kzxap2I3ogHQvunWb23SxqCCDuvnoUO5fSvRz_g-E,1790
|
|
90
90
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
91
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/model/gateways/tool_gateway.py,sha256=tqOkmy5fRMvCFjuQUSdGdWd-PrShtJi0YDlAQ8htMzM,216
|
|
92
92
|
devsecops_engine_tools/engine_sast/engine_iac/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -97,6 +97,9 @@ devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters
|
|
|
97
97
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_config.py,sha256=qbE6wUO5_WFXF_QolL0JYelaRGEOUakPEZR_6HAKzzI,4355
|
|
98
98
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_deserealizator.py,sha256=gBwnQ20QExHTrN1nvErUUqb_IMHvYKJijqc55XwZHQk,1404
|
|
99
99
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/checkov/checkov_tool.py,sha256=ddPjhbOe2w-kQmiBLP6udBPmXZhVZqQLwOEdgvt1r1s,7664
|
|
100
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_deserealizator.py,sha256=b1X5GWz2snJtsKZcGEsILNc178hv9p-lg-el0Jc-_Eo,2084
|
|
102
|
+
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kics/kics_tool.py,sha256=5XTYxq0aptupaQfwwXTYDCKGGd4YyGdRP9y6yckoGuk,5345
|
|
100
103
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
104
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_deserealizator.py,sha256=i-hKFmR-OriwiiBg-3E3RKc7hjI1E8jv8Z7dQ8_Q0qE,2885
|
|
102
105
|
devsecops_engine_tools/engine_sast/engine_iac/src/infrastructure/driven_adapters/kubescape/kubescape_tool.py,sha256=wcornvTaU5o2MtZj_KkgWvNABW2rCd08sZkaMbbZoTI,4707
|
|
@@ -232,7 +235,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/repository/_
|
|
|
232
235
|
devsecops_engine_tools/engine_utilities/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
233
236
|
devsecops_engine_tools/engine_utilities/github/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
234
237
|
devsecops_engine_tools/engine_utilities/github/infrastructure/github_api.py,sha256=AURk8GGAkNuHCqTEsiS6UxClL_YYJoqtBrWGBSYgWO4,2436
|
|
235
|
-
devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py,sha256=
|
|
238
|
+
devsecops_engine_tools/engine_utilities/github/models/GithubPredefinedVariables.py,sha256=LmIvCVDyszInElu_-Pt034q1Zaajp-QA3ge-RtimxHg,1589
|
|
236
239
|
devsecops_engine_tools/engine_utilities/github/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
237
240
|
devsecops_engine_tools/engine_utilities/input_validations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
238
241
|
devsecops_engine_tools/engine_utilities/input_validations/env_utils.py,sha256=nHp9YIuG1k-IvxssQslrE9ny62juJMovmBTzcM7PPk0,258
|
|
@@ -247,8 +250,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
|
|
|
247
250
|
devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
|
|
248
251
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=GAslbWaBpwP3mP6fBsgVl07TTBgcCggQTy8h2M9ibeo,612
|
|
249
252
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
|
|
250
|
-
devsecops_engine_tools-1.7.
|
|
251
|
-
devsecops_engine_tools-1.7.
|
|
252
|
-
devsecops_engine_tools-1.7.
|
|
253
|
-
devsecops_engine_tools-1.7.
|
|
254
|
-
devsecops_engine_tools-1.7.
|
|
253
|
+
devsecops_engine_tools-1.7.31.dist-info/METADATA,sha256=6MoaA3dTvTpV-3DJODIYxIV5QltvFQLXcVlnZ75iCVo,7691
|
|
254
|
+
devsecops_engine_tools-1.7.31.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
|
|
255
|
+
devsecops_engine_tools-1.7.31.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
|
|
256
|
+
devsecops_engine_tools-1.7.31.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
257
|
+
devsecops_engine_tools-1.7.31.dist-info/RECORD,,
|
{devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.7.29.dist-info → devsecops_engine_tools-1.7.31.dist-info}/top_level.txt
RENAMED
|
File without changes
|