cycode 3.7.1.dev1__tar.gz → 3.7.2.dev1__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 (172) hide show
  1. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/PKG-INFO +1 -1
  2. cycode-3.7.2.dev1/cycode/__init__.py +1 -0
  3. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +3 -1
  4. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/commit_range_documents.py +27 -7
  5. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/pyproject.toml +1 -1
  6. cycode-3.7.1.dev1/cycode/__init__.py +0 -1
  7. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/LICENCE +0 -0
  8. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/README.md +0 -0
  9. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/__main__.py +0 -0
  10. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/__init__.py +0 -0
  11. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/app.py +0 -0
  12. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/__init__.py +0 -0
  13. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  14. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  15. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  16. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  17. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/auth/__init__.py +0 -0
  18. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/auth/auth_command.py +0 -0
  19. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/auth/auth_common.py +0 -0
  20. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/auth/auth_manager.py +0 -0
  21. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/auth/models.py +0 -0
  22. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/configure/__init__.py +0 -0
  23. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/configure/configure_command.py +0 -0
  24. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/configure/consts.py +0 -0
  25. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/configure/messages.py +0 -0
  26. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/configure/prompts.py +0 -0
  27. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/ignore/__init__.py +0 -0
  28. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  29. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/mcp/__init__.py +0 -0
  30. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  31. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/__init__.py +0 -0
  32. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/report_command.py +0 -0
  33. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  34. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/common.py +0 -0
  35. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  36. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  37. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  38. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  39. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  40. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  41. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report_import/__init__.py +0 -0
  42. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report_import/report_import_command.py +0 -0
  43. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
  44. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
  45. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/__init__.py +0 -0
  46. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  47. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/code_scanner.py +0 -0
  48. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  49. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  50. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
  51. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  52. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/path/__init__.py +0 -0
  53. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/path/path_command.py +0 -0
  54. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  55. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  56. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
  57. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
  58. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  59. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  60. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  61. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  62. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  63. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  64. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  65. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/scan_command.py +0 -0
  66. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  67. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/scan/scan_result.py +0 -0
  68. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/status/__init__.py +0 -0
  69. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/status/get_cli_status.py +0 -0
  70. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/status/models.py +0 -0
  71. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/status/status_command.py +0 -0
  72. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/apps/status/version_command.py +0 -0
  73. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/cli_types.py +0 -0
  74. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/config.py +0 -0
  75. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/console.py +0 -0
  76. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/consts.py +0 -0
  77. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/__init__.py +0 -0
  78. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  79. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  80. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  81. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/handle_errors.py +0 -0
  82. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  83. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  84. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/__init__.py +0 -0
  85. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
  86. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/file_excluder.py +0 -0
  87. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/iac/__init__.py +0 -0
  88. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  89. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/models/__init__.py +0 -0
  90. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  91. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/path_documents.py +0 -0
  92. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/repository_documents.py +0 -0
  93. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/__init__.py +0 -0
  94. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  95. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  96. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  97. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  98. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  99. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  100. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  101. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  102. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  103. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  104. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  105. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  106. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  107. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  108. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
  109. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/walk_ignore.py +0 -0
  110. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/files_collector/zip_documents.py +0 -0
  111. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/logger.py +0 -0
  112. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/main.py +0 -0
  113. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/models.py +0 -0
  114. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/__init__.py +0 -0
  115. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/console_printer.py +0 -0
  116. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/json_printer.py +0 -0
  117. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/printer_base.py +0 -0
  118. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/rich_printer.py +0 -0
  119. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/tables/__init__.py +0 -0
  120. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  121. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/tables/table.py +0 -0
  122. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/tables/table_models.py +0 -0
  123. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/tables/table_printer.py +0 -0
  124. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  125. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/text_printer.py +0 -0
  126. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/__init__.py +0 -0
  127. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  128. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/detection_data.py +0 -0
  129. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  130. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  131. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  132. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  133. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/user_settings/__init__.py +0 -0
  134. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/user_settings/base_file_manager.py +0 -0
  135. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/user_settings/config_file_manager.py +0 -0
  136. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/user_settings/configuration_manager.py +0 -0
  137. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/user_settings/credentials_manager.py +0 -0
  138. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/user_settings/jwt_creator.py +0 -0
  139. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/__init__.py +0 -0
  140. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/enum_utils.py +0 -0
  141. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/get_api_client.py +0 -0
  142. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/git_proxy.py +0 -0
  143. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/ignore_utils.py +0 -0
  144. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/jwt_utils.py +0 -0
  145. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/path_utils.py +0 -0
  146. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/progress_bar.py +0 -0
  147. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/scan_batch.py +0 -0
  148. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/scan_utils.py +0 -0
  149. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/sentry.py +0 -0
  150. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/shell_executor.py +0 -0
  151. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/string_utils.py +0 -0
  152. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/task_timer.py +0 -0
  153. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/version_checker.py +0 -0
  154. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cli/utils/yaml_utils.py +0 -0
  155. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/config.py +0 -0
  156. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/__init__.py +0 -0
  157. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/auth_client.py +0 -0
  158. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/client_creator.py +0 -0
  159. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/config.py +0 -0
  160. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/config_dev.py +0 -0
  161. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/cycode_client.py +0 -0
  162. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/cycode_client_base.py +0 -0
  163. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  164. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/cycode_token_based_client.py +0 -0
  165. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/headers.py +0 -0
  166. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/import_sbom_client.py +0 -0
  167. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/logger.py +0 -0
  168. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/models.py +0 -0
  169. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/report_client.py +0 -0
  170. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/scan_client.py +0 -0
  171. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/cyclient/scan_config_base.py +0 -0
  172. {cycode-3.7.1.dev1 → cycode-3.7.2.dev1}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cycode
3
- Version: 3.7.1.dev1
3
+ Version: 3.7.2.dev1
4
4
  Summary: Boost security in your dev lifecycle via SAST, SCA, Secrets & IaC scanning.
5
5
  License-Expression: MIT
6
6
  License-File: LICENCE
@@ -0,0 +1 @@
1
+ __version__ = '3.7.2.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -47,7 +47,9 @@ def pre_receive_command(
47
47
  timeout = configuration_manager.get_pre_receive_command_timeout(command_scan_type)
48
48
  with TimeoutAfter(timeout):
49
49
  branch_update_details = parse_pre_receive_input()
50
- commit_range = calculate_pre_receive_commit_range(branch_update_details)
50
+ commit_range = calculate_pre_receive_commit_range(
51
+ repo_path=os.getcwd(), branch_update_details=branch_update_details
52
+ )
51
53
  if not commit_range:
52
54
  logger.info(
53
55
  'No new commits found for pushed branch, %s',
@@ -104,19 +104,27 @@ def collect_commit_range_diff_documents(
104
104
  return commit_documents_to_scan
105
105
 
106
106
 
107
- def calculate_pre_receive_commit_range(branch_update_details: str) -> Optional[str]:
107
+ def calculate_pre_receive_commit_range(repo_path: str, branch_update_details: str) -> Optional[str]:
108
108
  end_commit = _get_end_commit_from_branch_update_details(branch_update_details)
109
109
 
110
110
  # branch is deleted, no need to perform scan
111
111
  if end_commit == consts.EMPTY_COMMIT_SHA:
112
112
  return None
113
113
 
114
- start_commit = _get_oldest_unupdated_commit_for_branch(end_commit)
114
+ repo = git_proxy.get_repo(repo_path)
115
+ start_commit = _get_oldest_unupdated_commit_for_branch(repo, end_commit)
115
116
 
116
117
  # no new commit to update found
117
118
  if not start_commit:
118
119
  return None
119
120
 
121
+ # If the oldest not-yet-updated commit has no parent (root commit or orphaned history),
122
+ # using '~1' will fail. In that case, scan from the end commit, which effectively
123
+ # includes the entire history reachable from it (which is exactly what we need here).
124
+
125
+ if not bool(repo.commit(start_commit).parents):
126
+ return f'{end_commit}'
127
+
120
128
  return f'{start_commit}~1...{end_commit}'
121
129
 
122
130
 
@@ -126,10 +134,10 @@ def _get_end_commit_from_branch_update_details(update_details: str) -> str:
126
134
  return end_commit
127
135
 
128
136
 
129
- def _get_oldest_unupdated_commit_for_branch(commit: str) -> Optional[str]:
137
+ def _get_oldest_unupdated_commit_for_branch(repo: 'Repo', commit: str) -> Optional[str]:
130
138
  # get a list of commits by chronological order that are not in the remote repository yet
131
139
  # more info about rev-list command: https://git-scm.com/docs/git-rev-list
132
- repo = git_proxy.get_repo(os.getcwd())
140
+
133
141
  not_updated_commits = repo.git.rev_list(commit, '--topo-order', '--reverse', '--not', '--all')
134
142
 
135
143
  commits = not_updated_commits.splitlines()
@@ -199,8 +207,7 @@ def parse_pre_receive_input() -> str:
199
207
 
200
208
  :return: First branch update details (input's first line)
201
209
  """
202
- # FIXME(MarshalX): this blocks main thread forever if called outside of pre-receive hook
203
- pre_receive_input = sys.stdin.read().strip()
210
+ pre_receive_input = _read_hook_input_from_stdin()
204
211
  if not pre_receive_input:
205
212
  raise ValueError(
206
213
  'Pre receive input was not found. Make sure that you are using this command only in pre-receive hook'
@@ -222,7 +229,7 @@ def parse_pre_push_input() -> str:
222
229
 
223
230
  :return: First, push update details (input's first line)
224
231
  """ # noqa: E501
225
- pre_push_input = sys.stdin.read().strip()
232
+ pre_push_input = _read_hook_input_from_stdin()
226
233
  if not pre_push_input:
227
234
  raise ValueError(
228
235
  'Pre push input was not found. Make sure that you are using this command only in pre-push hook'
@@ -232,6 +239,19 @@ def parse_pre_push_input() -> str:
232
239
  return pre_push_input.splitlines()[0]
233
240
 
234
241
 
242
+ def _read_hook_input_from_stdin() -> str:
243
+ """Read input from stdin when called from a hook.
244
+
245
+ If called manually from the command line, return an empty string so it doesn't block the main thread.
246
+
247
+ Returns:
248
+ Input from stdin
249
+ """
250
+ if sys.stdin.isatty():
251
+ return ''
252
+ return sys.stdin.read().strip()
253
+
254
+
235
255
  def _get_default_branches_for_merge_base(repo: 'Repo') -> list[str]:
236
256
  """Get a list of default branches to try for merge base calculation.
237
257
 
@@ -21,7 +21,7 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.14",
22
22
  ]
23
23
  dynamic = ["dependencies"]
24
- version = "3.7.1.dev1"
24
+ version = "3.7.2.dev1"
25
25
 
26
26
  [project.scripts]
27
27
  cycode = "cycode.cli.app:app"
@@ -1 +0,0 @@
1
- __version__ = '3.7.1.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
File without changes
File without changes