cycode 3.5.0__tar.gz → 3.5.1__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 (166) hide show
  1. {cycode-3.5.0 → cycode-3.5.1}/PKG-INFO +2 -2
  2. {cycode-3.5.0 → cycode-3.5.1}/README.md +1 -1
  3. cycode-3.5.1/cycode/__init__.py +1 -0
  4. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/walk_ignore.py +18 -3
  5. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/ignore_utils.py +25 -6
  6. {cycode-3.5.0 → cycode-3.5.1}/pyproject.toml +1 -1
  7. cycode-3.5.0/cycode/__init__.py +0 -1
  8. {cycode-3.5.0 → cycode-3.5.1}/LICENCE +0 -0
  9. {cycode-3.5.0 → cycode-3.5.1}/cycode/__main__.py +0 -0
  10. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/__init__.py +0 -0
  11. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/app.py +0 -0
  12. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/__init__.py +0 -0
  13. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
  14. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
  15. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
  16. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
  17. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/auth/__init__.py +0 -0
  18. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/auth/auth_command.py +0 -0
  19. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/auth/auth_common.py +0 -0
  20. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/auth/auth_manager.py +0 -0
  21. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/auth/models.py +0 -0
  22. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/configure/__init__.py +0 -0
  23. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/configure/configure_command.py +0 -0
  24. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/configure/consts.py +0 -0
  25. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/configure/messages.py +0 -0
  26. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/configure/prompts.py +0 -0
  27. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/ignore/__init__.py +0 -0
  28. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/ignore/ignore_command.py +0 -0
  29. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/mcp/__init__.py +0 -0
  30. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/mcp/mcp_command.py +0 -0
  31. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/__init__.py +0 -0
  32. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/report_command.py +0 -0
  33. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/__init__.py +0 -0
  34. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/common.py +0 -0
  35. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
  36. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
  37. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
  38. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
  39. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
  40. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
  41. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/__init__.py +0 -0
  42. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/aggregation_report.py +0 -0
  43. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/code_scanner.py +0 -0
  44. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
  45. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
  46. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
  47. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/detection_excluder.py +0 -0
  48. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/path/__init__.py +0 -0
  49. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/path/path_command.py +0 -0
  50. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
  51. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
  52. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
  53. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
  54. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
  55. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
  56. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
  57. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/repository/__init__.py +0 -0
  58. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
  59. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
  60. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
  61. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
  62. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/scan_command.py +0 -0
  63. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/scan_parameters.py +0 -0
  64. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/scan/scan_result.py +0 -0
  65. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/status/__init__.py +0 -0
  66. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/status/get_cli_status.py +0 -0
  67. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/status/models.py +0 -0
  68. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/status/status_command.py +0 -0
  69. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/apps/status/version_command.py +0 -0
  70. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/cli_types.py +0 -0
  71. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/config.py +0 -0
  72. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/console.py +0 -0
  73. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/consts.py +0 -0
  74. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/__init__.py +0 -0
  75. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/custom_exceptions.py +0 -0
  76. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
  77. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
  78. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/handle_errors.py +0 -0
  79. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
  80. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
  81. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/__init__.py +0 -0
  82. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/commit_range_documents.py +0 -0
  83. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/file_excluder.py +0 -0
  84. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/iac/__init__.py +0 -0
  85. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
  86. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/models/__init__.py +0 -0
  87. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
  88. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/path_documents.py +0 -0
  89. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/repository_documents.py +0 -0
  90. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/__init__.py +0 -0
  91. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
  92. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
  93. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
  94. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
  95. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
  96. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
  97. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
  98. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
  99. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
  100. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
  101. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
  102. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
  103. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
  104. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
  105. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
  106. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/files_collector/zip_documents.py +0 -0
  107. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/logger.py +0 -0
  108. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/main.py +0 -0
  109. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/models.py +0 -0
  110. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/__init__.py +0 -0
  111. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/console_printer.py +0 -0
  112. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/json_printer.py +0 -0
  113. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/printer_base.py +0 -0
  114. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/rich_printer.py +0 -0
  115. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/tables/__init__.py +0 -0
  116. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
  117. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/tables/table.py +0 -0
  118. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/tables/table_models.py +0 -0
  119. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/tables/table_printer.py +0 -0
  120. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/tables/table_printer_base.py +0 -0
  121. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/text_printer.py +0 -0
  122. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/__init__.py +0 -0
  123. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
  124. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/detection_data.py +0 -0
  125. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
  126. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
  127. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
  128. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/printers/utils/rich_helpers.py +0 -0
  129. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/user_settings/__init__.py +0 -0
  130. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/user_settings/base_file_manager.py +0 -0
  131. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/user_settings/config_file_manager.py +0 -0
  132. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/user_settings/configuration_manager.py +0 -0
  133. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/user_settings/credentials_manager.py +0 -0
  134. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/user_settings/jwt_creator.py +0 -0
  135. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/__init__.py +0 -0
  136. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/enum_utils.py +0 -0
  137. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/get_api_client.py +0 -0
  138. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/git_proxy.py +0 -0
  139. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/jwt_utils.py +0 -0
  140. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/path_utils.py +0 -0
  141. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/progress_bar.py +0 -0
  142. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/scan_batch.py +0 -0
  143. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/scan_utils.py +0 -0
  144. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/sentry.py +0 -0
  145. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/shell_executor.py +0 -0
  146. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/string_utils.py +0 -0
  147. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/task_timer.py +0 -0
  148. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/version_checker.py +0 -0
  149. {cycode-3.5.0 → cycode-3.5.1}/cycode/cli/utils/yaml_utils.py +0 -0
  150. {cycode-3.5.0 → cycode-3.5.1}/cycode/config.py +0 -0
  151. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/__init__.py +0 -0
  152. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/auth_client.py +0 -0
  153. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/client_creator.py +0 -0
  154. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/config.py +0 -0
  155. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/config_dev.py +0 -0
  156. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/cycode_client.py +0 -0
  157. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/cycode_client_base.py +0 -0
  158. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/cycode_dev_based_client.py +0 -0
  159. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/cycode_token_based_client.py +0 -0
  160. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/headers.py +0 -0
  161. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/logger.py +0 -0
  162. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/models.py +0 -0
  163. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/report_client.py +0 -0
  164. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/scan_client.py +0 -0
  165. {cycode-3.5.0 → cycode-3.5.1}/cycode/cyclient/scan_config_base.py +0 -0
  166. {cycode-3.5.0 → cycode-3.5.1}/cycode/logger.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cycode
3
- Version: 3.5.0
3
+ Version: 3.5.1
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
@@ -388,7 +388,7 @@ The Model Context Protocol (MCP) command allows you to start an MCP server that
388
388
  > [!TIP]
389
389
  > For the best experience, install Cycode CLI globally on your system using `pip install cycode` or `brew install cycode`, then authenticate once with `cycode auth`. After global installation and authentication, you won't need to configure `CYCODE_CLIENT_ID` and `CYCODE_CLIENT_SECRET` environment variables in your MCP configuration files.
390
390
 
391
- [![Add MCP Server to Cursor using UV](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=cycode&config=eyJjb21tYW5kIjoidXZ4IGN5Y29kZSBtY3AiLCJlbnYiOnsiQ1lDT0RFX0NMSUVOVF9JRCI6InlvdXItY3ljb2RlLWlkIiwiQ1lDT0RFX0NMSUVOVF9TRUNSRVQiOiJ5b3VyLWN5Y29kZS1zZWNyZXQta2V5IiwiQ1lDT0RFX0FQSV9VUkwiOiJodHRwczovL2FwaS5jeWNvZGUuY29tIiwiQ1lDT0RFX0FQUF9VUkwiOiJodHRwczovL2FwcC5jeWNvZGUuY29tIn19)
391
+ [![Add MCP Server to Cursor using UV](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=cycode&config=eyJjb21tYW5kIjoidXZ4IGN5Y29kZSBtY3AiLCJlbnYiOnsiQ1lDT0RFX0NMSUVOVF9JRCI6InlvdXItY3ljb2RlLWlkIiwiQ1lDT0RFX0NMSUVOVF9TRUNSRVQiOiJ5b3VyLWN5Y29kZS1zZWNyZXQta2V5IiwiQ1lDT0RFX0FQSV9VUkwiOiJodHRwczovL2FwaS5jeWNvZGUuY29tIiwiQ1lDT0RFX0FQUF9VUkwiOiJodHRwczovL2FwcC5jeWNvZGUuY29tIn19)
392
392
 
393
393
 
394
394
  ## Starting the MCP Server
@@ -344,7 +344,7 @@ The Model Context Protocol (MCP) command allows you to start an MCP server that
344
344
  > [!TIP]
345
345
  > For the best experience, install Cycode CLI globally on your system using `pip install cycode` or `brew install cycode`, then authenticate once with `cycode auth`. After global installation and authentication, you won't need to configure `CYCODE_CLIENT_ID` and `CYCODE_CLIENT_SECRET` environment variables in your MCP configuration files.
346
346
 
347
- [![Add MCP Server to Cursor using UV](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=cycode&config=eyJjb21tYW5kIjoidXZ4IGN5Y29kZSBtY3AiLCJlbnYiOnsiQ1lDT0RFX0NMSUVOVF9JRCI6InlvdXItY3ljb2RlLWlkIiwiQ1lDT0RFX0NMSUVOVF9TRUNSRVQiOiJ5b3VyLWN5Y29kZS1zZWNyZXQta2V5IiwiQ1lDT0RFX0FQSV9VUkwiOiJodHRwczovL2FwaS5jeWNvZGUuY29tIiwiQ1lDT0RFX0FQUF9VUkwiOiJodHRwczovL2FwcC5jeWNvZGUuY29tIn19)
347
+ [![Add MCP Server to Cursor using UV](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=cycode&config=eyJjb21tYW5kIjoidXZ4IGN5Y29kZSBtY3AiLCJlbnYiOnsiQ1lDT0RFX0NMSUVOVF9JRCI6InlvdXItY3ljb2RlLWlkIiwiQ1lDT0RFX0NMSUVOVF9TRUNSRVQiOiJ5b3VyLWN5Y29kZS1zZWNyZXQta2V5IiwiQ1lDT0RFX0FQSV9VUkwiOiJodHRwczovL2FwaS5jeWNvZGUuY29tIiwiQ1lDT0RFX0FQUF9VUkwiOiJodHRwczovL2FwcC5jeWNvZGUuY29tIn19)
348
348
 
349
349
 
350
350
  ## Starting the MCP Server
@@ -0,0 +1 @@
1
+ __version__ = '3.5.1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
@@ -1,9 +1,11 @@
1
1
  import os
2
2
  from collections.abc import Generator, Iterable
3
3
 
4
- from cycode.cli.logger import logger
4
+ from cycode.cli.logger import get_logger
5
5
  from cycode.cli.utils.ignore_utils import IgnoreFilterManager
6
6
 
7
+ logger = get_logger('Ignores')
8
+
7
9
  _SUPPORTED_IGNORE_PATTERN_FILES = {
8
10
  '.gitignore',
9
11
  '.cycodeignore',
@@ -30,7 +32,7 @@ def _collect_top_level_ignore_files(path: str) -> list[str]:
30
32
  for ignore_file in _SUPPORTED_IGNORE_PATTERN_FILES:
31
33
  ignore_file_path = os.path.join(dir_path, ignore_file)
32
34
  if os.path.exists(ignore_file_path):
33
- logger.debug('Apply top level ignore file: %s', ignore_file_path)
35
+ logger.debug('Reading top level ignore file: %s', ignore_file_path)
34
36
  ignore_files.append(ignore_file_path)
35
37
  return ignore_files
36
38
 
@@ -41,4 +43,17 @@ def walk_ignore(path: str) -> Generator[tuple[str, list[str], list[str]], None,
41
43
  global_ignore_file_paths=_collect_top_level_ignore_files(path),
42
44
  global_patterns=_DEFAULT_GLOBAL_IGNORE_PATTERNS,
43
45
  )
44
- yield from ignore_filter_manager.walk()
46
+ for dirpath, dirnames, filenames, ignored_dirnames, ignored_filenames in ignore_filter_manager.walk_with_ignored():
47
+ rel_dirpath = '' if dirpath == path else os.path.relpath(dirpath, path)
48
+ display_dir = rel_dirpath or '.'
49
+ for is_dir, names in (
50
+ (True, ignored_dirnames),
51
+ (False, ignored_filenames),
52
+ ):
53
+ for name in names:
54
+ full_path = os.path.join(path, display_dir, name)
55
+ if is_dir:
56
+ full_path = os.path.join(full_path, '*')
57
+ logger.debug('Ignoring match %s', full_path)
58
+
59
+ yield dirpath, dirnames, filenames
@@ -388,19 +388,38 @@ class IgnoreFilterManager:
388
388
  return matches[-1].is_exclude
389
389
  return None
390
390
 
391
- def walk(self, **kwargs) -> Generator[tuple[str, list[str], list[str]], None, None]:
392
- """Wrap os.walk() without ignored files and subdirectories and kwargs are passed to walk."""
391
+ def walk_with_ignored(
392
+ self, **kwargs
393
+ ) -> Generator[tuple[str, list[str], list[str], list[str], list[str]], None, None]:
394
+ """Wrap os.walk() and also return lists of ignored directories and files.
395
+
396
+ Yields tuples: (dirpath, included_dirnames, included_filenames, ignored_dirnames, ignored_filenames)
397
+ """
393
398
  for dirpath, dirnames, filenames in os.walk(self.path, topdown=True, **kwargs):
394
399
  rel_dirpath = '' if dirpath == self.path else os.path.relpath(dirpath, self.path)
395
400
 
401
+ original_dirnames = list(dirnames)
402
+ included_dirnames = []
403
+ ignored_dirnames = []
404
+ for d in original_dirnames:
405
+ if self.is_ignored(os.path.join(rel_dirpath, d)):
406
+ ignored_dirnames.append(d)
407
+ else:
408
+ included_dirnames.append(d)
409
+
396
410
  # decrease recursion depth of os.walk() by ignoring subdirectories because of topdown=True
397
411
  # slicing ([:]) is mandatory to change dict in-place!
398
- dirnames[:] = [d for d in dirnames if not self.is_ignored(os.path.join(rel_dirpath, d))]
412
+ dirnames[:] = included_dirnames
399
413
 
400
- # remove ignored files
401
- filenames = [f for f in filenames if not self.is_ignored(os.path.join(rel_dirpath, f))]
414
+ included_filenames = []
415
+ ignored_filenames = []
416
+ for f in filenames:
417
+ if self.is_ignored(os.path.join(rel_dirpath, f)):
418
+ ignored_filenames.append(f)
419
+ else:
420
+ included_filenames.append(f)
402
421
 
403
- yield dirpath, dirnames, filenames
422
+ yield dirpath, dirnames, included_filenames, ignored_dirnames, ignored_filenames
404
423
 
405
424
  @classmethod
406
425
  def build(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cycode"
3
- version = "3.5.0" # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
3
+ version = "3.5.1" # 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.5.0' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes