cycode 3.20.1.dev1__tar.gz → 3.20.1.dev3__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 (218) hide show
  1. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/PKG-INFO +2 -2
  2. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/__init__.py +1 -1
  3. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/yaml_utils.py +32 -5
  4. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/pyproject.toml +2 -2
  5. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/LICENCE +0 -0
  6. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/README.md +0 -0
  7. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/__main__.py +0 -0
  8. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/__init__.py +0 -0
  9. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/app.py +0 -0
  10. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/__init__.py +0 -0
  11. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/activation_manager.py +0 -0
  12. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/__init__.py +0 -0
  13. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/command_utils.py +0 -0
  14. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/consts.py +0 -0
  15. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/hooks_manager.py +0 -0
  16. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/__init__.py +0 -0
  17. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.py +0 -0
  18. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/base.py +0 -0
  19. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/claude_code.py +0 -0
  20. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/codex.py +0 -0
  21. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/copilot.py +0 -0
  22. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/ides/cursor.py +0 -0
  23. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/install_command.py +0 -0
  24. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/__init__.py +0 -0
  25. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/consts.py +0 -0
  26. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/handlers.py +0 -0
  27. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/payload.py +0 -0
  28. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/policy.py +0 -0
  29. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/scan_command.py +0 -0
  30. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/types.py +0 -0
  31. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/scan/utils.py +0 -0
  32. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/session_start_command.py +0 -0
  33. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/status_command.py +0 -0
  34. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_guardrails/uninstall_command.py +0 -0
  35. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  36. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  37. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  38. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  39. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/api/__init__.py +0 -0
  40. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/api/api_command.py +0 -0
  41. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/api/openapi_spec.py +0 -0
  42. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/auth/__init__.py +0 -0
  43. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/auth/auth_command.py +0 -0
  44. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/auth/auth_common.py +0 -0
  45. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/auth/auth_manager.py +0 -0
  46. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/auth/models.py +0 -0
  47. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/configure/__init__.py +0 -0
  48. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/configure/configure_command.py +0 -0
  49. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/configure/consts.py +0 -0
  50. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/configure/messages.py +0 -0
  51. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/configure/prompts.py +0 -0
  52. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ignore/__init__.py +0 -0
  53. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  54. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/mcp/__init__.py +0 -0
  55. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  56. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/__init__.py +0 -0
  57. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/report_command.py +0 -0
  58. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  59. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/common.py +0 -0
  60. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  61. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  62. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  63. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  64. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  65. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  66. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report_import/__init__.py +0 -0
  67. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report_import/report_import_command.py +0 -0
  68. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
  69. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
  70. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/sca_options.py +0 -0
  71. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/__init__.py +0 -0
  72. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  73. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/code_scanner.py +0 -0
  74. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  75. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  76. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
  77. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  78. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/path/__init__.py +0 -0
  79. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/path/path_command.py +0 -0
  80. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  81. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  82. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
  83. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
  84. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  85. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  86. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  87. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  88. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  89. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  90. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  91. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  92. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/scan_command.py +0 -0
  93. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  94. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/scan/scan_result.py +0 -0
  95. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/status/__init__.py +0 -0
  96. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/status/get_cli_status.py +0 -0
  97. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/status/models.py +0 -0
  98. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/status/status_command.py +0 -0
  99. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/apps/status/version_command.py +0 -0
  100. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/cli_types.py +0 -0
  101. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/config.py +0 -0
  102. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/console.py +0 -0
  103. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/consts.py +0 -0
  104. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/__init__.py +0 -0
  105. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  106. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  107. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  108. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/handle_errors.py +0 -0
  109. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  110. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  111. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/__init__.py +0 -0
  112. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/commit_range_documents.py +0 -0
  113. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
  114. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/file_excluder.py +0 -0
  115. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/iac/__init__.py +0 -0
  116. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  117. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/models/__init__.py +0 -0
  118. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  119. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/path_documents.py +0 -0
  120. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/repository_documents.py +0 -0
  121. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/__init__.py +0 -0
  122. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  123. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  124. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  125. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  126. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  127. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  128. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  129. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/npm/restore_bun_dependencies.py +0 -0
  130. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py +0 -0
  131. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  132. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py +0 -0
  133. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py +0 -0
  134. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  135. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  136. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/php/__init__.py +0 -0
  137. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/php/restore_composer_dependencies.py +0 -0
  138. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/python/__init__.py +0 -0
  139. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/python/restore_pip_dependencies.py +0 -0
  140. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/python/restore_pipenv_dependencies.py +0 -0
  141. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/python/restore_poetry_dependencies.py +0 -0
  142. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/python/restore_uv_dependencies.py +0 -0
  143. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  144. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  145. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  146. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  147. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
  148. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/walk_ignore.py +0 -0
  149. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/files_collector/zip_documents.py +0 -0
  150. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/logger.py +0 -0
  151. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/main.py +0 -0
  152. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/models.py +0 -0
  153. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/__init__.py +0 -0
  154. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/console_printer.py +0 -0
  155. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/json_printer.py +0 -0
  156. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/printer_base.py +0 -0
  157. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/rich_printer.py +0 -0
  158. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/tables/__init__.py +0 -0
  159. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  160. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/tables/table.py +0 -0
  161. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/tables/table_models.py +0 -0
  162. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/tables/table_printer.py +0 -0
  163. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  164. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/text_printer.py +0 -0
  165. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/__init__.py +0 -0
  166. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  167. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/detection_data.py +0 -0
  168. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  169. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  170. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  171. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  172. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/user_settings/__init__.py +0 -0
  173. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/user_settings/base_file_manager.py +0 -0
  174. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/user_settings/config_file_manager.py +0 -0
  175. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/user_settings/configuration_manager.py +0 -0
  176. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/user_settings/credentials_manager.py +0 -0
  177. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/user_settings/jwt_creator.py +0 -0
  178. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/__init__.py +0 -0
  179. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/binary_utils.py +0 -0
  180. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/enum_utils.py +0 -0
  181. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/get_api_client.py +0 -0
  182. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/git_proxy.py +0 -0
  183. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/host_info.py +0 -0
  184. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/ignore_utils.py +0 -0
  185. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/jwt_utils.py +0 -0
  186. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/path_utils.py +0 -0
  187. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/progress_bar.py +0 -0
  188. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/scan_batch.py +0 -0
  189. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/scan_utils.py +0 -0
  190. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/shell_executor.py +0 -0
  191. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/string_utils.py +0 -0
  192. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/task_timer.py +0 -0
  193. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/trust_store.py +0 -0
  194. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/url_utils.py +0 -0
  195. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cli/utils/version_checker.py +0 -0
  196. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/config.py +0 -0
  197. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/__init__.py +0 -0
  198. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/ai_security_manager_client.py +0 -0
  199. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/ai_security_manager_service_config.py +0 -0
  200. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/auth_client.py +0 -0
  201. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/base_token_auth_client.py +0 -0
  202. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/cli_activation_client.py +0 -0
  203. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/client_creator.py +0 -0
  204. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/config.py +0 -0
  205. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/config_dev.py +0 -0
  206. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/cycode_client.py +0 -0
  207. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/cycode_client_base.py +0 -0
  208. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  209. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/cycode_oidc_based_client.py +0 -0
  210. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/cycode_token_based_client.py +0 -0
  211. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/headers.py +0 -0
  212. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/import_sbom_client.py +0 -0
  213. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/logger.py +0 -0
  214. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/models.py +0 -0
  215. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/report_client.py +0 -0
  216. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/scan_client.py +0 -0
  217. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/cyclient/scan_config_base.py +0 -0
  218. {cycode-3.20.1.dev1 → cycode-3.20.1.dev3}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cycode
3
- Version: 3.20.1.dev1
3
+ Version: 3.20.1.dev3
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
@@ -24,7 +24,7 @@ Requires-Dist: anyio (>=4.0.0,<4.13.0)
24
24
  Requires-Dist: arrow (>=1.0.0,<1.5.0)
25
25
  Requires-Dist: click (>=8.1.0,<8.2.0)
26
26
  Requires-Dist: colorama (>=0.4.3,<0.5.0)
27
- Requires-Dist: gitpython (>=3.1.51,<3.2.0)
27
+ Requires-Dist: gitpython (>=3.1.58,<3.2.0)
28
28
  Requires-Dist: marshmallow (>=4.0.1,<4.1.0)
29
29
  Requires-Dist: mcp (>=1.28.1,<2.0.0) ; python_version >= "3.10"
30
30
  Requires-Dist: patch-ng (==1.19.1)
@@ -5,4 +5,4 @@ import time as _time
5
5
  # end-to-end scan duration from the moment the user actually triggered it.
6
6
  _BOOT_WALL: float = _time.time()
7
7
 
8
- __version__ = '3.20.1.dev1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
8
+ __version__ = '3.20.1.dev3' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import tempfile
2
3
  from collections.abc import Hashable
3
4
  from typing import Any, TextIO
4
5
 
@@ -34,22 +35,48 @@ def _yaml_object_safe_load(file: TextIO) -> dict[Hashable, Any]:
34
35
  return loaded_file
35
36
 
36
37
 
38
+ def _quarantine_corrupt_file(filename: str) -> None:
39
+ # Renamed rather than deleted: the file may hold the only copy of the user's credentials,
40
+ # and keeping it around leaves something to look at in the next bug report.
41
+ try:
42
+ os.replace(filename, f'{filename}.corrupt')
43
+ except OSError as e:
44
+ logger.warning('Failed to quarantine corrupt file, %s', {'filename': filename}, exc_info=e)
45
+
46
+
37
47
  def read_yaml_file(filename: str) -> dict[Hashable, Any]:
38
48
  if not os.access(filename, os.R_OK) or not os.path.exists(filename):
39
49
  logger.debug('Config file is not accessible or does not exist: %s', {'filename': filename})
40
50
  return {}
41
51
 
42
- with open(filename, encoding='UTF-8') as file:
43
- return _yaml_object_safe_load(file)
52
+ try:
53
+ with open(filename, encoding='UTF-8') as file:
54
+ return _yaml_object_safe_load(file)
55
+ except yaml.YAMLError as e:
56
+ logger.warning('Config file is corrupt and will be moved aside, %s', {'filename': filename}, exc_info=e)
57
+ _quarantine_corrupt_file(filename)
58
+ return {}
44
59
 
45
60
 
46
61
  def write_yaml_file(filename: str, content: dict[Hashable, Any]) -> None:
47
- if not os.access(filename, os.W_OK) and os.path.exists(filename):
62
+ directory = os.path.dirname(filename)
63
+ if not os.access(directory, os.W_OK) or (os.path.exists(filename) and not os.access(filename, os.W_OK)):
48
64
  logger.warning('No write permission for file. Cannot save config, %s', {'filename': filename})
49
65
  return
50
66
 
51
- with open(filename, 'w', encoding='UTF-8') as file:
52
- yaml.safe_dump(content, file)
67
+ # Atomic write to avoid race conditions between concurrent CLI processes
68
+ file_descriptor, temp_filename = tempfile.mkstemp(dir=directory, prefix=f'.{os.path.basename(filename)}.')
69
+ try:
70
+ with os.fdopen(file_descriptor, 'w', encoding='UTF-8') as file:
71
+ yaml.safe_dump(content, file)
72
+ file.flush()
73
+ os.fsync(file.fileno())
74
+
75
+ os.replace(temp_filename, filename)
76
+ except Exception:
77
+ if os.path.exists(temp_filename):
78
+ os.remove(temp_filename)
79
+ raise
53
80
 
54
81
 
55
82
  def update_yaml_file(filename: str, content: dict[Hashable, Any]) -> None:
@@ -21,7 +21,7 @@ classifiers = [
21
21
  "Programming Language :: Python :: 3.14",
22
22
  ]
23
23
  dynamic = ["dependencies"]
24
- version = "3.20.1.dev1"
24
+ version = "3.20.1.dev3"
25
25
 
26
26
  [project.scripts]
27
27
  cycode = "cycode.cli.app:app"
@@ -39,7 +39,7 @@ pyyaml = ">=6.0,<7.0"
39
39
  # capped while we support Python 3.9
40
40
  marshmallow = ">=4.0.1,<4.1.0"
41
41
  # floor required by get_staged_diff_index()
42
- gitpython = ">=3.1.51,<3.2.0"
42
+ gitpython = ">=3.1.58,<3.2.0"
43
43
  arrow = ">=1.0.0,<1.5.0"
44
44
  requests = ">=2.32.4,<3.0"
45
45
  urllib3 = ">=2.4.0,<3.0.0"
File without changes
File without changes