devsecops-engine-tools 1.8.11__py3-none-any.whl → 1.8.12__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_sast/engine_secret/src/domain/model/gateway/git_gateway.py +2 -6
- devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py +1 -2
- devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py +2 -8
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py +17 -51
- devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py +3 -6
- devsecops_engine_tools/version.py +1 -1
- {devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/METADATA +1 -1
- {devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/RECORD +11 -11
- {devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/WHEEL +0 -0
- {devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/entry_points.txt +0 -0
- {devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/top_level.txt +0 -0
|
@@ -5,11 +5,7 @@ class GitGateway(metaclass=ABCMeta):
|
|
|
5
5
|
@abstractmethod
|
|
6
6
|
def get_files_pull_request(self, sys_working_dir: str,
|
|
7
7
|
target_branch: str,
|
|
8
|
-
config_target_branch: dict,
|
|
9
8
|
source_branch: str,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
team_project: str,
|
|
13
|
-
repository_name: str,
|
|
14
|
-
repository_provider: str) -> dict:
|
|
9
|
+
message_info_engine_secret: str
|
|
10
|
+
) -> dict:
|
|
15
11
|
"get_files_pull_request"
|
|
@@ -36,20 +36,14 @@ class SecretScan:
|
|
|
36
36
|
files_pullrequest = self.git_gateway.get_files_pull_request(
|
|
37
37
|
self.devops_platform_gateway.get_variable("path_directory"),
|
|
38
38
|
self.devops_platform_gateway.get_variable("target_branch"),
|
|
39
|
-
config_tool.target_branches,
|
|
40
39
|
self.devops_platform_gateway.get_variable("source_branch"),
|
|
41
|
-
|
|
42
|
-
self.devops_platform_gateway.get_variable("organization"),
|
|
43
|
-
self.devops_platform_gateway.get_variable("project_name"),
|
|
44
|
-
self.devops_platform_gateway.get_variable("repository"),
|
|
45
|
-
self.devops_platform_gateway.get_variable("repository_provider"))
|
|
40
|
+
config_tool.message_info_engine_secret)
|
|
46
41
|
findings, file_path_findings = self.tool_gateway.run_tool_secret_scan(
|
|
47
42
|
files_pullrequest,
|
|
48
43
|
config_tool.exclude_path,
|
|
49
44
|
self.devops_platform_gateway.get_variable("os"),
|
|
50
45
|
self.devops_platform_gateway.get_variable("path_directory"),
|
|
51
|
-
config_tool.number_threads
|
|
52
|
-
self.devops_platform_gateway.get_variable("repository")
|
|
46
|
+
config_tool.number_threads
|
|
53
47
|
)
|
|
54
48
|
finding_list = self.tool_deserialize.get_list_vulnerability(
|
|
55
49
|
findings,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
import os
|
|
3
3
|
import subprocess
|
|
4
|
-
from urllib.parse import quote
|
|
5
4
|
from devsecops_engine_tools.engine_sast.engine_secret.src.domain.model.gateway.git_gateway import GitGateway
|
|
6
5
|
|
|
7
6
|
from devsecops_engine_tools.engine_utilities.utils.logger_info import MyLogger
|
|
@@ -15,61 +14,28 @@ class GitRun(GitGateway):
|
|
|
15
14
|
def get_files_pull_request(self,
|
|
16
15
|
sys_working_dir,
|
|
17
16
|
target_branch,
|
|
18
|
-
config_target_branch,
|
|
19
17
|
source_branch,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
team_project,
|
|
23
|
-
repository_name,
|
|
24
|
-
repository_provider):
|
|
18
|
+
message_info_engine_secret
|
|
19
|
+
):
|
|
25
20
|
try:
|
|
26
|
-
if repository_provider == 'GitHub' or target_branch not in config_target_branch:
|
|
27
|
-
os.chdir(sys_working_dir)
|
|
28
|
-
subprocess.run(['git', 'checkout', '-b', source_branch, f'origin/{source_branch}'], capture_output=True, text=True)
|
|
29
|
-
env = os.environ.copy()
|
|
30
|
-
env["GIT_COMMITTER_NAME"] = "Your Name"
|
|
31
|
-
env["GIT_COMMITTER_EMAIL"] = "your.email@example.com"
|
|
32
|
-
env["GIT_AUTHOR_NAME"] = "Your Name"
|
|
33
|
-
env["GIT_AUTHOR_EMAIL"] = "your.email@example.com"
|
|
34
|
-
command = ["git", "rebase", f"origin/{target_branch}", "-X", "theirs"]
|
|
35
|
-
subprocess.run(command, env=env, capture_output=True, text=True)
|
|
36
|
-
|
|
37
|
-
diff = subprocess.run(['git', 'diff', f'origin/{target_branch}..{source_branch}', '--name-only'], capture_output=True, text=True)
|
|
38
|
-
if diff.returncode == 0:
|
|
39
|
-
diff_files = diff.stdout.strip().split("\n")
|
|
40
|
-
print("Pull Requests Associated Files:",diff_files)
|
|
41
|
-
return diff_files
|
|
42
|
-
return []
|
|
43
|
-
base_compact_url = (
|
|
44
|
-
f"https://{collection_uri.rstrip('/').split('/')[-1].replace('.visualstudio.com','')}"
|
|
45
|
-
f".visualstudio.com/{quote(team_project)}/_git/"
|
|
46
|
-
f"{repository_name}"
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
url_without_https = base_compact_url.replace("https://", "")
|
|
50
|
-
url_with_token = f"https://x-access-token:{access_token}@{url_without_https}"
|
|
51
|
-
|
|
52
|
-
path_new_folder = sys_working_dir + '/' + repository_name
|
|
53
|
-
|
|
54
|
-
if os.path.exists(path_new_folder):
|
|
55
|
-
logger.warning(f"Error: folder {repository_name} already exist")
|
|
56
|
-
return []
|
|
57
|
-
os.makedirs(path_new_folder)
|
|
58
|
-
os.chdir(sys_working_dir)
|
|
59
|
-
subprocess.run(["git", "clone", "--branch", target_branch, url_with_token, path_new_folder], capture_output=True, text=True)
|
|
60
|
-
os.chdir(path_new_folder)
|
|
61
|
-
|
|
62
21
|
source_branch = source_branch.replace("refs/heads/", "")
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
22
|
+
os.chdir(sys_working_dir)
|
|
23
|
+
subprocess.run(['git', 'checkout', '-b', source_branch, f'origin/{source_branch}'], text=True, capture_output=True, check=True)
|
|
24
|
+
env = os.environ.copy()
|
|
25
|
+
env["GIT_COMMITTER_NAME"] = "Your Name"
|
|
26
|
+
env["GIT_COMMITTER_EMAIL"] = "your.email@example.com"
|
|
27
|
+
env["GIT_AUTHOR_NAME"] = "Your Name"
|
|
28
|
+
env["GIT_AUTHOR_EMAIL"] = "your.email@example.com"
|
|
29
|
+
command = ["git", "rebase", f"origin/{target_branch}", "-X", "theirs"]
|
|
30
|
+
subprocess.run(command, env=env, text=True, capture_output=True)
|
|
66
31
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
print("Pull Requests Associated Files:",len(diff_files))
|
|
32
|
+
diff = subprocess.run(['git', 'diff', f'origin/{target_branch}..{source_branch}', '--name-only'], capture_output=True, text=True)
|
|
33
|
+
if diff.returncode == 0:
|
|
34
|
+
diff_files = diff.stdout.strip().split("\n")
|
|
35
|
+
print("Pull Requests Associated Files:",diff_files)
|
|
72
36
|
return diff_files
|
|
37
|
+
except subprocess.CalledProcessError as e:
|
|
38
|
+
raise Exception(f"Error in pipeline configuration, {message_info_engine_secret}") from e
|
|
73
39
|
except Exception as e:
|
|
74
40
|
logger.warning(f"Error getting files PullRequest: {e}")
|
|
75
41
|
return []
|
|
@@ -43,8 +43,7 @@ class TrufflehogRun(ToolGateway):
|
|
|
43
43
|
exclude_paths,
|
|
44
44
|
agent_os,
|
|
45
45
|
agent_work_folder,
|
|
46
|
-
num_threads
|
|
47
|
-
repository_name,
|
|
46
|
+
num_threads
|
|
48
47
|
):
|
|
49
48
|
trufflehog_command = "trufflehog"
|
|
50
49
|
if "Windows" in agent_os:
|
|
@@ -60,7 +59,6 @@ class TrufflehogRun(ToolGateway):
|
|
|
60
59
|
[agent_work_folder] * len(include_paths),
|
|
61
60
|
[exclude_path] * len(include_paths),
|
|
62
61
|
include_paths,
|
|
63
|
-
[repository_name] * len(include_paths),
|
|
64
62
|
)
|
|
65
63
|
findings, file_findings = self.create_file(self.decode_output(results), agent_work_folder)
|
|
66
64
|
return findings, file_findings
|
|
@@ -88,10 +86,9 @@ class TrufflehogRun(ToolGateway):
|
|
|
88
86
|
trufflehog_command,
|
|
89
87
|
agent_work_folder,
|
|
90
88
|
exclude_path,
|
|
91
|
-
include_path
|
|
92
|
-
repository_name,
|
|
89
|
+
include_path
|
|
93
90
|
):
|
|
94
|
-
command = f"{trufflehog_command} filesystem {agent_work_folder
|
|
91
|
+
command = f"{trufflehog_command} filesystem {agent_work_folder} --include-paths {include_path} --exclude-paths {exclude_path} --no-verification --json"
|
|
95
92
|
result = subprocess.run(command, capture_output=True, shell=True, text=True)
|
|
96
93
|
return result.stdout.strip()
|
|
97
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
version = '1.8.
|
|
1
|
+
version = '1.8.12'
|
|
@@ -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=BBgNCLLOuHVu2DQAn0GV0vn4CrHoHNR_BwugcH29gfQ,18
|
|
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
|
|
@@ -123,18 +123,18 @@ devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/DeserializeCon
|
|
|
123
123
|
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
124
|
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
125
|
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/gateway_deserealizator.py,sha256=4fYPengHW3K0uVP6wHgOiNu-gRb08m78E7QZayZ2LC4,441
|
|
126
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py,sha256=
|
|
127
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py,sha256=
|
|
126
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/git_gateway.py,sha256=d6hT4AAyRCqckbEGKEzXRAgT8766tOyxAeUn0foJvpc,409
|
|
127
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py,sha256=2kHgUus04M2kpFfVvwcRrhglN8JI3w3JfB-qjfJvoKk,542
|
|
128
128
|
devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
129
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py,sha256=
|
|
129
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/secret_scan.py,sha256=I8YKSw5rsKimBukCC3eoN8TACwZFgD42okvYNeG115Y,3464
|
|
130
130
|
devsecops_engine_tools/engine_sast/engine_secret/src/domain/usecases/set_input_core.py,sha256=k0LZd9PJpqEDns6DLYRGu9DzpRZeFsxAnowcjP5Rml4,2838
|
|
131
131
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
132
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
133
133
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
134
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py,sha256=
|
|
134
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/git_cli/git_run.py,sha256=DzdBmwA2-3b5OBkjdOmiF9UcHwD8b7HJNboCdmSxJ7Q,1993
|
|
135
135
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
136
136
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_deserealizator.py,sha256=WpFFswOmP38cLvfZHCrPDiRtdwH86n1CqVNS3K4s6uA,1968
|
|
137
|
-
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=
|
|
137
|
+
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/driven_adapters/trufflehog/trufflehog_run.py,sha256=1TvGYg65KX3Af-AxH73UNlUr0BnxmvFha0r3AZeqBYg,5210
|
|
138
138
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
139
|
devsecops_engine_tools/engine_sast/engine_secret/src/infrastructure/entry_points/entry_point_tool.py,sha256=WJJVGqE0PJMoATi8ubTGsqyrx4KqEQluXCg9Hk-NiOw,982
|
|
140
140
|
devsecops_engine_tools/engine_sca/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -256,8 +256,8 @@ devsecops_engine_tools/engine_utilities/utils/logger_info.py,sha256=4Mz8Bwlm9Mku
|
|
|
256
256
|
devsecops_engine_tools/engine_utilities/utils/name_conversion.py,sha256=ADJrRGaxYSDe0ZRh6VHRf53H4sXPcb-vNP_i81PUn3I,307
|
|
257
257
|
devsecops_engine_tools/engine_utilities/utils/printers.py,sha256=amYAr9YQfYgR6jK9a2l26z3oovFPQ3FAKmhq6BKhEBA,623
|
|
258
258
|
devsecops_engine_tools/engine_utilities/utils/session_manager.py,sha256=yNtlT-8Legz1sHbGPH8LNYjL-LgDUE0zXG2rYjiab7U,290
|
|
259
|
-
devsecops_engine_tools-1.8.
|
|
260
|
-
devsecops_engine_tools-1.8.
|
|
261
|
-
devsecops_engine_tools-1.8.
|
|
262
|
-
devsecops_engine_tools-1.8.
|
|
263
|
-
devsecops_engine_tools-1.8.
|
|
259
|
+
devsecops_engine_tools-1.8.12.dist-info/METADATA,sha256=tunV5N0EWwVUs0Q662ShzxxG4eZBV5NTr0G4fP5gbsA,10444
|
|
260
|
+
devsecops_engine_tools-1.8.12.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
|
261
|
+
devsecops_engine_tools-1.8.12.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
|
|
262
|
+
devsecops_engine_tools-1.8.12.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
|
|
263
|
+
devsecops_engine_tools-1.8.12.dist-info/RECORD,,
|
|
File without changes
|
{devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{devsecops_engine_tools-1.8.11.dist-info → devsecops_engine_tools-1.8.12.dist-info}/top_level.txt
RENAMED
|
File without changes
|