cycode 3.16.3.dev5__tar.gz → 3.17.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.
- {cycode-3.16.3.dev5 → cycode-3.17.1}/PKG-INFO +2 -2
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/__init__.py +1 -1
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/policy.py +21 -3
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/scan_command.py +4 -4
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/utils.py +17 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/session_start_command.py +2 -2
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/code_scanner.py +9 -2
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/commit_range_scanner.py +6 -1
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/consts.py +2 -1
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +18 -4
- {cycode-3.16.3.dev5 → cycode-3.17.1}/pyproject.toml +4 -4
- {cycode-3.16.3.dev5 → cycode-3.17.1}/LICENCE +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/README.md +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/__main__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/app.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/activation_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/command_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/consts.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/hooks_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/ides/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/ides/base.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/ides/claude_code.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/ides/codex.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/ides/cursor.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/install_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/consts.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/handlers.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/payload.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/scan/types.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/status_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_guardrails/uninstall_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/api/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/api/api_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/api/openapi_spec.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/auth/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/auth/auth_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/auth/auth_common.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/auth/auth_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/auth/models.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/configure/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/configure/configure_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/configure/consts.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/configure/messages.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/configure/prompts.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ignore/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ignore/ignore_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/mcp/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/mcp/mcp_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/report_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/common.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report_import/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report_import/report_import_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/sca_options.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/aggregation_report.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/detection_excluder.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/path/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/path/path_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/repository/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/scan_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/scan_parameters.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/scan_result.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/status/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/status/get_cli_status.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/status/models.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/status/status_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/status/version_command.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/cli_types.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/config.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/console.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/custom_exceptions.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/handle_errors.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/commit_range_documents.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/file_excluder.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/iac/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/models/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/path_documents.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/repository_documents.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_bun_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/php/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/php/restore_composer_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/python/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/python/restore_pipenv_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/python/restore_poetry_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/python/restore_uv_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/walk_ignore.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/zip_documents.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/logger.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/main.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/models.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/console_printer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/json_printer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/printer_base.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/rich_printer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/tables/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/tables/table.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/tables/table_models.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/tables/table_printer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/tables/table_printer_base.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/text_printer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_data.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/rich_helpers.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/user_settings/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/user_settings/base_file_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/user_settings/config_file_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/user_settings/configuration_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/user_settings/credentials_manager.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/user_settings/jwt_creator.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/binary_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/enum_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/get_api_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/git_proxy.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/host_info.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/ignore_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/jwt_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/path_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/progress_bar.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/scan_batch.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/scan_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/shell_executor.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/string_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/task_timer.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/url_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/version_checker.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/utils/yaml_utils.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/config.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/__init__.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/ai_security_manager_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/ai_security_manager_service_config.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/auth_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/base_token_auth_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/cli_activation_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/client_creator.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/config.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/config_dev.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/cycode_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/cycode_client_base.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/cycode_dev_based_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/cycode_oidc_based_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/cycode_token_based_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/headers.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/import_sbom_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/logger.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/models.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/report_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/scan_client.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cyclient/scan_config_base.py +0 -0
- {cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/logger.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cycode
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.17.1
|
|
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
|
|
@@ -26,7 +26,7 @@ Requires-Dist: click (>=8.1.0,<8.2.0)
|
|
|
26
26
|
Requires-Dist: colorama (>=0.4.3,<0.5.0)
|
|
27
27
|
Requires-Dist: gitpython (>=3.1.50,<3.2.0)
|
|
28
28
|
Requires-Dist: marshmallow (>=3.15.0,<4.0.0)
|
|
29
|
-
Requires-Dist: mcp (>=1.
|
|
29
|
+
Requires-Dist: mcp (>=1.28.1,<2.0.0) ; python_version >= "3.10"
|
|
30
30
|
Requires-Dist: patch-ng (==1.19.1)
|
|
31
31
|
Requires-Dist: pathvalidate (>=3.3.1,<4.0.0)
|
|
32
32
|
Requires-Dist: pydantic (>=2.11.5,<3.0.0)
|
|
@@ -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.
|
|
8
|
+
__version__ = '3.17.1' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
|
|
@@ -3,11 +3,14 @@ Policy loading and configuration management for AI guardrails.
|
|
|
3
3
|
|
|
4
4
|
Policies are loaded and merged in order (later overrides earlier):
|
|
5
5
|
1. Built-in defaults (consts.DEFAULT_POLICY)
|
|
6
|
-
2.
|
|
7
|
-
3.
|
|
6
|
+
2. Machine-wide config (admin/MDM-provisioned; see get_machine_policy_path)
|
|
7
|
+
3. User-level config (~/.cycode/ai-guardrails.yaml)
|
|
8
|
+
4. Repo-level config (<workspace>/.cycode/ai-guardrails.yaml)
|
|
8
9
|
"""
|
|
9
10
|
|
|
10
11
|
import json
|
|
12
|
+
import os
|
|
13
|
+
import sys
|
|
11
14
|
from pathlib import Path
|
|
12
15
|
from typing import Any, Optional
|
|
13
16
|
|
|
@@ -16,6 +19,16 @@ import yaml
|
|
|
16
19
|
from cycode.cli.apps.ai_guardrails.scan.consts import DEFAULT_POLICY, POLICY_FILE_NAME
|
|
17
20
|
|
|
18
21
|
|
|
22
|
+
def get_machine_policy_path() -> Path:
|
|
23
|
+
"""Machine-wide (admin/MDM-provisioned) policy path, by platform."""
|
|
24
|
+
if sys.platform == 'darwin':
|
|
25
|
+
return Path('/Library/Application Support/Cycode') / POLICY_FILE_NAME
|
|
26
|
+
if sys.platform == 'win32':
|
|
27
|
+
program_data = os.environ.get('PROGRAMDATA', 'C:\\ProgramData')
|
|
28
|
+
return Path(program_data) / 'Cycode' / POLICY_FILE_NAME
|
|
29
|
+
return Path('/etc/cycode') / POLICY_FILE_NAME
|
|
30
|
+
|
|
31
|
+
|
|
19
32
|
def deep_merge(base: dict, override: dict) -> dict:
|
|
20
33
|
"""Deep merge two dictionaries, with override taking precedence."""
|
|
21
34
|
result = base.copy()
|
|
@@ -61,7 +74,7 @@ def load_policy(workspace_root: Optional[str] = None) -> dict:
|
|
|
61
74
|
"""
|
|
62
75
|
Load policy by merging configs in order of precedence.
|
|
63
76
|
|
|
64
|
-
Merge order: defaults <- user config <- repo config
|
|
77
|
+
Merge order: defaults <- machine <- user config <- repo config
|
|
65
78
|
|
|
66
79
|
Args:
|
|
67
80
|
workspace_root: Workspace root path for repo-level config lookup.
|
|
@@ -69,6 +82,11 @@ def load_policy(workspace_root: Optional[str] = None) -> dict:
|
|
|
69
82
|
# Start with defaults
|
|
70
83
|
policy = load_defaults()
|
|
71
84
|
|
|
85
|
+
# Merge machine-wide config (admin/MDM-provisioned) - overrides defaults, below user/repo.
|
|
86
|
+
machine_config = load_yaml_file(get_machine_policy_path())
|
|
87
|
+
if machine_config:
|
|
88
|
+
policy = deep_merge(policy, machine_config)
|
|
89
|
+
|
|
72
90
|
# Merge user-level config (if exists)
|
|
73
91
|
user_policy_path = Path.home() / '.cycode' / POLICY_FILE_NAME
|
|
74
92
|
user_config = load_yaml_file(user_policy_path)
|
|
@@ -7,7 +7,6 @@ The handlers in ``handlers.py`` are agent-agnostic (they return
|
|
|
7
7
|
``HookDecision``); ``IDE.build_hook_response`` is the per-IDE translation step.
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
import sys
|
|
11
10
|
from typing import Annotated, Optional, Union
|
|
12
11
|
|
|
13
12
|
import click
|
|
@@ -18,7 +17,7 @@ from cycode.cli.apps.ai_guardrails.ides.base import HookDecision
|
|
|
18
17
|
from cycode.cli.apps.ai_guardrails.scan.handlers import get_handler_for_event
|
|
19
18
|
from cycode.cli.apps.ai_guardrails.scan.policy import load_policy
|
|
20
19
|
from cycode.cli.apps.ai_guardrails.scan.types import AiHookEventType
|
|
21
|
-
from cycode.cli.apps.ai_guardrails.scan.utils import output_json, safe_json_parse
|
|
20
|
+
from cycode.cli.apps.ai_guardrails.scan.utils import output_json, read_stdin_text, safe_json_parse
|
|
22
21
|
from cycode.cli.exceptions.custom_exceptions import HttpUnauthorizedError
|
|
23
22
|
from cycode.cli.utils.get_api_client import get_ai_security_manager_client, get_scan_cycode_client
|
|
24
23
|
from cycode.logger import get_logger
|
|
@@ -91,7 +90,7 @@ def scan_command(
|
|
|
91
90
|
"""
|
|
92
91
|
ide_integration = get_ide(ide)
|
|
93
92
|
|
|
94
|
-
stdin_data =
|
|
93
|
+
stdin_data = read_stdin_text().strip()
|
|
95
94
|
payload = safe_json_parse(stdin_data)
|
|
96
95
|
|
|
97
96
|
if not payload:
|
|
@@ -113,7 +112,8 @@ def scan_command(
|
|
|
113
112
|
event_name = unified_payload.event_name
|
|
114
113
|
logger.debug('Processing AI guardrails hook', extra={'event_name': event_name, 'ide': ide_integration.name})
|
|
115
114
|
|
|
116
|
-
|
|
115
|
+
# `or` (not a .get default) - Cursor sends workspace_roots=[] when no folder is open.
|
|
116
|
+
workspace_roots = payload.get('workspace_roots') or ['.']
|
|
117
117
|
policy = load_policy(workspace_roots[0])
|
|
118
118
|
|
|
119
119
|
try:
|
|
@@ -6,11 +6,28 @@ Includes JSON parsing, path matching, and text handling utilities.
|
|
|
6
6
|
|
|
7
7
|
import json
|
|
8
8
|
import os
|
|
9
|
+
import sys
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
|
|
11
12
|
from cycode.cli.apps.ai_guardrails.scan.policy import get_policy_value
|
|
12
13
|
|
|
13
14
|
|
|
15
|
+
def read_stdin_text() -> str:
|
|
16
|
+
"""Read the hook payload from stdin as UTF-8 text.
|
|
17
|
+
|
|
18
|
+
Reads bytes and decodes with utf-8-sig: hook payloads are UTF-8 JSON, but on Windows
|
|
19
|
+
Python decodes piped stdin with the ANSI code page (mojibake for non-ASCII prompts),
|
|
20
|
+
and Cursor on Windows prefixes the payload with a UTF-8 BOM - the -sig codec strips it.
|
|
21
|
+
"""
|
|
22
|
+
buffer = getattr(sys.stdin, 'buffer', None)
|
|
23
|
+
if buffer is not None:
|
|
24
|
+
return buffer.read().decode('utf-8-sig', errors='replace')
|
|
25
|
+
# No .buffer (tests mocking sys.stdin with StringIO, exotic streams) - text-mode fallback.
|
|
26
|
+
# lstrip the BOM here too: an already-decoded stream leaves it as U+FEFF, which json.loads
|
|
27
|
+
# rejects (and .strip() doesn't remove - it is not whitespace).
|
|
28
|
+
return sys.stdin.read().lstrip('\ufeff')
|
|
29
|
+
|
|
30
|
+
|
|
14
31
|
def safe_json_parse(s: str) -> dict:
|
|
15
32
|
"""Parse JSON string, returning empty dict on failure."""
|
|
16
33
|
try:
|
|
@@ -7,7 +7,7 @@ import typer
|
|
|
7
7
|
|
|
8
8
|
from cycode.cli.apps.ai_guardrails.ides import DEFAULT_IDE_NAME, get_ide
|
|
9
9
|
from cycode.cli.apps.ai_guardrails.ides.base import IDE
|
|
10
|
-
from cycode.cli.apps.ai_guardrails.scan.utils import safe_json_parse
|
|
10
|
+
from cycode.cli.apps.ai_guardrails.scan.utils import read_stdin_text, safe_json_parse
|
|
11
11
|
from cycode.cli.apps.auth.auth_common import get_authorization_info
|
|
12
12
|
from cycode.cli.apps.auth.auth_manager import AuthManager
|
|
13
13
|
from cycode.cli.exceptions.handle_auth_errors import handle_auth_exception
|
|
@@ -78,7 +78,7 @@ def session_start_command(
|
|
|
78
78
|
logger.debug('No stdin payload (TTY), skipping session initialization')
|
|
79
79
|
return
|
|
80
80
|
|
|
81
|
-
stdin_data =
|
|
81
|
+
stdin_data = read_stdin_text().strip()
|
|
82
82
|
payload = safe_json_parse(stdin_data)
|
|
83
83
|
if not payload:
|
|
84
84
|
logger.debug('Empty or invalid stdin payload, skipping session initialization')
|
|
@@ -279,7 +279,10 @@ def scan_documents(
|
|
|
279
279
|
|
|
280
280
|
scan_batch_thread_func = _get_scan_documents_thread_func(ctx, is_git_diff, is_commit_range, scan_parameters)
|
|
281
281
|
|
|
282
|
-
|
|
282
|
+
# Presigned single-file upload is async-only; a --sync scan must stay on the batched inline path
|
|
283
|
+
# so it never builds one oversized zip to POST synchronously.
|
|
284
|
+
should_use_sync_flow = _should_use_sync_flow(ctx.info_name, scan_type, ctx.obj['sync'])
|
|
285
|
+
if should_use_presigned_upload(scan_type) and not should_use_sync_flow:
|
|
283
286
|
errors, local_scan_results = _run_presigned_upload_scan(
|
|
284
287
|
scan_batch_thread_func, scan_type, documents_to_scan, progress_bar, printer
|
|
285
288
|
)
|
|
@@ -388,7 +391,11 @@ def _perform_scan(
|
|
|
388
391
|
is_commit_range,
|
|
389
392
|
on_upload_progress,
|
|
390
393
|
)
|
|
391
|
-
except
|
|
394
|
+
except (
|
|
395
|
+
requests.exceptions.RequestException,
|
|
396
|
+
custom_exceptions.RequestError,
|
|
397
|
+
custom_exceptions.SlowUploadConnectionError,
|
|
398
|
+
):
|
|
392
399
|
logger.warning('Direct upload to object storage failed. Falling back to upload via Cycode API. ')
|
|
393
400
|
|
|
394
401
|
return _perform_scan_async(
|
|
@@ -19,6 +19,7 @@ from cycode.cli.apps.scan.scan_result import (
|
|
|
19
19
|
print_local_scan_results,
|
|
20
20
|
)
|
|
21
21
|
from cycode.cli.config import configuration_manager
|
|
22
|
+
from cycode.cli.exceptions import custom_exceptions
|
|
22
23
|
from cycode.cli.exceptions.handle_scan_errors import handle_scan_exception
|
|
23
24
|
from cycode.cli.files_collector.commit_range_documents import (
|
|
24
25
|
collect_commit_range_diff_documents,
|
|
@@ -162,7 +163,11 @@ def _scan_commit_range_documents(
|
|
|
162
163
|
scan_parameters,
|
|
163
164
|
timeout,
|
|
164
165
|
)
|
|
165
|
-
except
|
|
166
|
+
except (
|
|
167
|
+
requests.exceptions.RequestException,
|
|
168
|
+
custom_exceptions.RequestError,
|
|
169
|
+
custom_exceptions.SlowUploadConnectionError,
|
|
170
|
+
):
|
|
166
171
|
logger.warning('Direct upload to object storage failed. Falling back to upload via Cycode API. ')
|
|
167
172
|
scan_result = _perform_commit_range_scan_async(
|
|
168
173
|
cycode_client,
|
|
@@ -222,12 +222,13 @@ EXCLUSIONS_BY_CVE_SECTION_NAME = 'cves'
|
|
|
222
222
|
FILE_MAX_SIZE_LIMIT_IN_BYTES = 5000000
|
|
223
223
|
|
|
224
224
|
PRESIGNED_LINK_UPLOADED_ZIP_MAX_SIZE_LIMIT_IN_BYTES = 5 * 1024 * 1024 * 1024 # 5 GB (S3 presigned POST limit)
|
|
225
|
-
PRESIGNED_UPLOAD_SCAN_TYPES = {SAST_SCAN_TYPE}
|
|
225
|
+
PRESIGNED_UPLOAD_SCAN_TYPES = {SAST_SCAN_TYPE, SECRET_SCAN_TYPE}
|
|
226
226
|
|
|
227
227
|
DEFAULT_ZIP_MAX_SIZE_LIMIT_IN_BYTES = 20 * 1024 * 1024
|
|
228
228
|
ZIP_MAX_SIZE_LIMIT_IN_BYTES = {
|
|
229
229
|
SCA_SCAN_TYPE: 200 * 1024 * 1024,
|
|
230
230
|
SAST_SCAN_TYPE: PRESIGNED_LINK_UPLOADED_ZIP_MAX_SIZE_LIMIT_IN_BYTES,
|
|
231
|
+
SECRET_SCAN_TYPE: PRESIGNED_LINK_UPLOADED_ZIP_MAX_SIZE_LIMIT_IN_BYTES,
|
|
231
232
|
}
|
|
232
233
|
|
|
233
234
|
# scan in batches
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
import platform
|
|
2
3
|
import re
|
|
3
4
|
from typing import Optional
|
|
4
5
|
|
|
@@ -12,19 +13,32 @@ from cycode.cli.utils.shell_executor import shell
|
|
|
12
13
|
BUILD_GRADLE_FILE_NAME = 'build.gradle'
|
|
13
14
|
BUILD_GRADLE_KTS_FILE_NAME = 'build.gradle.kts'
|
|
14
15
|
BUILD_GRADLE_DEP_TREE_FILE_NAME = 'gradle-dependencies-generated.txt'
|
|
15
|
-
BUILD_GRADLE_ALL_PROJECTS_COMMAND = ['gradle', 'projects']
|
|
16
16
|
ALL_PROJECTS_REGEX = r"[+-]{3} Project '(.*?)'"
|
|
17
17
|
|
|
18
|
+
GRADLE_EXECUTABLE = 'gradle'
|
|
19
|
+
GRADLEW_FILE_NAME = 'gradlew'
|
|
20
|
+
GRADLEW_BAT_FILE_NAME = 'gradlew.bat'
|
|
21
|
+
|
|
18
22
|
|
|
19
23
|
class RestoreGradleDependencies(BaseRestoreDependencies):
|
|
20
24
|
def __init__(
|
|
21
25
|
self, ctx: typer.Context, is_git_diff: bool, command_timeout: int, projects: Optional[set[str]] = None
|
|
22
26
|
) -> None:
|
|
23
27
|
super().__init__(ctx, is_git_diff, command_timeout, create_output_file_manually=True)
|
|
28
|
+
self.gradle_executable = self._resolve_gradle_executable()
|
|
24
29
|
if projects is None:
|
|
25
30
|
projects = set()
|
|
26
31
|
self.projects = self.get_all_projects() if self.is_gradle_sub_projects() else projects
|
|
27
32
|
|
|
33
|
+
def _resolve_gradle_executable(self) -> str:
|
|
34
|
+
scan_root = get_path_from_context(self.ctx)
|
|
35
|
+
if scan_root:
|
|
36
|
+
wrapper_name = GRADLEW_BAT_FILE_NAME if platform.system() == 'Windows' else GRADLEW_FILE_NAME
|
|
37
|
+
wrapper_path = os.path.join(scan_root, wrapper_name)
|
|
38
|
+
if os.path.isfile(wrapper_path):
|
|
39
|
+
return wrapper_path
|
|
40
|
+
return GRADLE_EXECUTABLE
|
|
41
|
+
|
|
28
42
|
def is_gradle_sub_projects(self) -> bool:
|
|
29
43
|
return self.ctx.obj.get('gradle_all_sub_projects', False)
|
|
30
44
|
|
|
@@ -35,7 +49,7 @@ class RestoreGradleDependencies(BaseRestoreDependencies):
|
|
|
35
49
|
return (
|
|
36
50
|
self.get_commands_for_sub_projects(manifest_file_path)
|
|
37
51
|
if self.is_gradle_sub_projects()
|
|
38
|
-
else [[
|
|
52
|
+
else [[self.gradle_executable, 'dependencies', '-b', manifest_file_path, '-q', '--console', 'plain']]
|
|
39
53
|
)
|
|
40
54
|
|
|
41
55
|
def get_lock_file_name(self) -> str:
|
|
@@ -49,7 +63,7 @@ class RestoreGradleDependencies(BaseRestoreDependencies):
|
|
|
49
63
|
|
|
50
64
|
def get_all_projects(self) -> set[str]:
|
|
51
65
|
output = shell(
|
|
52
|
-
command=
|
|
66
|
+
command=[self.gradle_executable, 'projects'],
|
|
53
67
|
timeout=self.command_timeout,
|
|
54
68
|
working_directory=get_path_from_context(self.ctx),
|
|
55
69
|
)
|
|
@@ -62,7 +76,7 @@ class RestoreGradleDependencies(BaseRestoreDependencies):
|
|
|
62
76
|
project_name = os.path.basename(os.path.dirname(manifest_file_path))
|
|
63
77
|
project_name = f':{project_name}'
|
|
64
78
|
return (
|
|
65
|
-
[[
|
|
79
|
+
[[self.gradle_executable, f'{project_name}:dependencies', '-q', '--console', 'plain']]
|
|
66
80
|
if project_name in self.projects
|
|
67
81
|
else []
|
|
68
82
|
)
|
|
@@ -21,7 +21,7 @@ classifiers = [
|
|
|
21
21
|
"Programming Language :: Python :: 3.14",
|
|
22
22
|
]
|
|
23
23
|
dynamic = ["dependencies"]
|
|
24
|
-
version = "3.
|
|
24
|
+
version = "3.17.1"
|
|
25
25
|
|
|
26
26
|
[project.scripts]
|
|
27
27
|
cycode = "cycode.cli.app:app"
|
|
@@ -46,7 +46,7 @@ rich = ">=13.9.4, <14"
|
|
|
46
46
|
patch-ng = "1.19.1"
|
|
47
47
|
typer = "^0.15.3"
|
|
48
48
|
tenacity = ">=9.0.0,<9.1.0"
|
|
49
|
-
mcp = { version = ">=1.
|
|
49
|
+
mcp = { version = ">=1.28.1,<2.0.0", markers = "python_version >= '3.10'" }
|
|
50
50
|
pydantic = ">=2.11.5,<3.0.0"
|
|
51
51
|
pathvalidate = ">=3.3.1,<4.0.0"
|
|
52
52
|
tomli-w = ">=1.0.0,<2.0.0"
|
|
@@ -54,7 +54,7 @@ tomli = {version = ">=2.0.0,<3.0.0", python = "<3.11"}
|
|
|
54
54
|
anyio = ">=4.0.0, <4.13.0"
|
|
55
55
|
|
|
56
56
|
[tool.poetry.group.test.dependencies]
|
|
57
|
-
mock = ">=
|
|
57
|
+
mock = ">=5.2.0,<5.3.0"
|
|
58
58
|
pytest = ">=7.3.1,<8.5.0"
|
|
59
59
|
pytest-mock = ">=3.10.0,<3.11.0"
|
|
60
60
|
coverage = ">=7.2.3,<7.11.0"
|
|
@@ -66,7 +66,7 @@ pyinstaller = {version=">=6.20.0,<7.0.0", python=">=3.9,<3.15"}
|
|
|
66
66
|
dunamai = ">=1.26.1,<1.27.0"
|
|
67
67
|
|
|
68
68
|
[tool.poetry.group.dev.dependencies]
|
|
69
|
-
ruff = "0.15.
|
|
69
|
+
ruff = "0.15.20"
|
|
70
70
|
|
|
71
71
|
[tool.pytest.ini_options]
|
|
72
72
|
log_cli = true
|
|
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
|
|
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
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/ai_remediation/ai_remediation_command.py
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/commit_history/commit_history_command.py
RENAMED
|
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
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/base_restore_dependencies.py
RENAMED
|
File without changes
|
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_bun_dependencies.py
RENAMED
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py
RENAMED
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py
RENAMED
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py
RENAMED
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py
RENAMED
|
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
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_ordering/__init__.py
RENAMED
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_ordering/common_ordering.py
RENAMED
|
File without changes
|
{cycode-3.16.3.dev5 → cycode-3.17.1}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py
RENAMED
|
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
|
|
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
|
|
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
|
|
File without changes
|