cycode 3.0.2.dev1__tar.gz → 3.0.2.dev2__tar.gz

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.
Files changed (155) hide show
  1. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/PKG-INFO +1 -1
  2. cycode-3.0.2.dev2/cycode/__init__.py +1 -0
  3. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/base_restore_dependencies.py +4 -5
  4. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -3
  5. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +23 -21
  6. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -6
  7. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -6
  8. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/sca_code_scanner.py +12 -9
  9. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/pyproject.toml +1 -1
  10. cycode-3.0.2.dev1/cycode/__init__.py +0 -1
  11. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/LICENCE +0 -0
  12. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/README.md +0 -0
  13. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/__main__.py +0 -0
  14. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/__init__.py +0 -0
  15. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/app.py +0 -0
  16. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/__init__.py +0 -0
  17. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  18. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  19. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  20. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  21. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/auth/__init__.py +0 -0
  22. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/auth/auth_command.py +0 -0
  23. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/auth/auth_common.py +0 -0
  24. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/auth/auth_manager.py +0 -0
  25. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/auth/models.py +0 -0
  26. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/configure/__init__.py +0 -0
  27. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/configure/configure_command.py +0 -0
  28. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/configure/consts.py +0 -0
  29. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/configure/messages.py +0 -0
  30. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/configure/prompts.py +0 -0
  31. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/ignore/__init__.py +0 -0
  32. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  33. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/__init__.py +0 -0
  34. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/report_command.py +0 -0
  35. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  36. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/common.py +0 -0
  37. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  38. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  39. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  40. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  41. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  42. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  43. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/__init__.py +0 -0
  44. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/code_scanner.py +0 -0
  45. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  46. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  47. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/path/__init__.py +0 -0
  48. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/path/path_command.py +0 -0
  49. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  50. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  51. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  52. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  53. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  54. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  55. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  56. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  57. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  58. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/scan/scan_command.py +0 -0
  59. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/status/__init__.py +0 -0
  60. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/status/get_cli_status.py +0 -0
  61. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/status/models.py +0 -0
  62. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/status/status_command.py +0 -0
  63. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/apps/status/version_command.py +0 -0
  64. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/cli_types.py +0 -0
  65. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/config.py +0 -0
  66. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/console.py +0 -0
  67. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/consts.py +0 -0
  68. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/__init__.py +0 -0
  69. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  70. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  71. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  72. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/handle_errors.py +0 -0
  73. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  74. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  75. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/__init__.py +0 -0
  76. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/excluder.py +0 -0
  77. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/iac/__init__.py +0 -0
  78. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  79. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/models/__init__.py +0 -0
  80. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  81. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/path_documents.py +0 -0
  82. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/repository_documents.py +0 -0
  83. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/__init__.py +0 -0
  84. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  85. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  86. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  87. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  88. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  89. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  90. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  91. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  92. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  93. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/walk_ignore.py +0 -0
  94. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/files_collector/zip_documents.py +0 -0
  95. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/logger.py +0 -0
  96. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/main.py +0 -0
  97. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/models.py +0 -0
  98. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/__init__.py +0 -0
  99. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/console_printer.py +0 -0
  100. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/json_printer.py +0 -0
  101. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/printer_base.py +0 -0
  102. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/rich_printer.py +0 -0
  103. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/tables/__init__.py +0 -0
  104. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  105. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/tables/table.py +0 -0
  106. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/tables/table_models.py +0 -0
  107. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/tables/table_printer.py +0 -0
  108. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  109. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/text_printer.py +0 -0
  110. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/__init__.py +0 -0
  111. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  112. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/detection_data.py +0 -0
  113. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  114. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  115. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  116. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  117. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/user_settings/__init__.py +0 -0
  118. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/user_settings/base_file_manager.py +0 -0
  119. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/user_settings/config_file_manager.py +0 -0
  120. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/user_settings/configuration_manager.py +0 -0
  121. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/user_settings/credentials_manager.py +0 -0
  122. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/user_settings/jwt_creator.py +0 -0
  123. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/__init__.py +0 -0
  124. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/enum_utils.py +0 -0
  125. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/get_api_client.py +0 -0
  126. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/git_proxy.py +0 -0
  127. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/ignore_utils.py +0 -0
  128. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/jwt_utils.py +0 -0
  129. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/path_utils.py +0 -0
  130. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/progress_bar.py +0 -0
  131. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/scan_batch.py +0 -0
  132. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/scan_utils.py +0 -0
  133. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/sentry.py +0 -0
  134. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/shell_executor.py +0 -0
  135. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/string_utils.py +0 -0
  136. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/task_timer.py +0 -0
  137. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/version_checker.py +0 -0
  138. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cli/utils/yaml_utils.py +0 -0
  139. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/config.py +0 -0
  140. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/__init__.py +0 -0
  141. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/auth_client.py +0 -0
  142. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/client_creator.py +0 -0
  143. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/config.py +0 -0
  144. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/config_dev.py +0 -0
  145. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/cycode_client.py +0 -0
  146. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/cycode_client_base.py +0 -0
  147. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  148. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/cycode_token_based_client.py +0 -0
  149. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/headers.py +0 -0
  150. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/logger.py +0 -0
  151. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/models.py +0 -0
  152. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/report_client.py +0 -0
  153. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/scan_client.py +0 -0
  154. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/cyclient/scan_config_base.py +0 -0
  155. {cycode-3.0.2.dev1 → cycode-3.0.2.dev2}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cycode
3
- Version: 3.0.2.dev1
3
+ Version: 3.0.2.dev2
4
4
  Summary: Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning.
5
5
  Home-page: https://github.com/cycodehq/cycode-cli
6
6
  License: MIT
@@ -0,0 +1 @@
1
+ __version__ = '3.0.2.dev2' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -59,14 +59,13 @@ class BaseRestoreDependencies(ABC):
59
59
  manifest_file_path = self.get_manifest_file_path(document)
60
60
  restore_file_path = build_dep_tree_path(document.absolute_path, self.get_lock_file_name())
61
61
  relative_restore_file_path = build_dep_tree_path(document.path, self.get_lock_file_name())
62
- working_directory_path = self.get_working_directory(document)
63
62
 
64
63
  if not self.verify_restore_file_already_exist(restore_file_path):
65
64
  output = execute_commands(
66
- self.get_commands(manifest_file_path),
67
- self.command_timeout,
65
+ commands=self.get_commands(manifest_file_path),
66
+ timeout=self.command_timeout,
68
67
  output_file_path=restore_file_path if self.create_output_file_manually else None,
69
- working_directory=working_directory_path,
68
+ working_directory=self.get_working_directory(document),
70
69
  )
71
70
  if output is None: # one of the commands failed
72
71
  return None
@@ -75,7 +74,7 @@ class BaseRestoreDependencies(ABC):
75
74
  return Document(relative_restore_file_path, restore_file_content, self.is_git_diff)
76
75
 
77
76
  def get_working_directory(self, document: Document) -> Optional[str]:
78
- return None
77
+ return os.path.dirname(document.absolute_path)
79
78
 
80
79
  @staticmethod
81
80
  def verify_restore_file_already_exist(restore_file_path: str) -> bool:
@@ -43,6 +43,3 @@ class RestoreGoDependencies(BaseRestoreDependencies):
43
43
 
44
44
  def get_lock_file_name(self) -> str:
45
45
  return GO_RESTORE_FILE_NAME
46
-
47
- def get_working_directory(self, document: Document) -> Optional[str]:
48
- return os.path.dirname(document.absolute_path)
@@ -30,34 +30,36 @@ class RestoreMavenDependencies(BaseRestoreDependencies):
30
30
  return join_paths('target', MAVEN_CYCLONE_DEP_TREE_FILE_NAME)
31
31
 
32
32
  def try_restore_dependencies(self, document: Document) -> Optional[Document]:
33
- restore_dependencies_document = super().try_restore_dependencies(document)
34
33
  manifest_file_path = self.get_manifest_file_path(document)
35
34
  if document.content is None:
36
- restore_dependencies_document = self.restore_from_secondary_command(
37
- document, manifest_file_path, restore_dependencies_document
38
- )
39
- else:
40
- restore_dependencies_document.content = get_file_content(
41
- join_paths(get_file_dir(manifest_file_path), self.get_lock_file_name())
42
- )
35
+ return self.restore_from_secondary_command(document, manifest_file_path)
36
+
37
+ restore_dependencies_document = super().try_restore_dependencies(document)
38
+ if restore_dependencies_document is None:
39
+ return None
40
+
41
+ restore_dependencies_document.content = get_file_content(
42
+ join_paths(get_file_dir(manifest_file_path), self.get_lock_file_name())
43
+ )
43
44
 
44
45
  return restore_dependencies_document
45
46
 
46
- def restore_from_secondary_command(
47
- self, document: Document, manifest_file_path: str, restore_dependencies_document: Optional[Document]
48
- ) -> Optional[Document]:
49
- # TODO(MarshalX): does it even work? Ignored restore_dependencies_document arg
50
- secondary_restore_command = create_secondary_restore_commands(manifest_file_path)
51
- backup_restore_content = execute_commands(secondary_restore_command, self.command_timeout)
52
- restore_dependencies_document = Document(
53
- build_dep_tree_path(document.path, MAVEN_DEP_TREE_FILE_NAME), backup_restore_content, self.is_git_diff
47
+ def restore_from_secondary_command(self, document: Document, manifest_file_path: str) -> Optional[Document]:
48
+ restore_content = execute_commands(
49
+ commands=create_secondary_restore_commands(manifest_file_path),
50
+ timeout=self.command_timeout,
51
+ working_directory=self.get_working_directory(document),
54
52
  )
55
- restore_dependencies = None
56
- if restore_dependencies_document.content is not None:
57
- restore_dependencies = restore_dependencies_document
58
- restore_dependencies.content = get_file_content(MAVEN_DEP_TREE_FILE_NAME)
53
+ if restore_content is None:
54
+ return None
59
55
 
60
- return restore_dependencies
56
+ restore_file_path = build_dep_tree_path(document.absolute_path, MAVEN_DEP_TREE_FILE_NAME)
57
+ return Document(
58
+ path=build_dep_tree_path(document.path, MAVEN_DEP_TREE_FILE_NAME),
59
+ content=get_file_content(restore_file_path),
60
+ is_git_diff_format=self.is_git_diff,
61
+ absolute_path=restore_file_path,
62
+ )
61
63
 
62
64
 
63
65
  def create_secondary_restore_commands(manifest_file_path: str) -> list[list[str]]:
@@ -1,6 +1,3 @@
1
- import os
2
- from typing import Optional
3
-
4
1
  from cycode.cli.files_collector.sca.base_restore_dependencies import BaseRestoreDependencies
5
2
  from cycode.cli.models import Document
6
3
 
@@ -17,6 +14,3 @@ class RestoreRubyDependencies(BaseRestoreDependencies):
17
14
 
18
15
  def get_lock_file_name(self) -> str:
19
16
  return RUBY_LOCK_FILE_NAME
20
-
21
- def get_working_directory(self, document: Document) -> Optional[str]:
22
- return os.path.dirname(document.absolute_path)
@@ -1,6 +1,3 @@
1
- import os
2
- from typing import Optional
3
-
4
1
  from cycode.cli.files_collector.sca.base_restore_dependencies import BaseRestoreDependencies
5
2
  from cycode.cli.models import Document
6
3
 
@@ -17,6 +14,3 @@ class RestoreSbtDependencies(BaseRestoreDependencies):
17
14
 
18
15
  def get_lock_file_name(self) -> str:
19
16
  return SBT_LOCK_FILE_NAME
20
-
21
- def get_working_directory(self, document: Document) -> Optional[str]:
22
- return os.path.dirname(document.absolute_path)
@@ -92,17 +92,16 @@ def get_project_file_ecosystem(document: Document) -> Optional[str]:
92
92
 
93
93
  def try_restore_dependencies(
94
94
  ctx: typer.Context,
95
- documents_to_add: dict[str, Document],
96
95
  restore_dependencies: 'BaseRestoreDependencies',
97
96
  document: Document,
98
- ) -> None:
97
+ ) -> Optional[Document]:
99
98
  if not restore_dependencies.is_project(document):
100
- return
99
+ return None
101
100
 
102
101
  restore_dependencies_document = restore_dependencies.restore(document)
103
102
  if restore_dependencies_document is None:
104
103
  logger.warning('Error occurred while trying to generate dependencies tree, %s', {'filename': document.path})
105
- return
104
+ return None
106
105
 
107
106
  if restore_dependencies_document.content is None:
108
107
  logger.warning('Error occurred while trying to generate dependencies tree, %s', {'filename': document.path})
@@ -114,10 +113,7 @@ def try_restore_dependencies(
114
113
  manifest_file_path = get_manifest_file_path(document, is_monitor_action, project_path)
115
114
  logger.debug('Succeeded to generate dependencies tree on path: %s', manifest_file_path)
116
115
 
117
- if restore_dependencies_document.path in documents_to_add:
118
- logger.debug('Duplicate document on restore for path: %s', restore_dependencies_document.path)
119
- else:
120
- documents_to_add[restore_dependencies_document.path] = restore_dependencies_document
116
+ return restore_dependencies_document
121
117
 
122
118
 
123
119
  def add_dependencies_tree_document(
@@ -128,7 +124,14 @@ def add_dependencies_tree_document(
128
124
 
129
125
  for restore_dependencies in restore_dependencies_list:
130
126
  for document in documents_to_scan:
131
- try_restore_dependencies(ctx, documents_to_add, restore_dependencies, document)
127
+ restore_dependencies_document = try_restore_dependencies(ctx, restore_dependencies, document)
128
+ if restore_dependencies_document is None:
129
+ continue
130
+
131
+ if restore_dependencies_document.path in documents_to_add:
132
+ logger.debug('Duplicate document on restore for path: %s', restore_dependencies_document.path)
133
+ else:
134
+ documents_to_add[restore_dependencies_document.path] = restore_dependencies_document
132
135
 
133
136
  # mutate original list using slice assignment
134
137
  documents_to_scan[:] = list(documents_to_add.values())
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cycode"
3
- version = "3.0.2.dev1" # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
3
+ version = "3.0.2.dev2" # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
4
4
  description = "Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning."
5
5
  keywords=["secret-scan", "cycode", "devops", "token", "secret", "security", "cycode", "code"]
6
6
  authors = ["Cycode <support@cycode.com>"]
@@ -1 +0,0 @@
1
- __version__ = '3.0.2.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
File without changes
File without changes