devsecops-engine-tools 1.8.11__py3-none-any.whl → 1.8.13__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.

@@ -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
- access_token: str,
11
- collection_uri: str,
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"
@@ -11,6 +11,5 @@ class ToolGateway(metaclass=ABCMeta):
11
11
  exclude_path: dict,
12
12
  agent_os: str,
13
13
  agent_work_folder: str,
14
- num_threads: int,
15
- repository_name: str) -> str:
14
+ num_threads: int) -> str:
16
15
  "run tool secret scan"
@@ -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
- self.devops_platform_gateway.get_variable("access_token"),
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
- access_token,
21
- collection_uri,
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
- subprocess.run(["git", "checkout", "-b", source_branch], capture_output=True, text=True)
64
- command = ["git","-c","user.email=you@example.com","-c","user.name=Your Name","pull","--rebase","-X", "theirs","--no-edit","origin",source_branch]
65
- subprocess.run(command, capture_output=True, text=True)
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
- if source_branch != None:
68
- diff = subprocess.run(['git', 'diff', '--name-only', f'{source_branch}..{target_branch}'], capture_output=True, text=True)
69
- if diff:
70
- diff_files = diff.stdout.strip().split("\n")
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 + '/' + repository_name} --include-paths {include_path} --exclude-paths {exclude_path} --no-verification --json"
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
 
@@ -21,23 +21,24 @@ class CmdbRestConsumer:
21
21
  data = json.dumps({"codapp": request.code_app})
22
22
  headers = {"tokenkey": self.__token, "Content-Type": "application/json"}
23
23
  logger.info("Search info of name product")
24
+ cmdb_object = Cmdb(
25
+ product_type_name="ORPHAN_PRODUCT_TYPE",
26
+ product_name=f"{request.code_app}_Product",
27
+ tag_product="ORPHAN",
28
+ product_description="Orphan Product Description",
29
+ codigo_app=str(request.code_app),
30
+ )
24
31
  try:
25
32
  response = self.__session.post(self.__host, headers=headers, data=data, verify=VERIFY_CERTIFICATE)
26
33
  if response.status_code != 200:
27
34
  logger.error(response)
28
- raise ApiError(response.json()["Message"])
35
+ raise ApiError(f"Error querying cmdb: {response.reason}")
29
36
 
30
37
  if response.json() == []:
31
38
  e = f"Engagement: {request.code_app} not found"
32
39
  logger.warning(e)
33
40
  # Producto is Orphan
34
- return Cmdb(
35
- product_type_name="ORPHAN_PRODUCT_TYPE",
36
- product_name=f"{request.code_app}_Product",
37
- tag_product="ORPHAN",
38
- product_description="Orphan Product Description",
39
- codigo_app=str(request.code_app),
40
- )
41
+ return cmdb_object
41
42
 
42
43
  data = response.json()[-1]
43
44
  data_map = self.mapping_cmdb(data)
@@ -45,11 +46,11 @@ class CmdbRestConsumer:
45
46
  cmdb_object = Cmdb.from_dict(data_map)
46
47
  except Exception as e:
47
48
  logger.error(e)
48
- raise ApiError(e)
49
+ return cmdb_object
49
50
  return cmdb_object
50
51
 
51
52
  def mapping_cmdb(self, data):
52
53
  data_map = {}
53
54
  for key, value in self.__mapping_cmdb.items():
54
55
  data_map[key] = data[value] if value in data else ""
55
- return data_map
56
+ return data_map
@@ -1 +1 @@
1
- version = '1.8.11'
1
+ version = '1.8.13'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: devsecops-engine-tools
3
- Version: 1.8.11
3
+ Version: 1.8.13
4
4
  Summary: Tool for DevSecOps strategy
5
5
  Home-page: https://github.com/bancolombia/devsecops-engine-tools
6
6
  Author: Bancolombia DevSecOps Team
@@ -1,5 +1,5 @@
1
1
  devsecops_engine_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- devsecops_engine_tools/version.py,sha256=QINaXfXDoD1Uuf648DtGP8UCoV9DzGlQZO8UPxKpqxI,18
2
+ devsecops_engine_tools/version.py,sha256=S6HhgJQgheBBHlWAIeACo1IcPFltqmDNBAdPRB4ya-8,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=x6LFK8wZuVix-ZCBdBQTzvjQi59nZYVrSOTatCOQbxc,638
127
- devsecops_engine_tools/engine_sast/engine_secret/src/domain/model/gateway/tool_gateway.py,sha256=juharYjy__KyB0fFCbU30k_aLd_9cQgsoCMeodq9ebA,593
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=9DAX-3cJB5JmK7ZV3s0NQlGLMaPBiP7UbCOJ8OYlH3A,3916
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=ZCPsII6lkUutRJ3MdjD2vTc1lq6DgvHHMtXoaiIadk4,3844
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=cvCSKTDN-4oL9H5EZF_-WrP5bNamFt0WfeCwaMO_Nfo,5345
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
@@ -228,7 +228,7 @@ devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/finding.py,
228
228
  devsecops_engine_tools/engine_utilities/defect_dojo/domain/user_case/import_scan.py,sha256=6Ik3_IUPgsvVQ3uXMV6nkxdT89-lVNQVdvVWzmZSxgE,6794
229
229
  devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
230
  devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
231
- devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py,sha256=v11qQYdGp2XmnQ3Xk_i69zHNPmNQ7rR7g9_IcNm34so,2577
231
+ devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/cmdb.py,sha256=mnd4380zxuuaK__1S4MbxfXXAiHhpsJSaHXuDu8wghM,2626
232
232
  devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/engagement.py,sha256=39qqmTxECRY5IoFvK_B_R0vfwfJwLbdhGt_pcdvdVIE,3571
233
233
  devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/finding.py,sha256=k-z2tg_NPKMni7rZgXMZa2-t8_8F35r8YtF1EcjMyDs,2355
234
234
  devsecops_engine_tools/engine_utilities/defect_dojo/infraestructure/driver_adapters/import_scan.py,sha256=68Qd8o0oSxFG-3cRlX97BkX9muS6k64DGslGtX9sx6M,5897
@@ -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.11.dist-info/METADATA,sha256=3FKECyn44sXgZhMzpeadfIq9fNv2WHlTy800kbrQrOE,10444
260
- devsecops_engine_tools-1.8.11.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
261
- devsecops_engine_tools-1.8.11.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
262
- devsecops_engine_tools-1.8.11.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
263
- devsecops_engine_tools-1.8.11.dist-info/RECORD,,
259
+ devsecops_engine_tools-1.8.13.dist-info/METADATA,sha256=kB8OX0SJ7ui2I2XSWlwC8cUOZhAJ5d-Au5tPWp_DV9E,10444
260
+ devsecops_engine_tools-1.8.13.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
261
+ devsecops_engine_tools-1.8.13.dist-info/entry_points.txt,sha256=9IjXF_7Zpgowq_SY6OSmsA9vZze18a8_AeHwkQVrgKk,131
262
+ devsecops_engine_tools-1.8.13.dist-info/top_level.txt,sha256=ge6y0X_xBAU1aG3EMWFtl9djbVyg5BxuSp2r2Lg6EQU,23
263
+ devsecops_engine_tools-1.8.13.dist-info/RECORD,,