cycode 3.4.1.dev4__tar.gz → 3.4.1.dev6__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 (164) hide show
  1. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/PKG-INFO +1 -1
  2. cycode-3.4.1.dev6/cycode/__init__.py +1 -0
  3. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/commit_range_scanner.py +4 -1
  4. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/consts.py +1 -0
  5. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/commit_range_documents.py +35 -7
  6. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/rich_printer.py +1 -1
  7. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/pyproject.toml +1 -1
  8. cycode-3.4.1.dev4/cycode/__init__.py +0 -1
  9. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/LICENCE +0 -0
  10. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/README.md +0 -0
  11. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/__main__.py +0 -0
  12. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/__init__.py +0 -0
  13. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/app.py +0 -0
  14. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/__init__.py +0 -0
  15. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  16. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  17. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  18. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  19. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/auth/__init__.py +0 -0
  20. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/auth/auth_command.py +0 -0
  21. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/auth/auth_common.py +0 -0
  22. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/auth/auth_manager.py +0 -0
  23. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/auth/models.py +0 -0
  24. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/configure/__init__.py +0 -0
  25. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/configure/configure_command.py +0 -0
  26. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/configure/consts.py +0 -0
  27. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/configure/messages.py +0 -0
  28. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/configure/prompts.py +0 -0
  29. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/ignore/__init__.py +0 -0
  30. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  31. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/mcp/__init__.py +0 -0
  32. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  33. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/__init__.py +0 -0
  34. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/report_command.py +0 -0
  35. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  36. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/common.py +0 -0
  37. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  38. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  39. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  40. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  41. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  42. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  43. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/__init__.py +0 -0
  44. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  45. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/code_scanner.py +0 -0
  46. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  47. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  48. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  49. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/path/__init__.py +0 -0
  50. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/path/path_command.py +0 -0
  51. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  52. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  53. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  54. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  55. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  56. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  57. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  58. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  59. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  60. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  61. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/scan_command.py +0 -0
  62. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  63. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/scan/scan_result.py +0 -0
  64. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/status/__init__.py +0 -0
  65. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/status/get_cli_status.py +0 -0
  66. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/status/models.py +0 -0
  67. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/status/status_command.py +0 -0
  68. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/apps/status/version_command.py +0 -0
  69. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/cli_types.py +0 -0
  70. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/config.py +0 -0
  71. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/console.py +0 -0
  72. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/__init__.py +0 -0
  73. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  74. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  75. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  76. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/handle_errors.py +0 -0
  77. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  78. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  79. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/__init__.py +0 -0
  80. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/file_excluder.py +0 -0
  81. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/iac/__init__.py +0 -0
  82. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  83. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/models/__init__.py +0 -0
  84. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  85. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/path_documents.py +0 -0
  86. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/repository_documents.py +0 -0
  87. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/__init__.py +0 -0
  88. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  89. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  90. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  91. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  92. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  93. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  94. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  95. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  96. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  97. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  98. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  99. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  100. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  101. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  102. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
  103. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/walk_ignore.py +0 -0
  104. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/files_collector/zip_documents.py +0 -0
  105. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/logger.py +0 -0
  106. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/main.py +0 -0
  107. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/models.py +0 -0
  108. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/__init__.py +0 -0
  109. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/console_printer.py +0 -0
  110. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/json_printer.py +0 -0
  111. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/printer_base.py +0 -0
  112. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/tables/__init__.py +0 -0
  113. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  114. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/tables/table.py +0 -0
  115. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/tables/table_models.py +0 -0
  116. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/tables/table_printer.py +0 -0
  117. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  118. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/text_printer.py +0 -0
  119. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/__init__.py +0 -0
  120. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  121. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/detection_data.py +0 -0
  122. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  123. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  124. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  125. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  126. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/user_settings/__init__.py +0 -0
  127. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/user_settings/base_file_manager.py +0 -0
  128. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/user_settings/config_file_manager.py +0 -0
  129. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/user_settings/configuration_manager.py +0 -0
  130. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/user_settings/credentials_manager.py +0 -0
  131. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/user_settings/jwt_creator.py +0 -0
  132. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/__init__.py +0 -0
  133. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/enum_utils.py +0 -0
  134. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/get_api_client.py +0 -0
  135. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/git_proxy.py +0 -0
  136. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/ignore_utils.py +0 -0
  137. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/jwt_utils.py +0 -0
  138. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/path_utils.py +0 -0
  139. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/progress_bar.py +0 -0
  140. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/scan_batch.py +0 -0
  141. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/scan_utils.py +0 -0
  142. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/sentry.py +0 -0
  143. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/shell_executor.py +0 -0
  144. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/string_utils.py +0 -0
  145. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/task_timer.py +0 -0
  146. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/version_checker.py +0 -0
  147. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cli/utils/yaml_utils.py +0 -0
  148. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/config.py +0 -0
  149. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/__init__.py +0 -0
  150. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/auth_client.py +0 -0
  151. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/client_creator.py +0 -0
  152. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/config.py +0 -0
  153. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/config_dev.py +0 -0
  154. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/cycode_client.py +0 -0
  155. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/cycode_client_base.py +0 -0
  156. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  157. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/cycode_token_based_client.py +0 -0
  158. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/headers.py +0 -0
  159. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/logger.py +0 -0
  160. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/models.py +0 -0
  161. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/report_client.py +0 -0
  162. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/scan_client.py +0 -0
  163. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/cyclient/scan_config_base.py +0 -0
  164. {cycode-3.4.1.dev4 → cycode-3.4.1.dev6}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cycode
3
- Version: 3.4.1.dev4
3
+ Version: 3.4.1.dev6
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.4.1.dev6' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -25,6 +25,7 @@ from cycode.cli.files_collector.commit_range_documents import (
25
25
  get_diff_file_content,
26
26
  get_diff_file_path,
27
27
  get_pre_commit_modified_documents,
28
+ get_safe_head_reference_for_diff,
28
29
  parse_commit_range_sast,
29
30
  parse_commit_range_sca,
30
31
  )
@@ -271,7 +272,9 @@ def _scan_sca_pre_commit(ctx: typer.Context, repo_path: str) -> None:
271
272
 
272
273
  def _scan_secret_pre_commit(ctx: typer.Context, repo_path: str) -> None:
273
274
  progress_bar = ctx.obj['progress_bar']
274
- diff_index = git_proxy.get_repo(repo_path).index.diff(consts.GIT_HEAD_COMMIT_REV, create_patch=True, R=True)
275
+ repo = git_proxy.get_repo(repo_path)
276
+ head_reference = get_safe_head_reference_for_diff(repo)
277
+ diff_index = repo.index.diff(head_reference, create_patch=True, R=True)
275
278
 
276
279
  progress_bar.set_section_length(ScanProgressBarSection.PREPARE_LOCAL_FILES, len(diff_index))
277
280
 
@@ -261,6 +261,7 @@ SCAN_STATUS_ERROR = 'Error'
261
261
  # git consts
262
262
  COMMIT_DIFF_DELETED_FILE_CHANGE_TYPE = 'D'
263
263
  GIT_HEAD_COMMIT_REV = 'HEAD'
264
+ GIT_EMPTY_TREE_OBJECT = '4b825dc642cb6eb9a060e54bf8d69288fbee4904'
264
265
  EMPTY_COMMIT_SHA = '0000000000000000000000000000000000000000'
265
266
  GIT_PUSH_OPTION_COUNT_ENV_VAR_NAME = 'GIT_PUSH_OPTION_COUNT'
266
267
  GIT_PUSH_OPTION_ENV_VAR_PREFIX = 'GIT_PUSH_OPTION_'
@@ -22,6 +22,31 @@ if TYPE_CHECKING:
22
22
  logger = get_logger('Commit Range Collector')
23
23
 
24
24
 
25
+ def get_safe_head_reference_for_diff(repo: 'Repo') -> str:
26
+ """Get a safe reference to use for diffing against the current HEAD.
27
+ In repositories with no commits, HEAD doesn't exist, so we return the empty tree hash.
28
+
29
+ Args:
30
+ repo: Git repository object
31
+
32
+ Returns:
33
+ Either "HEAD" string if commits exist, or empty tree hash if no commits exist
34
+ """
35
+ try:
36
+ repo.rev_parse(consts.GIT_HEAD_COMMIT_REV)
37
+ return consts.GIT_HEAD_COMMIT_REV
38
+ except Exception as e: # actually gitdb.exc.BadObject; no import because of lazy loading
39
+ logger.debug(
40
+ 'Repository has no commits, using empty tree hash for diffs, %s',
41
+ {'repo_path': repo.working_tree_dir},
42
+ exc_info=e,
43
+ )
44
+
45
+ # Repository has no commits, use the universal empty tree hash
46
+ # This is the standard Git approach for initial commits
47
+ return consts.GIT_EMPTY_TREE_OBJECT
48
+
49
+
25
50
  def _does_reach_to_max_commits_to_scan_limit(commit_ids: list[str], max_commits_count: Optional[int]) -> bool:
26
51
  if max_commits_count is None:
27
52
  return False
@@ -213,7 +238,8 @@ def get_pre_commit_modified_documents(
213
238
  diff_documents = []
214
239
 
215
240
  repo = git_proxy.get_repo(repo_path)
216
- diff_index = repo.index.diff(consts.GIT_HEAD_COMMIT_REV, create_patch=True, R=True)
241
+ head_reference = get_safe_head_reference_for_diff(repo)
242
+ diff_index = repo.index.diff(head_reference, create_patch=True, R=True)
217
243
  progress_bar.set_section_length(progress_bar_section, len(diff_index))
218
244
  for diff in diff_index:
219
245
  progress_bar.update(progress_bar_section)
@@ -228,9 +254,11 @@ def get_pre_commit_modified_documents(
228
254
  )
229
255
  )
230
256
 
231
- file_content = _get_file_content_from_commit_diff(repo, consts.GIT_HEAD_COMMIT_REV, diff)
232
- if file_content:
233
- git_head_documents.append(Document(file_path, file_content))
257
+ # Only get file content from HEAD if HEAD exists (not the empty tree hash)
258
+ if head_reference == consts.GIT_HEAD_COMMIT_REV:
259
+ file_content = _get_file_content_from_commit_diff(repo, head_reference, diff)
260
+ if file_content:
261
+ git_head_documents.append(Document(file_path, file_content))
234
262
 
235
263
  if os.path.exists(file_path):
236
264
  file_content = get_file_content(file_path)
@@ -274,13 +302,13 @@ def parse_commit_range_sast(commit_range: str, path: str) -> tuple[Optional[str]
274
302
  else:
275
303
  # Git commands like 'git diff <commit>' compare against HEAD.
276
304
  from_spec = commit_range
277
- to_spec = 'HEAD'
305
+ to_spec = consts.GIT_HEAD_COMMIT_REV
278
306
 
279
307
  # If a spec is empty (e.g., from '..master'), default it to 'HEAD'
280
308
  if not from_spec:
281
- from_spec = 'HEAD'
309
+ from_spec = consts.GIT_HEAD_COMMIT_REV
282
310
  if not to_spec:
283
- to_spec = 'HEAD'
311
+ to_spec = consts.GIT_HEAD_COMMIT_REV
284
312
 
285
313
  try:
286
314
  # Use rev_parse to resolve each specifier to its full commit SHA
@@ -91,7 +91,7 @@ class RichPrinter(TextPrinter):
91
91
  details_table.add_row('Version', detection_details.get('package_version'))
92
92
 
93
93
  if detection.has_alert:
94
- patched_version = detection_details['alert'].get('patched_version')
94
+ patched_version = detection_details['alert'].get('first_patched_version')
95
95
  details_table.add_row('First patched version', patched_version or 'Not fixed')
96
96
 
97
97
  dependency_path = detection_details.get('dependency_paths')
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cycode"
3
- version = "3.4.1.dev4" # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
3
+ version = "3.4.1.dev6" # 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.4.1.dev4' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
File without changes
File without changes