cycode 3.16.1.dev6__tar.gz → 3.16.1.dev8__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.1.dev6 → cycode-3.16.1.dev8}/PKG-INFO +1 -1
- cycode-3.16.1.dev8/cycode/__init__.py +8 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/app.py +88 -15
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/claude_code.py +0 -1
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/codex.py +0 -1
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/code_scanner.py +15 -12
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/scan_parameters.py +2 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/scan_result.py +4 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/base_token_auth_client.py +27 -14
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/cycode_client_base.py +24 -21
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/pyproject.toml +1 -1
- cycode-3.16.1.dev6/cycode/__init__.py +0 -1
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/LICENCE +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/README.md +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/__main__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/activation_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/command_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/consts.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/hooks_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/base.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/cursor.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/install_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/consts.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/handlers.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/payload.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/policy.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/scan_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/types.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/session_start_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/status_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/uninstall_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_remediation/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_remediation/ai_remediation_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_remediation/apply_fix.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_remediation/print_remediation.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/api/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/api/api_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/api/openapi_spec.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/auth/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/auth/auth_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/auth/auth_common.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/auth/auth_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/auth/models.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/configure/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/configure/configure_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/configure/consts.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/configure/messages.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/configure/prompts.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ignore/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ignore/ignore_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/mcp/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/mcp/mcp_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/report_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/common.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/path/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/path/path_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/repository_url/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/repository_url/repository_url_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/sbom_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/sbom_report_file.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report_import/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report_import/report_import_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report_import/sbom/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report_import/sbom/sbom_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/sca_options.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/aggregation_report.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/commit_history/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/commit_history/commit_history_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/commit_range_scanner.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/detection_excluder.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/path/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/path/path_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_commit/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_push/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_push/pre_push_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_receive/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/remote_url_resolver.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/repository/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/repository/repository_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/scan_ci/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/scan_ci/ci_integrations.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/scan_ci/scan_ci_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/scan_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/status/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/status/get_cli_status.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/status/models.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/status/status_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/status/version_command.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/cli_types.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/config.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/console.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/consts.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/custom_exceptions.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_ai_remediation_errors.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_auth_errors.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_errors.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_report_sbom_errors.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_scan_errors.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/commit_range_documents.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/documents_walk_ignore.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/file_excluder.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/iac/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/iac/tf_content_generator.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/models/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/models/in_memory_zip.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/path_documents.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/repository_documents.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/base_restore_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/go/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/go/restore_go_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/maven/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/maven/restore_gradle_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/maven/restore_maven_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/npm/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/npm/restore_deno_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/npm/restore_npm_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/npm/restore_pnpm_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/npm/restore_yarn_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/nuget/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/nuget/restore_nuget_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/php/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/php/restore_composer_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/python/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/python/restore_pipenv_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/python/restore_poetry_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/python/restore_uv_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/ruby/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/ruby/restore_ruby_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/sbt/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/sbt/restore_sbt_dependencies.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/sca/sca_file_collector.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/walk_ignore.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/files_collector/zip_documents.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/logger.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/main.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/models.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/console_printer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/json_printer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/printer_base.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/rich_printer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/tables/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/tables/sca_table_printer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/tables/table.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/tables/table_models.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/tables/table_printer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/tables/table_printer_base.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/text_printer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/code_snippet_syntax.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/detection_data.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/detection_ordering/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/detection_ordering/common_ordering.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/detection_ordering/sca_ordering.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/printers/utils/rich_helpers.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/user_settings/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/user_settings/base_file_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/user_settings/config_file_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/user_settings/configuration_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/user_settings/credentials_manager.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/user_settings/jwt_creator.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/binary_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/enum_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/get_api_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/git_proxy.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/ignore_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/jwt_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/path_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/progress_bar.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/scan_batch.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/scan_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/shell_executor.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/string_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/task_timer.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/url_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/version_checker.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/utils/yaml_utils.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/config.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/__init__.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/ai_security_manager_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/ai_security_manager_service_config.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/auth_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/cli_activation_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/client_creator.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/config.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/config_dev.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/cycode_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/cycode_dev_based_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/cycode_oidc_based_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/cycode_token_based_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/headers.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/import_sbom_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/logger.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/models.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/report_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/scan_client.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cyclient/scan_config_base.py +0 -0
- {cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/logger.py +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import time as _time
|
|
2
|
+
|
|
3
|
+
# Unix-epoch wall clock captured at the earliest possible moment of CLI
|
|
4
|
+
# startup. Sent as `scan_parameters.cli_start_time` so the server can compute
|
|
5
|
+
# end-to-end scan duration from the moment the user actually triggered it.
|
|
6
|
+
_BOOT_WALL: float = _time.time()
|
|
7
|
+
|
|
8
|
+
__version__ = '3.16.1.dev8' # DON'T TOUCH. Placeholder. Will be filled automatically on poetry build from Git Tag
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import importlib
|
|
1
2
|
import logging
|
|
2
3
|
import sys
|
|
3
4
|
from typing import Annotated, Optional
|
|
@@ -10,12 +11,7 @@ from typer._completion_shared import Shells
|
|
|
10
11
|
from typer.completion import install_callback, show_callback
|
|
11
12
|
|
|
12
13
|
from cycode import __version__
|
|
13
|
-
from cycode.cli.apps import ai_guardrails, ai_remediation, auth, configure, ignore, report, report_import, scan, status
|
|
14
14
|
from cycode.cli.apps.api import get_platform_group
|
|
15
|
-
|
|
16
|
-
if sys.version_info >= (3, 10):
|
|
17
|
-
from cycode.cli.apps import mcp
|
|
18
|
-
|
|
19
15
|
from cycode.cli.cli_types import OutputTypeOption
|
|
20
16
|
from cycode.cli.consts import CLI_CONTEXT_SETTINGS
|
|
21
17
|
from cycode.cli.printers import ConsolePrinter
|
|
@@ -46,17 +42,88 @@ app = typer.Typer(
|
|
|
46
42
|
add_completion=False, # we add it manually to control the rich help panel
|
|
47
43
|
)
|
|
48
44
|
|
|
49
|
-
app.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
45
|
+
# Top-level subcommand → module providing its Typer app. Peeking at sys.argv
|
|
46
|
+
# lets us import only the invoked subapp on the hot path (e.g.
|
|
47
|
+
# `cycode ai-guardrails scan`), skipping ~300ms of unrelated imports.
|
|
48
|
+
_SUBAPP_MODULES: dict[str, str] = {
|
|
49
|
+
'ai-guardrails': 'cycode.cli.apps.ai_guardrails',
|
|
50
|
+
'ai-remediation': 'cycode.cli.apps.ai_remediation',
|
|
51
|
+
'auth': 'cycode.cli.apps.auth',
|
|
52
|
+
'configure': 'cycode.cli.apps.configure',
|
|
53
|
+
'ignore': 'cycode.cli.apps.ignore',
|
|
54
|
+
'report': 'cycode.cli.apps.report',
|
|
55
|
+
'import': 'cycode.cli.apps.report_import',
|
|
56
|
+
'scan': 'cycode.cli.apps.scan',
|
|
57
|
+
'status': 'cycode.cli.apps.status',
|
|
58
|
+
}
|
|
58
59
|
if sys.version_info >= (3, 10):
|
|
59
|
-
|
|
60
|
+
_SUBAPP_MODULES['mcp'] = 'cycode.cli.apps.mcp'
|
|
61
|
+
|
|
62
|
+
# Aliases: alternate spellings that resolve to a primary subcommand key.
|
|
63
|
+
_SUBAPP_ALIASES: dict[str, str] = {
|
|
64
|
+
'ai_remediation': 'ai-remediation', # backward-compat underscore form
|
|
65
|
+
'version': 'status',
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
# Root-level options that consume a following value; argv-peek must skip past
|
|
69
|
+
# both the option and its value when scanning for the first positional arg.
|
|
70
|
+
_ROOT_OPTS_WITH_VALUE = frozenset(
|
|
71
|
+
{
|
|
72
|
+
'--output',
|
|
73
|
+
'-o',
|
|
74
|
+
'--user-agent',
|
|
75
|
+
'--client-secret',
|
|
76
|
+
'--client-id',
|
|
77
|
+
'--id-token',
|
|
78
|
+
'--show-completion',
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _detect_invocation() -> tuple[Optional[str], Optional[str]]:
|
|
84
|
+
"""Return (top-level-subapp, second-level-subcommand) parsed from sys.argv.
|
|
85
|
+
|
|
86
|
+
Both values may be None: when no positional arg matches a known subapp,
|
|
87
|
+
or when the user only provided a top-level subcommand.
|
|
88
|
+
"""
|
|
89
|
+
positionals = []
|
|
90
|
+
args = sys.argv[1:]
|
|
91
|
+
i = 0
|
|
92
|
+
while i < len(args):
|
|
93
|
+
arg = args[i]
|
|
94
|
+
if arg in _ROOT_OPTS_WITH_VALUE:
|
|
95
|
+
i += 2
|
|
96
|
+
elif arg.startswith('-'):
|
|
97
|
+
# Any flag form: short, long, --key=value, or '--' marker. Skip the token only.
|
|
98
|
+
i += 1
|
|
99
|
+
else:
|
|
100
|
+
positionals.append(arg)
|
|
101
|
+
if len(positionals) >= 2:
|
|
102
|
+
break
|
|
103
|
+
i += 1
|
|
104
|
+
subapp = positionals[0] if positionals else None
|
|
105
|
+
subapp = _SUBAPP_ALIASES.get(subapp, subapp)
|
|
106
|
+
if subapp not in _SUBAPP_MODULES:
|
|
107
|
+
return None, None
|
|
108
|
+
subcommand = positionals[1] if len(positionals) >= 2 else None
|
|
109
|
+
return subapp, subcommand
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
# Computed once at import; reused by lazy registration and the version-checker skip.
|
|
113
|
+
_INVOKED_SUBAPP, _INVOKED_SUBCOMMAND = _detect_invocation()
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def _register_subapps(only: Optional[str]) -> None:
|
|
117
|
+
if only is not None:
|
|
118
|
+
app.add_typer(importlib.import_module(_SUBAPP_MODULES[only]).app)
|
|
119
|
+
return
|
|
120
|
+
# Cold path (--help, completion, unknown subcommand): load all modules so
|
|
121
|
+
# root help lists everything. Deduplicate since aliases share modules.
|
|
122
|
+
for module_path in dict.fromkeys(_SUBAPP_MODULES.values()):
|
|
123
|
+
app.add_typer(importlib.import_module(module_path).app)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
_register_subapps(_INVOKED_SUBAPP)
|
|
60
127
|
|
|
61
128
|
# Register the `platform` command group (dynamically built from the OpenAPI spec).
|
|
62
129
|
# The group itself is constructed cheaply at import time; the spec is only fetched
|
|
@@ -81,6 +148,12 @@ typer.main.get_group = _get_group_with_platform
|
|
|
81
148
|
|
|
82
149
|
|
|
83
150
|
def check_latest_version_on_close(ctx: typer.Context) -> None:
|
|
151
|
+
# Skip on `cycode ai-guardrails scan` — it emits JSON to stdout, so an
|
|
152
|
+
# upgrade notice would corrupt the response. Human-driven sibling commands
|
|
153
|
+
# (install, uninstall, status, session-start) still get the notice.
|
|
154
|
+
if (_INVOKED_SUBAPP, _INVOKED_SUBCOMMAND) == ('ai-guardrails', 'scan'):
|
|
155
|
+
return
|
|
156
|
+
|
|
84
157
|
output = ctx.obj.get('output')
|
|
85
158
|
# don't print anything if the output is JSON
|
|
86
159
|
if output == OutputTypeOption.JSON:
|
|
@@ -204,18 +204,21 @@ def _get_scan_documents_thread_func(
|
|
|
204
204
|
'zip_file_size': zip_file_size,
|
|
205
205
|
},
|
|
206
206
|
)
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
207
|
+
# Sync flows already received the full result inline; only async flows
|
|
208
|
+
# need a separate status report to signal polling completion.
|
|
209
|
+
if not should_use_sync_flow:
|
|
210
|
+
report_scan_status(
|
|
211
|
+
cycode_client,
|
|
212
|
+
scan_type,
|
|
213
|
+
scan_id,
|
|
214
|
+
scan_completed,
|
|
215
|
+
relevant_detections_count,
|
|
216
|
+
detections_count,
|
|
217
|
+
len(batch),
|
|
218
|
+
zip_file_size,
|
|
219
|
+
command_scan_type,
|
|
220
|
+
error_message,
|
|
221
|
+
)
|
|
219
222
|
|
|
220
223
|
return scan_id, error, local_scan_result
|
|
221
224
|
|
|
@@ -2,6 +2,7 @@ from typing import Optional
|
|
|
2
2
|
|
|
3
3
|
import typer
|
|
4
4
|
|
|
5
|
+
from cycode import _BOOT_WALL
|
|
5
6
|
from cycode.cli.apps.scan.remote_url_resolver import get_remote_url_scan_parameter
|
|
6
7
|
from cycode.cli.utils.scan_utils import generate_unique_scan_id
|
|
7
8
|
from cycode.logger import get_logger
|
|
@@ -17,6 +18,7 @@ def _get_default_scan_parameters(ctx: typer.Context) -> dict:
|
|
|
17
18
|
'license_compliance': ctx.obj.get('license-compliance'),
|
|
18
19
|
'command_type': ctx.info_name.replace('-', '_'), # save backward compatibility
|
|
19
20
|
'aggregation_id': str(generate_unique_scan_id()),
|
|
21
|
+
'cli_start_time': _BOOT_WALL,
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
|
|
@@ -189,6 +189,10 @@ def enrich_scan_result_with_data_from_detection_rules(
|
|
|
189
189
|
for detection in detections_per_file.detections:
|
|
190
190
|
detection_rule_ids.add(detection.detection_rule_id)
|
|
191
191
|
|
|
192
|
+
if not detection_rule_ids:
|
|
193
|
+
logger.debug('No detections to enrich, skipping detection_rules fetch')
|
|
194
|
+
return
|
|
195
|
+
|
|
192
196
|
detection_rules = cycode_client.get_detection_rules(detection_rule_ids)
|
|
193
197
|
detection_rules_by_id = {detection_rule.detection_rule_id: detection_rule for detection_rule in detection_rules}
|
|
194
198
|
|
|
@@ -24,19 +24,10 @@ class BaseTokenAuthClient(CycodeClient, ABC):
|
|
|
24
24
|
self.client_id = client_id
|
|
25
25
|
|
|
26
26
|
self._credentials_manager = CredentialsManager()
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
self._access_token = self._expires_in = None
|
|
31
|
-
expected_creator = self._create_jwt_creator()
|
|
32
|
-
if creator == expected_creator:
|
|
33
|
-
# we must be sure that cached access token is created using the same client id and client secret.
|
|
34
|
-
# because client id and client secret could be passed via command, via env vars or via config file.
|
|
35
|
-
# we must not use cached access token if client id or client secret was changed.
|
|
36
|
-
self._access_token = access_token
|
|
37
|
-
self._expires_in = arrow.get(expires_in) if expires_in else None
|
|
38
|
-
|
|
27
|
+
self._access_token = None
|
|
28
|
+
self._expires_in = None
|
|
39
29
|
self._lock = Lock()
|
|
30
|
+
self._load_token_from_disk()
|
|
40
31
|
|
|
41
32
|
def get_access_token(self) -> str:
|
|
42
33
|
with self._lock:
|
|
@@ -51,8 +42,30 @@ class BaseTokenAuthClient(CycodeClient, ABC):
|
|
|
51
42
|
self._credentials_manager.update_access_token(None, None, None)
|
|
52
43
|
|
|
53
44
|
def refresh_access_token_if_needed(self) -> None:
|
|
54
|
-
if self.
|
|
55
|
-
|
|
45
|
+
if self._has_valid_token():
|
|
46
|
+
return
|
|
47
|
+
# Re-check disk before doing the network refresh: another client instance
|
|
48
|
+
# in this process may have already refreshed and persisted a fresh token.
|
|
49
|
+
self._load_token_from_disk()
|
|
50
|
+
if self._has_valid_token():
|
|
51
|
+
return
|
|
52
|
+
self.refresh_access_token()
|
|
53
|
+
|
|
54
|
+
def _has_valid_token(self) -> bool:
|
|
55
|
+
return self._access_token is not None and self._expires_in is not None and arrow.utcnow() < self._expires_in
|
|
56
|
+
|
|
57
|
+
def _load_token_from_disk(self) -> None:
|
|
58
|
+
access_token, expires_in, creator = self._credentials_manager.get_access_token()
|
|
59
|
+
expected_creator = self._create_jwt_creator()
|
|
60
|
+
# We must be sure that cached access token is created using the same client id and client secret.
|
|
61
|
+
# Because client id and client secret could be passed via command, via env vars or via config file.
|
|
62
|
+
# We must not use cached access token if client id or client secret was changed.
|
|
63
|
+
if creator == expected_creator and access_token:
|
|
64
|
+
self._access_token = access_token
|
|
65
|
+
self._expires_in = arrow.get(expires_in) if expires_in else None
|
|
66
|
+
else:
|
|
67
|
+
self._access_token = None
|
|
68
|
+
self._expires_in = None
|
|
56
69
|
|
|
57
70
|
def refresh_access_token(self) -> None:
|
|
58
71
|
auth_response = self._request_new_access_token()
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import functools
|
|
1
2
|
import os
|
|
2
3
|
import platform
|
|
3
4
|
import ssl
|
|
@@ -39,16 +40,29 @@ class SystemStorageSslContext(HTTPAdapter):
|
|
|
39
40
|
conn.ca_certs = None
|
|
40
41
|
|
|
41
42
|
|
|
43
|
+
@functools.cache
|
|
44
|
+
def _get_session() -> requests.Session:
|
|
45
|
+
"""Process-wide Session so TCP+TLS connections are reused across all API calls."""
|
|
46
|
+
session = requests.Session()
|
|
47
|
+
# On Windows without an explicit CA bundle env var, fall back to the system
|
|
48
|
+
# trust store via a custom SSL context.
|
|
49
|
+
if platform.system() == 'Windows' and not (
|
|
50
|
+
os.environ.get('REQUESTS_CA_BUNDLE') or os.environ.get('CURL_CA_BUNDLE')
|
|
51
|
+
):
|
|
52
|
+
session.mount('https://', SystemStorageSslContext())
|
|
53
|
+
return session
|
|
54
|
+
|
|
55
|
+
|
|
42
56
|
def _get_request_function() -> Callable:
|
|
43
|
-
|
|
44
|
-
return requests.request
|
|
57
|
+
return _get_session().request
|
|
45
58
|
|
|
46
|
-
if platform.system() != 'Windows':
|
|
47
|
-
return requests.request
|
|
48
59
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
60
|
+
def _log_response(response: Response, url: str, hide_response_content_log: bool) -> None:
|
|
61
|
+
content = 'HIDDEN' if hide_response_content_log else response.text
|
|
62
|
+
logger.debug(
|
|
63
|
+
'Receiving response, %s',
|
|
64
|
+
{'status_code': response.status_code, 'url': url, 'content': content},
|
|
65
|
+
)
|
|
52
66
|
|
|
53
67
|
|
|
54
68
|
_REQUEST_ERRORS_TO_RETRY = (
|
|
@@ -182,12 +196,7 @@ class CycodeClientBase:
|
|
|
182
196
|
response = _get_request_function()(
|
|
183
197
|
method='post', url=url, data=tracker, headers=headers, timeout=self.timeout
|
|
184
198
|
)
|
|
185
|
-
|
|
186
|
-
content = 'HIDDEN' if hide_response_content_log else response.text
|
|
187
|
-
logger.debug(
|
|
188
|
-
'Receiving response, %s',
|
|
189
|
-
{'status_code': response.status_code, 'url': url, 'content': content},
|
|
190
|
-
)
|
|
199
|
+
_log_response(response, url, hide_response_content_log)
|
|
191
200
|
|
|
192
201
|
response.raise_for_status()
|
|
193
202
|
return response
|
|
@@ -231,14 +240,8 @@ class CycodeClientBase:
|
|
|
231
240
|
|
|
232
241
|
try:
|
|
233
242
|
headers = self.get_request_headers(headers, without_auth=without_auth)
|
|
234
|
-
|
|
235
|
-
response
|
|
236
|
-
|
|
237
|
-
content = 'HIDDEN' if hide_response_content_log else response.text
|
|
238
|
-
logger.debug(
|
|
239
|
-
'Receiving response, %s',
|
|
240
|
-
{'status_code': response.status_code, 'url': url, 'content': content},
|
|
241
|
-
)
|
|
243
|
+
response = _get_request_function()(method=method, url=url, timeout=timeout, headers=headers, **kwargs)
|
|
244
|
+
_log_response(response, url, hide_response_content_log)
|
|
242
245
|
|
|
243
246
|
response.raise_for_status()
|
|
244
247
|
return response
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '3.16.1.dev6' # 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
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/ides/_plugin_utils.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.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/scan/scan_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/session_start_command.py
RENAMED
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_guardrails/uninstall_command.py
RENAMED
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_remediation/ai_remediation_command.py
RENAMED
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/ai_remediation/print_remediation.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
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report/sbom/repository_url/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report_import/report_import_command.py
RENAMED
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/report_import/sbom/sbom_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
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_commit/pre_commit_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/pre_receive/pre_receive_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/apps/scan/repository/repository_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
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_ai_remediation_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cycode-3.16.1.dev6 → cycode-3.16.1.dev8}/cycode/cli/exceptions/handle_report_sbom_errors.py
RENAMED
|
File without changes
|