From ce59060d4070756b0d5580f6a87d0c09b860af11 Mon Sep 17 00:00:00 2001 From: Mor Samouchian Date: Wed, 10 Jan 2024 14:41:20 +0200 Subject: [PATCH 1/5] CM-31147 [cycode-cli] gradle - poc with TrustPilot using with private repository and should support reading existing restore file from folder --- .../maven/base_restore_maven_dependencies.py | 24 ++++++++++++------- .../sca/maven/restore_gradle_dependencies.py | 4 ++++ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py index 064b9eeb..dac399ed 100644 --- a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py @@ -39,6 +39,22 @@ def get_manifest_file_path(self, document: Document) -> str: else document.path ) + def try_restore_dependencies(self, document: Document) -> Optional[Document]: + manifest_file_path = self.get_manifest_file_path(document) + restore_file_path = build_dep_tree_path(document.path, self.get_lock_file_name()) + + if self._verify_restore_file_already_exist(restore_file_path): + with open(restore_file_path) as file: + restore_file_content = file.read() + else: + restore_file_content = execute_command(self.get_command(manifest_file_path), manifest_file_path, + self.command_timeout) + + return Document(restore_file_path, restore_file_content, self.is_git_diff) + + def _verify_restore_file_already_exist(self, restore_file_path: str) -> bool: + return False + @abstractmethod def is_project(self, document: Document) -> bool: pass @@ -50,11 +66,3 @@ def get_command(self, manifest_file_path: str) -> List[str]: @abstractmethod def get_lock_file_name(self) -> str: pass - - def try_restore_dependencies(self, document: Document) -> Optional[Document]: - manifest_file_path = self.get_manifest_file_path(document) - return Document( - build_dep_tree_path(document.path, self.get_lock_file_name()), - execute_command(self.get_command(manifest_file_path), manifest_file_path, self.command_timeout), - self.is_git_diff, - ) diff --git a/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py b/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py index ef975ba5..bb0286c3 100644 --- a/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py @@ -1,3 +1,4 @@ +import os from typing import List import click @@ -22,3 +23,6 @@ def get_command(self, manifest_file_path: str) -> List[str]: def get_lock_file_name(self) -> str: return BUILD_GRADLE_DEP_TREE_FILE_NAME + + def _verify_restore_file_already_exist(self, restore_file_path: str) -> bool: + return os.path.isfile(restore_file_path) From 10fb6fd8e70ca24b02e4bd30feafff7ce51ecb0c Mon Sep 17 00:00:00 2001 From: Mor Samouchian Date: Wed, 10 Jan 2024 16:29:58 +0200 Subject: [PATCH 2/5] CM-31147 [cycode-cli] gradle - poc with TrustPilot using with private repository and should support reading existing restore file from folder --- .../sca/maven/base_restore_maven_dependencies.py | 12 ++++++------ .../sca/maven/restore_gradle_dependencies.py | 2 +- .../sca/maven/restore_maven_dependencies.py | 5 ++++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py index dac399ed..08d24225 100644 --- a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py @@ -4,7 +4,7 @@ import click from cycode.cli.models import Document -from cycode.cli.utils.path_utils import get_file_dir, join_paths +from cycode.cli.utils.path_utils import get_file_dir, join_paths, get_file_content from cycode.cli.utils.shell_executor import shell from cycode.cyclient import logger @@ -43,17 +43,17 @@ def try_restore_dependencies(self, document: Document) -> Optional[Document]: manifest_file_path = self.get_manifest_file_path(document) restore_file_path = build_dep_tree_path(document.path, self.get_lock_file_name()) - if self._verify_restore_file_already_exist(restore_file_path): - with open(restore_file_path) as file: - restore_file_content = file.read() + if self.verify_restore_file_already_exist(restore_file_path): + restore_file_content = get_file_content(restore_file_path) else: restore_file_content = execute_command(self.get_command(manifest_file_path), manifest_file_path, self.command_timeout) return Document(restore_file_path, restore_file_content, self.is_git_diff) - def _verify_restore_file_already_exist(self, restore_file_path: str) -> bool: - return False + @abstractmethod + def verify_restore_file_already_exist(self, restore_file_path: str) -> bool: + pass @abstractmethod def is_project(self, document: Document) -> bool: diff --git a/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py b/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py index bb0286c3..21fdb7c3 100644 --- a/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py @@ -24,5 +24,5 @@ def get_command(self, manifest_file_path: str) -> List[str]: def get_lock_file_name(self) -> str: return BUILD_GRADLE_DEP_TREE_FILE_NAME - def _verify_restore_file_already_exist(self, restore_file_path: str) -> bool: + def verify_restore_file_already_exist(self, restore_file_path: str) -> bool: return os.path.isfile(restore_file_path) diff --git a/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py index 0e21df12..f46984b3 100644 --- a/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py @@ -29,6 +29,9 @@ def get_command(self, manifest_file_path: str) -> List[str]: def get_lock_file_name(self) -> str: return join_paths('target', MAVEN_CYCLONE_DEP_TREE_FILE_NAME) + def verify_restore_file_already_exist(self, restore_file_path: str) -> bool: + False + def try_restore_dependencies(self, document: Document) -> Optional[Document]: restore_dependencies_document = super().try_restore_dependencies(document) manifest_file_path = self.get_manifest_file_path(document) @@ -44,7 +47,7 @@ def try_restore_dependencies(self, document: Document) -> Optional[Document]: return restore_dependencies_document def restore_from_secondary_command( - self, document: Document, manifest_file_path: str, restore_dependencies_document: Optional[Document] + self, document: Document, manifest_file_path: str, restore_dependencies_document: Optional[Document] ) -> Optional[Document]: # TODO(MarshalX): does it even work? Ignored restore_dependencies_document arg secondary_restore_command = create_secondary_restore_command(manifest_file_path) From 33b9ad418707f51f3696044cb2132520a9decf96 Mon Sep 17 00:00:00 2001 From: Mor Samouchian Date: Wed, 10 Jan 2024 16:36:28 +0200 Subject: [PATCH 3/5] CM-31147 [cycode-cli] gradle - poc with TrustPilot using with private repository and should support reading existing restore file from folder --- .../cli/files_collector/sca/maven/restore_maven_dependencies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py index f46984b3..2140ad76 100644 --- a/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py @@ -30,7 +30,7 @@ def get_lock_file_name(self) -> str: return join_paths('target', MAVEN_CYCLONE_DEP_TREE_FILE_NAME) def verify_restore_file_already_exist(self, restore_file_path: str) -> bool: - False + return False def try_restore_dependencies(self, document: Document) -> Optional[Document]: restore_dependencies_document = super().try_restore_dependencies(document) From 41df50d616563f68e204cee1f75d88916e7b4bb9 Mon Sep 17 00:00:00 2001 From: Mor Samouchian Date: Wed, 10 Jan 2024 16:57:32 +0200 Subject: [PATCH 4/5] CM-31147 [cycode-cli] gradle - poc with TrustPilot using with private repository and should support reading existing restore file from folder --- .../sca/maven/base_restore_maven_dependencies.py | 5 +++-- .../files_collector/sca/maven/restore_maven_dependencies.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py index 08d24225..868cf997 100644 --- a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py @@ -46,8 +46,9 @@ def try_restore_dependencies(self, document: Document) -> Optional[Document]: if self.verify_restore_file_already_exist(restore_file_path): restore_file_content = get_file_content(restore_file_path) else: - restore_file_content = execute_command(self.get_command(manifest_file_path), manifest_file_path, - self.command_timeout) + restore_file_content = execute_command( + self.get_command(manifest_file_path), manifest_file_path, self.command_timeout + ) return Document(restore_file_path, restore_file_content, self.is_git_diff) diff --git a/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py index 2140ad76..d9c117e6 100644 --- a/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py @@ -47,7 +47,7 @@ def try_restore_dependencies(self, document: Document) -> Optional[Document]: return restore_dependencies_document def restore_from_secondary_command( - self, document: Document, manifest_file_path: str, restore_dependencies_document: Optional[Document] + self, document: Document, manifest_file_path: str, restore_dependencies_document: Optional[Document] ) -> Optional[Document]: # TODO(MarshalX): does it even work? Ignored restore_dependencies_document arg secondary_restore_command = create_secondary_restore_command(manifest_file_path) From c0cf81d1800e525db34eec67f27df3fecaceb4ba Mon Sep 17 00:00:00 2001 From: Mor Samouchian Date: Wed, 10 Jan 2024 17:00:34 +0200 Subject: [PATCH 5/5] CM-31147 [cycode-cli] gradle - poc with TrustPilot using with private repository and should support reading existing restore file from folder --- .../sca/maven/base_restore_maven_dependencies.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py index 868cf997..d15e1ef0 100644 --- a/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py +++ b/cycode/cli/files_collector/sca/maven/base_restore_maven_dependencies.py @@ -4,7 +4,7 @@ import click from cycode.cli.models import Document -from cycode.cli.utils.path_utils import get_file_dir, join_paths, get_file_content +from cycode.cli.utils.path_utils import get_file_content, get_file_dir, join_paths from cycode.cli.utils.shell_executor import shell from cycode.cyclient import logger